Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge branch 'master' of github.com:fh-koeln/LevelPad

  • Loading branch information...
commit 8f05334287558a784126b4bb0a94cf8b90ca34bd 2 parents 2608cb8 + 020544c
@jerolimov jerolimov authored
Showing with 872 additions and 384 deletions.
  1. +2 −1  app/models/Subject.js
  2. +15 −3 app/models/User.js
  3. +9 −9 app/resources/subjects/index.js
  4. +18 −3 app/resources/users/index.js
  5. +1 −1  config/acl.js
  6. BIN  doc/LevelPad Wireframes_v2.key/Data/120414_FamilySouthAfrica_AT_2300_981x654-small-15.jpg
  7. BIN  doc/LevelPad Wireframes_v2.key/Data/120414_FamilySouthAfrica_AT_2936_3000x2000-small-13.jpg
  8. BIN  doc/LevelPad Wireframes_v2.key/Data/120414_FamilySouthAfrica_AT_2991_2190x1460-small-11.jpg
  9. BIN  doc/LevelPad Wireframes_v2.key/Data/120414_FamilySouthAfrica_AT_4083_981x654-small-17.jpg
  10. BIN  doc/LevelPad Wireframes_v2.key/Data/1404227661_519641-142_Mouse-4393.png
  11. BIN  doc/LevelPad Wireframes_v2.key/Data/1404331739_672354-search-stroked-5194.png
  12. BIN  doc/LevelPad Wireframes_v2.key/Data/1404331739_672354-search-stroked-enhanced-5241.png
  13. BIN  doc/LevelPad Wireframes_v2.key/Data/1404331739_672354-search-stroked-filtered-5270.png
  14. BIN  doc/LevelPad Wireframes_v2.key/Data/Screen Shot 2011-08-20 at 12.59-3503.png
  15. BIN  doc/LevelPad Wireframes_v2.key/Data/Screen Shot 2011-08-20 at 12.59.17 PM-3502.png
  16. BIN  doc/LevelPad Wireframes_v2.key/Data/mt0@2x-4837.jpg
  17. BIN  doc/LevelPad Wireframes_v2.key/Data/mt10@2x-4846.jpg
  18. BIN  doc/LevelPad Wireframes_v2.key/Data/mt11@2x-4806.jpg
  19. BIN  doc/LevelPad Wireframes_v2.key/Data/mt1@2x-4838.jpg
  20. BIN  doc/LevelPad Wireframes_v2.key/Data/mt2@2x-4797.jpg
  21. BIN  doc/LevelPad Wireframes_v2.key/Data/mt3@2x-4839.jpg
  22. BIN  doc/LevelPad Wireframes_v2.key/Data/mt4@2x-4840.jpg
  23. BIN  doc/LevelPad Wireframes_v2.key/Data/mt5@2x-4841.jpg
  24. BIN  doc/LevelPad Wireframes_v2.key/Data/mt6@2x-4842.jpg
  25. BIN  doc/LevelPad Wireframes_v2.key/Data/mt7@2x-4843.jpg
  26. BIN  doc/LevelPad Wireframes_v2.key/Data/mt8@2x-4844.jpg
  27. BIN  doc/LevelPad Wireframes_v2.key/Data/mt9@2x-4845.jpg
  28. BIN  doc/LevelPad Wireframes_v2.key/Data/st0-4828.jpg
  29. BIN  doc/LevelPad Wireframes_v2.key/Data/st1-4829.jpg
  30. BIN  doc/LevelPad Wireframes_v2.key/Data/st10-4831.jpg
  31. BIN  doc/LevelPad Wireframes_v2.key/Data/st10-6023.jpg
  32. BIN  doc/LevelPad Wireframes_v2.key/Data/st11-4832.jpg
  33. BIN  doc/LevelPad Wireframes_v2.key/Data/st11-9150.jpg
  34. BIN  doc/LevelPad Wireframes_v2.key/Data/st12-4833.jpg
  35. BIN  doc/LevelPad Wireframes_v2.key/Data/st12-9149.jpg
  36. BIN  doc/LevelPad Wireframes_v2.key/Data/st13-4834.jpg
  37. BIN  doc/LevelPad Wireframes_v2.key/Data/st13-9148.jpg
  38. BIN  doc/LevelPad Wireframes_v2.key/Data/st14-9140.jpg
  39. BIN  doc/LevelPad Wireframes_v2.key/Data/st15-4835.jpg
  40. BIN  doc/LevelPad Wireframes_v2.key/Data/st15-9130.jpg
  41. BIN  doc/LevelPad Wireframes_v2.key/Data/st16-4836.jpg
  42. BIN  doc/LevelPad Wireframes_v2.key/Data/st16-8924.jpg
  43. BIN  doc/LevelPad Wireframes_v2.key/Data/st17-4847.jpg
  44. BIN  doc/LevelPad Wireframes_v2.key/Data/st17-8923.jpg
  45. BIN  doc/LevelPad Wireframes_v2.key/Data/st18-4848.jpg
  46. BIN  doc/LevelPad Wireframes_v2.key/Data/st18-8922.jpg
  47. BIN  doc/LevelPad Wireframes_v2.key/Data/st19-4849.jpg
  48. BIN  doc/LevelPad Wireframes_v2.key/Data/st19-9326.jpg
  49. BIN  doc/LevelPad Wireframes_v2.key/Data/st2-2346.jpg
  50. BIN  doc/LevelPad Wireframes_v2.key/Data/st2-4106.jpg
  51. BIN  doc/LevelPad Wireframes_v2.key/Data/st20-4850.jpg
  52. BIN  doc/LevelPad Wireframes_v2.key/Data/st20-8031.jpg
  53. BIN  doc/LevelPad Wireframes_v2.key/Data/st20-8890.jpg
  54. BIN  doc/LevelPad Wireframes_v2.key/Data/st20-9350.jpg
  55. BIN  doc/LevelPad Wireframes_v2.key/Data/st21-4320.jpg
  56. BIN  doc/LevelPad Wireframes_v2.key/Data/st21-4851.jpg
  57. BIN  doc/LevelPad Wireframes_v2.key/Data/st22-4852.jpg
  58. BIN  doc/LevelPad Wireframes_v2.key/Data/st22-9352.jpg
  59. BIN  doc/LevelPad Wireframes_v2.key/Data/st24-4853.jpg
  60. BIN  doc/LevelPad Wireframes_v2.key/Data/st24-9425.jpg
  61. BIN  doc/LevelPad Wireframes_v2.key/Data/st25-4854.jpg
  62. BIN  doc/LevelPad Wireframes_v2.key/Data/st25-9408.jpg
  63. BIN  doc/LevelPad Wireframes_v2.key/Data/st25-9421.jpg
  64. BIN  doc/LevelPad Wireframes_v2.key/Data/st26-4855.jpg
  65. BIN  doc/LevelPad Wireframes_v2.key/Data/st26-9422.jpg
  66. BIN  doc/LevelPad Wireframes_v2.key/Data/st27-4856.jpg
  67. BIN  doc/LevelPad Wireframes_v2.key/Data/st3-5178.jpg
  68. BIN  doc/LevelPad Wireframes_v2.key/Data/st4-5171.jpg
  69. BIN  doc/LevelPad Wireframes_v2.key/Data/st7-4885.jpg
  70. BIN  doc/LevelPad Wireframes_v2.key/Data/st8-2549.jpg
  71. BIN  doc/LevelPad Wireframes_v2.key/Data/st8-4886.jpg
  72. BIN  doc/LevelPad Wireframes_v2.key/Data/st8-5155.jpg
  73. BIN  doc/LevelPad Wireframes_v2.key/Data/st9-4991.jpg
  74. BIN  doc/LevelPad Wireframes_v2.key/Data/st9-5830.jpg
  75. BIN  doc/LevelPad Wireframes_v2.key/Index.zip
  76. +8 −0 doc/LevelPad Wireframes_v2.key/Metadata/BuildVersionHistory.plist
  77. +1 −0  doc/LevelPad Wireframes_v2.key/Metadata/DocumentIdentifier
  78. BIN  doc/LevelPad Wireframes_v2.key/Metadata/Properties.plist
  79. BIN  doc/LevelPad Wireframes_v2.key/preview-micro.jpg
  80. BIN  doc/LevelPad Wireframes_v2.key/preview-web.jpg
  81. BIN  doc/LevelPad Wireframes_v2.key/preview.jpg
  82. BIN  doc/LevelPad Wireframes_v2.pdf
  83. +5 −4 public/application.js
  84. +709 −342 public/assets/css/bootstrap-theme.css
  85. +22 −3 public/assets/css/custom.css
  86. +2 −1  public/controllers/LoginController.js
  87. +2 −1  public/controllers/LogoutController.js
  88. +6 −0 public/controllers/NavigationController.js
  89. +2 −1  public/controllers/SignupController.js
  90. +50 −2 public/controllers/subjects/SubjectListController.js
  91. +1 −0  public/index.html
  92. +2 −0  public/partials/navigation.html
  93. +2 −12 public/services/AuthService.js
  94. +5 −0 public/views/modules/list.html
  95. +6 −1 public/views/modules/show.html
  96. +4 −0 public/views/users.html
View
3  app/models/Subject.js
@@ -14,7 +14,8 @@ var subjectSchema = new Schema({
registration_password: String,
semester: { type: String, enum: ['Wintersemester', 'Sommersemester'], required: true },
slug: {type: String, require: true, unique: true},
- year: { type: Number, required: true }
+ year: { type: Number, required: true },
+ status: { type: String, enum: ['Active', 'Inactive'], required: true, default: 'Active'}
});
subjectSchema.statics.findBySlug = function (slug, callback) {
View
18 app/models/User.js
@@ -17,8 +17,20 @@ function validateUsernameLength(username) {
}
}
+function validateStudentNumber(studentNumber) {
+ if ( ! /^\d+$/.test(studentNumber) ) {
+ return false;
+ } else {
+ return true;
+ }
+}
+
var userNameValidations = [
- { validator: validateUsernameLength, msg: 'Username length is not valid' }
+ { validator: validateUsernameLength, msg: 'Der Benutzername ist ungültig' }
+];
+
+var studentNumberValidations = [
+ { validator: validateStudentNumber, msg: 'Die Matrikelnummer ist ungültig' }
];
var userSchema = new Schema({
@@ -26,12 +38,12 @@ var userSchema = new Schema({
firstname: {type: String, required: true},
lastname: {type: String, required: true},
email: {type: String, required: true},
- studentNumber: {type: Number, required: false},
+ studentNumber: {type: String, required: false, validate: studentNumberValidations},
role: {type: String, enum: ['guest', 'student', 'lecturer', 'assistent', 'administrator'], default: 'guest'}
});
userSchema.statics.findByUsername = function (username, callback) {
- this.findOne({ username: new RegExp(username, 'i') }, callback);
+ this.findOne({ username: username }, callback);
};
module.exports = mongoose.model('User', userSchema);
View
18 app/resources/subjects/index.js
@@ -13,14 +13,15 @@ require('url');
*/
subjects.get('/', function (req, res) {
if (req.query.year || req.query.semester || req.query.module) {
-
+
//convert Semester shortname to longname
- if (req.query.semester === 'sose')
+ if (req.query.semester === 'sose') {
req.query.semester = 'Sommersemester';
- else if (req.query.semester === 'wise')
+ } else if (req.query.semester === 'wise') {
req.query.semester = 'Wintersemester';
- else
+ } else {
delete req.query.semester;
+ }
//Select ID from module-collection by shortname
if (req.query.module) {
@@ -28,8 +29,8 @@ subjects.get('/', function (req, res) {
if (err) {
console.error(err);
res.json(500, err);
- }
-
+ }
+
else if (module) {
console.log(module);
req.query.module = module._id;
@@ -38,8 +39,9 @@ subjects.get('/', function (req, res) {
findSubjects(req, res);
});
}
- else
+ else {
findSubjects(req,res);
+ }
} else {
Subject.find().populate('module').exec(helpers.sendResult(res));
@@ -56,6 +58,4 @@ function findSubjects(req, res) {
}
-
-
module.exports = subjects;
View
21 app/resources/users/index.js
@@ -1,4 +1,3 @@
-
var express = require('express'),
users = express.Router(),
User = require('../../models/User'),
@@ -26,7 +25,11 @@ users.post('/', function(req, res) {
user.save(function(err, user) {
if (err) {
- res.json(500, err);
+ if (err.name === 'ValidationError') {
+ res.json(400, err);
+ } else {
+ res.json(500, err);
+ }
} else {
acl.setRole(user.username, user.role, function(err) {
if (err) {
@@ -55,7 +58,19 @@ users.get('/:username', function(req, res) {
});
users.put('/:username', function(req, res) {
- User.findOneAndUpdate(req.params, req.body, { upsert: true }, helpers.sendResult(res));
+ User.findOne(req.params, function (err, user) {
+ user.studentNumber = req.body.studentNumber;
+ user.email = req.body.email;
+ user.firstname = req.body.firstname;
+ user.lastname = req.body.lastname;
+ user.save(function (err, user) {
+ if (err) {
+ res.json(500, err);
+ } else {
+ res.json(200, user);
+ }
+ });
+ });
});
users.delete('/:username', function(req, res) {
View
2  config/acl.js
@@ -130,7 +130,7 @@ db.connection.on('connected', function() {
allows: [
{resources: 'login', permissions: ['POST']},
{resources: 'logout', permissions: ['POST']},
- {resources: 'users', permissions: ['POST', 'GET']},
+ {resources: 'users', permissions: ['POST']},
]
},
{
View
BIN  doc/LevelPad Wireframes_v2.key/Data/120414_FamilySouthAfrica_AT_2300_981x654-small-15.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  doc/LevelPad Wireframes_v2.key/Data/120414_FamilySouthAfrica_AT_2936_3000x2000-small-13.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  doc/LevelPad Wireframes_v2.key/Data/120414_FamilySouthAfrica_AT_2991_2190x1460-small-11.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  doc/LevelPad Wireframes_v2.key/Data/120414_FamilySouthAfrica_AT_4083_981x654-small-17.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  doc/LevelPad Wireframes_v2.key/Data/1404227661_519641-142_Mouse-4393.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  doc/LevelPad Wireframes_v2.key/Data/1404331739_672354-search-stroked-5194.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  doc/LevelPad Wireframes_v2.key/Data/1404331739_672354-search-stroked-enhanced-5241.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  doc/LevelPad Wireframes_v2.key/Data/1404331739_672354-search-stroked-filtered-5270.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  doc/LevelPad Wireframes_v2.key/Data/Screen Shot 2011-08-20 at 12.59-3503.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  doc/LevelPad Wireframes_v2.key/Data/Screen Shot 2011-08-20 at 12.59.17 PM-3502.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  doc/LevelPad Wireframes_v2.key/Data/mt0@2x-4837.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  doc/LevelPad Wireframes_v2.key/Data/mt10@2x-4846.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  doc/LevelPad Wireframes_v2.key/Data/mt11@2x-4806.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  doc/LevelPad Wireframes_v2.key/Data/mt1@2x-4838.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  doc/LevelPad Wireframes_v2.key/Data/mt2@2x-4797.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  doc/LevelPad Wireframes_v2.key/Data/mt3@2x-4839.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  doc/LevelPad Wireframes_v2.key/Data/mt4@2x-4840.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  doc/LevelPad Wireframes_v2.key/Data/mt5@2x-4841.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  doc/LevelPad Wireframes_v2.key/Data/mt6@2x-4842.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  doc/LevelPad Wireframes_v2.key/Data/mt7@2x-4843.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  doc/LevelPad Wireframes_v2.key/Data/mt8@2x-4844.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  doc/LevelPad Wireframes_v2.key/Data/mt9@2x-4845.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st0-4828.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st1-4829.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st10-4831.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st10-6023.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st11-4832.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st11-9150.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st12-4833.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st12-9149.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st13-4834.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st13-9148.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st14-9140.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st15-4835.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st15-9130.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st16-4836.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st16-8924.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st17-4847.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st17-8923.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st18-4848.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st18-8922.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st19-4849.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st19-9326.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st2-2346.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st2-4106.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st20-4850.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st20-8031.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st20-8890.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st20-9350.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st21-4320.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st21-4851.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st22-4852.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st22-9352.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st24-4853.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st24-9425.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st25-4854.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st25-9408.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st25-9421.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st26-4855.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st26-9422.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st27-4856.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st3-5178.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st4-5171.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st7-4885.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st8-2549.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st8-4886.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st8-5155.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st9-4991.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Data/st9-5830.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/Index.zip
Binary file not shown
View
8 doc/LevelPad Wireframes_v2.key/Metadata/BuildVersionHistory.plist
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <string>Template: Black (2014-02-28 09:37)</string>
+ <string>M6.2-1861-1</string>
+</array>
+</plist>
View
1  doc/LevelPad Wireframes_v2.key/Metadata/DocumentIdentifier
@@ -0,0 +1 @@
+0A2A7C52-D730-46EB-A941-C4F875BC5C6C
View
BIN  doc/LevelPad Wireframes_v2.key/Metadata/Properties.plist
Binary file not shown
View
BIN  doc/LevelPad Wireframes_v2.key/preview-micro.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/preview-web.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.key/preview.jpg
Diff not rendered
View
BIN  doc/LevelPad Wireframes_v2.pdf
Binary file not shown
View
9 public/application.js
@@ -100,8 +100,8 @@ app.config(function($routeProvider, $locationProvider) {
// Basics
$routeProvider.when('/', {
- templateUrl: 'views/main.html',
- controller: 'MainController'
+ templateUrl: 'views/modules/show.html',
+ controller: 'SubjectListController'
});
$routeProvider.when('/dashboard', {
templateUrl: 'views/dashboard.html',
@@ -185,7 +185,7 @@ app.config(function($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true);
});
-app.run(function($rootScope, AuthService, AUTH_EVENTS, $location) {
+app.run(function($rootScope, AuthService, AUTH_EVENTS, Session, $location) {
AuthService.refresh().then(function() {
$rootScope.$broadcast(AUTH_EVENTS.loginSuccess);
@@ -198,8 +198,9 @@ app.run(function($rootScope, AuthService, AUTH_EVENTS, $location) {
return;
}
- AuthService.refresh().then(function() {
+ AuthService.refresh().then(function(res) {
// Authentifizierung war erfolgreich
+ Session.create(Date.now(), res.data);
$rootScope.$broadcast(AUTH_EVENTS.loginRefreshed);
}, function() {
// Authentifizierung ist fehlgeschlagen, User abmelden
View
1,051 public/assets/css/bootstrap-theme.css
@@ -1,5 +1,5 @@
/*!
- * Bootstrap v3.1.1
+ * Bootstrap v3.2
*
* Copyright 2014 Twitter, Inc
* Licensed under the Apache License v2.0
@@ -8,7 +8,7 @@
* Designed and built with all the love in the world by @mdo and @fat.
* BootSwatchr built and provided by @DrewStrickland
*/
-/*! normalize.css v3.0.0 | MIT License | git.io/normalize */
+/*! normalize.css v3.0.1 | MIT License | git.io/normalize */
html {
font-family: sans-serif;
-ms-text-size-adjust: 100%;
@@ -271,12 +271,12 @@ th {
box-sizing: border-box;
}
html {
- font-size: 62.5%;
+ font-size: 10px;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
body {
font-family: Geneva, Arial, Tahoma, Verdana, sans-serif;
- font-size: 14px;
+ font-size: 16px;
line-height: 1.428571429;
color: #333333;
background-color: #ffffff;
@@ -315,21 +315,24 @@ img {
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
display: block;
+ width: 100% \9;
max-width: 100%;
height: auto;
}
.img-rounded {
- border-radius: 0;
+ border-radius: 0px;
}
.img-thumbnail {
padding: 4px;
line-height: 1.428571429;
background-color: #ffffff;
border: 1px solid #dddddd;
- border-radius: 0;
+ border-radius: 0px;
-webkit-transition: all 0.2s ease-in-out;
+ -o-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
display: inline-block;
+ width: 100% \9;
max-width: 100%;
height: auto;
}
@@ -337,8 +340,8 @@ img {
border-radius: 50%;
}
hr {
- margin-top: 20px;
- margin-bottom: 20px;
+ margin-top: 22px;
+ margin-bottom: 22px;
border: 0;
border-top: 1px solid #eeeeee;
}
@@ -352,6 +355,15 @@ hr {
clip: rect(0, 0, 0, 0);
border: 0;
}
+.sr-only-focusable:active,
+.sr-only-focusable:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ margin: 0;
+ overflow: visible;
+ clip: auto;
+}
h1,
h2,
h3,
@@ -395,7 +407,7 @@ h6 .small,
.h6 .small {
font-weight: normal;
line-height: 1;
- color: #999999;
+ color: #777777;
}
h1,
.h1,
@@ -403,8 +415,8 @@ h2,
.h2,
h3,
.h3 {
- margin-top: 20px;
- margin-bottom: 10px;
+ margin-top: 22px;
+ margin-bottom: 11px;
}
h1 small,
.h1 small,
@@ -426,8 +438,8 @@ h5,
.h5,
h6,
.h6 {
- margin-top: 10px;
- margin-bottom: 10px;
+ margin-top: 11px;
+ margin-bottom: 11px;
}
h4 small,
.h4 small,
@@ -445,49 +457,54 @@ h6 .small,
}
h1,
.h1 {
- font-size: 36px;
+ font-size: 41px;
}
h2,
.h2 {
- font-size: 30px;
+ font-size: 34px;
}
h3,
.h3 {
- font-size: 24px;
+ font-size: 28px;
}
h4,
.h4 {
- font-size: 18px;
+ font-size: 20px;
}
h5,
.h5 {
- font-size: 14px;
+ font-size: 16px;
}
h6,
.h6 {
- font-size: 12px;
+ font-size: 14px;
}
p {
- margin: 0 0 10px;
+ margin: 0 0 11px;
}
.lead {
- margin-bottom: 20px;
- font-size: 16px;
- font-weight: 200;
+ margin-bottom: 22px;
+ font-size: 18px;
+ font-weight: 300;
line-height: 1.4;
}
@media (min-width: 768px) {
.lead {
- font-size: 21px;
+ font-size: 24px;
}
}
small,
.small {
- font-size: 85%;
+ font-size: 87%;
}
cite {
font-style: normal;
}
+mark,
+.mark {
+ background-color: #fcf8e3;
+ padding: .2em;
+}
.text-left {
text-align: left;
}
@@ -500,8 +517,20 @@ cite {
.text-justify {
text-align: justify;
}
+.text-nowrap {
+ white-space: nowrap;
+}
+.text-lowercase {
+ text-transform: lowercase;
+}
+.text-uppercase {
+ text-transform: uppercase;
+}
+.text-capitalize {
+ text-transform: capitalize;
+}
.text-muted {
- color: #999999;
+ color: #777777;
}
.text-primary {
color: #77aabb;
@@ -565,14 +594,14 @@ a.bg-danger:hover {
background-color: #e4b9b9;
}
.page-header {
- padding-bottom: 9px;
- margin: 40px 0 20px;
+ padding-bottom: 10px;
+ margin: 44px 0 22px;
border-bottom: 1px solid #eeeeee;
}
ul,
ol {
margin-top: 0;
- margin-bottom: 10px;
+ margin-bottom: 11px;
}
ul ul,
ol ul,
@@ -596,7 +625,7 @@ ol ol {
}
dl {
margin-top: 0;
- margin-bottom: 20px;
+ margin-bottom: 22px;
}
dt,
dd {
@@ -625,16 +654,16 @@ dd {
abbr[title],
abbr[data-original-title] {
cursor: help;
- border-bottom: 1px dotted #999999;
+ border-bottom: 1px dotted #777777;
}
.initialism {
font-size: 90%;
text-transform: uppercase;
}
blockquote {
- padding: 10px 20px;
- margin: 0 0 20px;
- font-size: 17.5px;
+ padding: 11px 22px;
+ margin: 0 0 22px;
+ font-size: 20px;
border-left: 5px solid #eeeeee;
}
blockquote p:last-child,
@@ -648,7 +677,7 @@ blockquote .small {
display: block;
font-size: 80%;
line-height: 1.428571429;
- color: #999999;
+ color: #777777;
}
blockquote footer:before,
blockquote small:before,
@@ -684,7 +713,7 @@ blockquote:after {
content: "";
}
address {
- margin-bottom: 20px;
+ margin-bottom: 22px;
font-style: normal;
line-height: 1.428571429;
}
@@ -699,29 +728,33 @@ code {
font-size: 90%;
color: #c7254e;
background-color: #f9f2f4;
- white-space: nowrap;
- border-radius: 0;
+ border-radius: 0px;
}
kbd {
padding: 2px 4px;
font-size: 90%;
color: #ffffff;
background-color: #333333;
- border-radius: 0;
+ border-radius: 0px;
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
}
+kbd kbd {
+ padding: 0;
+ font-size: 100%;
+ box-shadow: none;
+}
pre {
display: block;
- padding: 9.5px;
- margin: 0 0 10px;
- font-size: 13px;
+ padding: 10.5px;
+ margin: 0 0 11px;
+ font-size: 15px;
line-height: 1.428571429;
word-break: break-all;
word-wrap: break-word;
color: #333333;
background-color: #f5f5f5;
border: 1px solid #cccccc;
- border-radius: 0;
+ border-radius: 0px;
}
pre code {
padding: 0;
@@ -848,7 +881,7 @@ pre code {
right: 8.333333333333332%;
}
.col-xs-pull-0 {
- right: 0%;
+ right: auto;
}
.col-xs-push-12 {
left: 100%;
@@ -887,7 +920,7 @@ pre code {
left: 8.333333333333332%;
}
.col-xs-push-0 {
- left: 0%;
+ left: auto;
}
.col-xs-offset-12 {
margin-left: 100%;
@@ -1005,7 +1038,7 @@ pre code {
right: 8.333333333333332%;
}
.col-sm-pull-0 {
- right: 0%;
+ right: auto;
}
.col-sm-push-12 {
left: 100%;
@@ -1044,7 +1077,7 @@ pre code {
left: 8.333333333333332%;
}
.col-sm-push-0 {
- left: 0%;
+ left: auto;
}
.col-sm-offset-12 {
margin-left: 100%;
@@ -1163,7 +1196,7 @@ pre code {
right: 8.333333333333332%;
}
.col-md-pull-0 {
- right: 0%;
+ right: auto;
}
.col-md-push-12 {
left: 100%;
@@ -1202,7 +1235,7 @@ pre code {
left: 8.333333333333332%;
}
.col-md-push-0 {
- left: 0%;
+ left: auto;
}
.col-md-offset-12 {
margin-left: 100%;
@@ -1321,7 +1354,7 @@ pre code {
right: 8.333333333333332%;
}
.col-lg-pull-0 {
- right: 0%;
+ right: auto;
}
.col-lg-push-12 {
left: 100%;
@@ -1360,7 +1393,7 @@ pre code {
left: 8.333333333333332%;
}
.col-lg-push-0 {
- left: 0%;
+ left: auto;
}
.col-lg-offset-12 {
margin-left: 100%;
@@ -1403,7 +1436,6 @@ pre code {
}
}
table {
- max-width: 100%;
background-color: transparent;
}
th {
@@ -1411,7 +1443,8 @@ th {
}
.table {
width: 100%;
- margin-bottom: 20px;
+ max-width: 100%;
+ margin-bottom: 22px;
}
.table > thead > tr > th,
.table > tbody > tr > th,
@@ -1501,6 +1534,7 @@ table th[class*="col-"] {
.table-hover > tbody > tr > td.active:hover,
.table-hover > tbody > tr > th.active:hover,
.table-hover > tbody > tr.active:hover > td,
+.table-hover > tbody > tr:hover > .active,
.table-hover > tbody > tr.active:hover > th {
background-color: #e8e8e8;
}
@@ -1521,6 +1555,7 @@ table th[class*="col-"] {
.table-hover > tbody > tr > td.success:hover,
.table-hover > tbody > tr > th.success:hover,
.table-hover > tbody > tr.success:hover > td,
+.table-hover > tbody > tr:hover > .success,
.table-hover > tbody > tr.success:hover > th {
background-color: #d0e9c6;
}
@@ -1541,6 +1576,7 @@ table th[class*="col-"] {
.table-hover > tbody > tr > td.info:hover,
.table-hover > tbody > tr > th.info:hover,
.table-hover > tbody > tr.info:hover > td,
+.table-hover > tbody > tr:hover > .info,
.table-hover > tbody > tr.info:hover > th {
background-color: #c4e3f3;
}
@@ -1561,6 +1597,7 @@ table th[class*="col-"] {
.table-hover > tbody > tr > td.warning:hover,
.table-hover > tbody > tr > th.warning:hover,
.table-hover > tbody > tr.warning:hover > td,
+.table-hover > tbody > tr:hover > .warning,
.table-hover > tbody > tr.warning:hover > th {
background-color: #faf2cc;
}
@@ -1581,15 +1618,16 @@ table th[class*="col-"] {
.table-hover > tbody > tr > td.danger:hover,
.table-hover > tbody > tr > th.danger:hover,
.table-hover > tbody > tr.danger:hover > td,
+.table-hover > tbody > tr:hover > .danger,
.table-hover > tbody > tr.danger:hover > th {
background-color: #ebcccc;
}
-@media (max-width: 767px) {
+@media screen and (max-width: 767px) {
.table-responsive {
width: 100%;
- margin-bottom: 15px;
+ margin-bottom: 16.5px;
overflow-y: hidden;
- overflow-x: scroll;
+ overflow-x: auto;
-ms-overflow-style: -ms-autohiding-scrollbar;
border: 1px solid #dddddd;
-webkit-overflow-scrolling: touch;
@@ -1641,8 +1679,8 @@ legend {
display: block;
width: 100%;
padding: 0;
- margin-bottom: 20px;
- font-size: 21px;
+ margin-bottom: 22px;
+ font-size: 24px;
line-height: inherit;
color: #333333;
border: 0;
@@ -1650,6 +1688,7 @@ legend {
}
label {
display: inline-block;
+ max-width: 100%;
margin-bottom: 5px;
font-weight: bold;
}
@@ -1662,7 +1701,6 @@ input[type="radio"],
input[type="checkbox"] {
margin: 4px 0 0;
margin-top: 1px \9;
- /* IE8-9 */
line-height: normal;
}
input[type="file"] {
@@ -1686,25 +1724,26 @@ input[type="checkbox"]:focus {
output {
display: block;
padding-top: 7px;
- font-size: 14px;
+ font-size: 16px;
line-height: 1.428571429;
color: #555555;
}
.form-control {
display: block;
width: 100%;
- height: 34px;
+ height: 36px;
padding: 6px 12px;
- font-size: 14px;
+ font-size: 16px;
line-height: 1.428571429;
color: #555555;
background-color: #ffffff;
background-image: none;
border: 1px solid #cccccc;
- border-radius: 0;
+ border-radius: 0px;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
+ -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
}
.form-control:focus {
@@ -1714,14 +1753,14 @@ output {
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.form-control::-moz-placeholder {
- color: #999999;
+ color: #777777;
opacity: 1;
}
.form-control:-ms-input-placeholder {
- color: #999999;
+ color: #777777;
}
.form-control::-webkit-input-placeholder {
- color: #999999;
+ color: #777777;
}
.form-control[disabled],
.form-control[readonly],
@@ -1736,23 +1775,40 @@ textarea.form-control {
input[type="search"] {
-webkit-appearance: none;
}
-input[type="date"] {
- line-height: 34px;
+input[type="date"],
+input[type="time"],
+input[type="datetime-local"],
+input[type="month"] {
+ line-height: 36px;
+ line-height: 1.428571429 \0;
+}
+input[type="date"].input-sm,
+input[type="time"].input-sm,
+input[type="datetime-local"].input-sm,
+input[type="month"].input-sm {
+ line-height: 33px;
+}
+input[type="date"].input-lg,
+input[type="time"].input-lg,
+input[type="datetime-local"].input-lg,
+input[type="month"].input-lg {
+ line-height: 49px;
}
.form-group {
margin-bottom: 15px;
}
.radio,
.checkbox {
+ position: relative;
display: block;
- min-height: 20px;
+ min-height: 22px;
margin-top: 10px;
margin-bottom: 10px;
- padding-left: 20px;
}
.radio label,
.checkbox label {
- display: inline;
+ padding-left: 20px;
+ margin-bottom: 0;
font-weight: normal;
cursor: pointer;
}
@@ -1760,8 +1816,9 @@ input[type="date"] {
.radio-inline input[type="radio"],
.checkbox input[type="checkbox"],
.checkbox-inline input[type="checkbox"] {
- float: left;
+ position: absolute;
margin-left: -20px;
+ margin-top: 4px \9;
}
.radio + .radio,
.checkbox + .checkbox {
@@ -1783,43 +1840,61 @@ input[type="date"] {
}
input[type="radio"][disabled],
input[type="checkbox"][disabled],
-.radio[disabled],
-.radio-inline[disabled],
-.checkbox[disabled],
-.checkbox-inline[disabled],
+input[type="radio"].disabled,
+input[type="checkbox"].disabled,
fieldset[disabled] input[type="radio"],
-fieldset[disabled] input[type="checkbox"],
-fieldset[disabled] .radio,
+fieldset[disabled] input[type="checkbox"] {
+ cursor: not-allowed;
+}
+.radio-inline.disabled,
+.checkbox-inline.disabled,
fieldset[disabled] .radio-inline,
-fieldset[disabled] .checkbox,
fieldset[disabled] .checkbox-inline {
cursor: not-allowed;
}
-.input-sm {
- height: 30px;
+.radio.disabled label,
+.checkbox.disabled label,
+fieldset[disabled] .radio label,
+fieldset[disabled] .checkbox label {
+ cursor: not-allowed;
+}
+.form-control-static {
+ padding-top: 7px;
+ padding-bottom: 7px;
+ margin-bottom: 0;
+}
+.form-control-static.input-lg,
+.form-control-static.input-sm {
+ padding-left: 0;
+ padding-right: 0;
+}
+.input-sm,
+.form-horizontal .form-group-sm .form-control {
+ height: 33px;
padding: 5px 10px;
- font-size: 12px;
+ font-size: 14px;
line-height: 1.5;
- border-radius: 0;
+ border-radius: 0px;
}
select.input-sm {
- height: 30px;
- line-height: 30px;
+ height: 33px;
+ line-height: 33px;
}
textarea.input-sm,
select[multiple].input-sm {
height: auto;
}
-.input-lg {
- height: 46px;
+.input-lg,
+.form-horizontal .form-group-lg .form-control {
+ height: 49px;
padding: 10px 16px;
- font-size: 18px;
+ font-size: 20px;
line-height: 1.33;
- border-radius: 0;
+ border-radius: 0px;
}
select.input-lg {
- height: 46px;
- line-height: 46px;
+ height: 49px;
+ line-height: 49px;
}
textarea.input-lg,
select[multiple].input-lg {
@@ -1829,18 +1904,29 @@ select[multiple].input-lg {
position: relative;
}
.has-feedback .form-control {
- padding-right: 42.5px;
+ padding-right: 45px;
}
-.has-feedback .form-control-feedback {
+.form-control-feedback {
position: absolute;
- top: 25px;
+ top: 27px;
right: 0;
+ z-index: 2;
display: block;
- width: 34px;
- height: 34px;
- line-height: 34px;
+ width: 36px;
+ height: 36px;
+ line-height: 36px;
text-align: center;
}
+.input-lg + .form-control-feedback {
+ width: 49px;
+ height: 49px;
+ line-height: 49px;
+}
+.input-sm + .form-control-feedback {
+ width: 33px;
+ height: 33px;
+ line-height: 33px;
+}
.has-success .help-block,
.has-success .control-label,
.has-success .radio,
@@ -1919,8 +2005,8 @@ select[multiple].input-lg {
.has-error .form-control-feedback {
color: #a94442;
}
-.form-control-static {
- margin-bottom: 0;
+.has-feedback label.sr-only ~ .form-control-feedback {
+ top: 0;
}
.help-block {
display: block;
@@ -1939,6 +2025,15 @@ select[multiple].input-lg {
width: auto;
vertical-align: middle;
}
+ .form-inline .input-group {
+ display: inline-table;
+ vertical-align: middle;
+ }
+ .form-inline .input-group .input-group-addon,
+ .form-inline .input-group .input-group-btn,
+ .form-inline .input-group .form-control {
+ width: auto;
+ }
.form-inline .input-group > .form-control {
width: 100%;
}
@@ -1951,19 +2046,21 @@ select[multiple].input-lg {
display: inline-block;
margin-top: 0;
margin-bottom: 0;
- padding-left: 0;
vertical-align: middle;
}
+ .form-inline .radio label,
+ .form-inline .checkbox label {
+ padding-left: 0;
+ }
.form-inline .radio input[type="radio"],
.form-inline .checkbox input[type="checkbox"] {
- float: none;
+ position: relative;
margin-left: 0;
}
.form-inline .has-feedback .form-control-feedback {
top: 0;
}
}
-.form-horizontal .control-label,
.form-horizontal .radio,
.form-horizontal .checkbox,
.form-horizontal .radio-inline,
@@ -1974,24 +2071,33 @@ select[multiple].input-lg {
}
.form-horizontal .radio,
.form-horizontal .checkbox {
- min-height: 27px;
+ min-height: 29px;
}
.form-horizontal .form-group {
margin-left: -15px;
margin-right: -15px;
}
-.form-horizontal .form-control-static {
- padding-top: 7px;
-}
@media (min-width: 768px) {
.form-horizontal .control-label {
text-align: right;
+ margin-bottom: 0;
+ padding-top: 7px;
}
}
.form-horizontal .has-feedback .form-control-feedback {
top: 0;
right: 15px;
}
+@media (min-width: 768px) {
+ .form-horizontal .form-group-lg .control-label {
+ padding-top: 14.3px;
+ }
+}
+@media (min-width: 768px) {
+ .form-horizontal .form-group-sm .control-label {
+ padding-top: 6px;
+ }
+}
.btn {
display: inline-block;
margin-bottom: 0;
@@ -2003,9 +2109,9 @@ select[multiple].input-lg {
border: 1px solid transparent;
white-space: nowrap;
padding: 6px 12px;
- font-size: 14px;
+ font-size: 16px;
line-height: 1.428571429;
- border-radius: 0;
+ border-radius: 0px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
@@ -2049,14 +2155,14 @@ fieldset[disabled] .btn {
.btn-default:focus,
.btn-default:active,
.btn-default.active,
-.open .dropdown-toggle.btn-default {
+.open > .dropdown-toggle.btn-default {
color: #333333;
- background-color: #ebebeb;
+ background-color: #e6e6e6;
border-color: #adadad;
}
.btn-default:active,
.btn-default.active,
-.open .dropdown-toggle.btn-default {
+.open > .dropdown-toggle.btn-default {
background-image: none;
}
.btn-default.disabled,
@@ -2090,14 +2196,14 @@ fieldset[disabled] .btn-default.active {
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
-.open .dropdown-toggle.btn-primary {
+.open > .dropdown-toggle.btn-primary {
color: #ffffff;
- background-color: #5c99ad;
+ background-color: #5595aa;
border-color: #498092;
}
.btn-primary:active,
.btn-primary.active,
-.open .dropdown-toggle.btn-primary {
+.open > .dropdown-toggle.btn-primary {
background-image: none;
}
.btn-primary.disabled,
@@ -2131,14 +2237,14 @@ fieldset[disabled] .btn-primary.active {
.btn-success:focus,
.btn-success:active,
.btn-success.active,
-.open .dropdown-toggle.btn-success {
+.open > .dropdown-toggle.btn-success {
color: #ffffff;
- background-color: #5fa300;
+ background-color: #599900;
border-color: #447500;
}
.btn-success:active,
.btn-success.active,
-.open .dropdown-toggle.btn-success {
+.open > .dropdown-toggle.btn-success {
background-image: none;
}
.btn-success.disabled,
@@ -2172,14 +2278,14 @@ fieldset[disabled] .btn-success.active {
.btn-info:focus,
.btn-info:active,
.btn-info.active,
-.open .dropdown-toggle.btn-info {
+.open > .dropdown-toggle.btn-info {
color: #ffffff;
- background-color: #753a1d;
+ background-color: #6d361b;
border-color: #502814;
}
.btn-info:active,
.btn-info.active,
-.open .dropdown-toggle.btn-info {
+.open > .dropdown-toggle.btn-info {
background-image: none;
}
.btn-info.disabled,
@@ -2213,14 +2319,14 @@ fieldset[disabled] .btn-info.active {
.btn-warning:focus,
.btn-warning:active,
.btn-warning.active,
-.open .dropdown-toggle.btn-warning {
+.open > .dropdown-toggle.btn-warning {
color: #ffffff;
- background-color: #ed9c28;
+ background-color: #ec971f;
border-color: #d58512;
}
.btn-warning:active,
.btn-warning.active,
-.open .dropdown-toggle.btn-warning {
+.open > .dropdown-toggle.btn-warning {
background-image: none;
}
.btn-warning.disabled,
@@ -2254,14 +2360,14 @@ fieldset[disabled] .btn-warning.active {
.btn-danger:focus,
.btn-danger:active,
.btn-danger.active,
-.open .dropdown-toggle.btn-danger {
+.open > .dropdown-toggle.btn-danger {
color: #ffffff;
- background-color: #d2322d;
+ background-color: #c9302c;
border-color: #ac2925;
}
.btn-danger:active,
.btn-danger.active,
-.open .dropdown-toggle.btn-danger {
+.open > .dropdown-toggle.btn-danger {
background-image: none;
}
.btn-danger.disabled,
@@ -2316,35 +2422,33 @@ fieldset[disabled] .btn-link {
fieldset[disabled] .btn-link:hover,
.btn-link[disabled]:focus,
fieldset[disabled] .btn-link:focus {
- color: #999999;
+ color: #777777;
text-decoration: none;
}
.btn-lg,
.btn-group-lg > .btn {
padding: 10px 16px;
- font-size: 18px;
+ font-size: 20px;
line-height: 1.33;
- border-radius: 0;
+ border-radius: 0px;
}
.btn-sm,
.btn-group-sm > .btn {
padding: 5px 10px;
- font-size: 12px;
+ font-size: 14px;
line-height: 1.5;
- border-radius: 0;
+ border-radius: 0px;
}
.btn-xs,
.btn-group-xs > .btn {
padding: 1px 5px;
- font-size: 12px;
+ font-size: 14px;
line-height: 1.5;
- border-radius: 0;
+ border-radius: 0px;
}
.btn-block {
display: block;
width: 100%;
- padding-left: 0;
- padding-right: 0;
}
.btn-block + .btn-block {
margin-top: 5px;
@@ -2357,6 +2461,7 @@ input[type="button"].btn-block {
.fade {
opacity: 0;
-webkit-transition: opacity 0.15s linear;
+ -o-transition: opacity 0.15s linear;
transition: opacity 0.15s linear;
}
.fade.in {
@@ -2368,18 +2473,25 @@ input[type="button"].btn-block {
.collapse.in {
display: block;
}
+tr.collapse.in {
+ display: table-row;
+}
+tbody.collapse.in {
+ display: table-row-group;
+}
.collapsing {
position: relative;
height: 0;
overflow: hidden;
-webkit-transition: height 0.35s ease;
+ -o-transition: height 0.35s ease;
transition: height 0.35s ease;
}
-@font-face {
+/*@font-face {
font-family: 'Glyphicons Halflings';
src: url('../fonts/glyphicons-halflings-regular.eot');
src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
-}
+}*/
.glyphicon {
position: relative;
top: 1px;
@@ -3018,11 +3130,12 @@ input[type="button"].btn-block {
padding: 5px 0;
margin: 2px 0 0;
list-style: none;
- font-size: 14px;
+ font-size: 16px;
+ text-align: left;
background-color: #ffffff;
border: 1px solid #cccccc;
border: 1px solid rgba(0, 0, 0, 0.15);
- border-radius: 0;
+ border-radius: 0px;
-webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
background-clip: padding-box;
@@ -3033,7 +3146,7 @@ input[type="button"].btn-block {
}
.dropdown-menu .divider {
height: 1px;
- margin: 9px 0;
+ margin: 10px 0;
overflow: hidden;
background-color: #e5e5e5;
}
@@ -3063,7 +3176,7 @@ input[type="button"].btn-block {
.dropdown-menu > .disabled > a,
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
- color: #999999;
+ color: #777777;
}
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
@@ -3090,9 +3203,10 @@ input[type="button"].btn-block {
.dropdown-header {
display: block;
padding: 3px 20px;
- font-size: 12px;
+ font-size: 14px;
line-height: 1.428571429;
- color: #999999;
+ color: #777777;
+ white-space: nowrap;
}
.dropdown-backdrop {
position: fixed;
@@ -3151,7 +3265,7 @@ input[type="button"].btn-block {
}
.btn-group > .btn:focus,
.btn-group-vertical > .btn:focus {
- outline: none;
+ outline: 0;
}
.btn-group .btn + .btn,
.btn-group .btn + .btn-group,
@@ -3253,12 +3367,12 @@ input[type="button"].btn-block {
border-radius: 0;
}
.btn-group-vertical > .btn:first-child:not(:last-child) {
- border-top-right-radius: 0;
+ border-top-right-radius: 0px;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn:last-child:not(:first-child) {
- border-bottom-left-radius: 0;
+ border-bottom-left-radius: 0px;
border-top-right-radius: 0;
border-top-left-radius: 0;
}
@@ -3289,9 +3403,15 @@ input[type="button"].btn-block {
.btn-group-justified > .btn-group .btn {
width: 100%;
}
+.btn-group-justified > .btn-group .dropdown-menu {
+ left: auto;
+}
[data-toggle="buttons"] > .btn > input[type="radio"],
[data-toggle="buttons"] > .btn > input[type="checkbox"] {
- display: none;
+ position: absolute;
+ z-index: -1;
+ opacity: 0;
+ filter: alpha(opacity=0);
}
.input-group {
position: relative;
@@ -3313,17 +3433,17 @@ input[type="button"].btn-block {
.input-group-lg > .form-control,
.input-group-lg > .input-group-addon,
.input-group-lg > .input-group-btn > .btn {
- height: 46px;
+ height: 49px;
padding: 10px 16px;
- font-size: 18px;
+ font-size: 20px;
line-height: 1.33;
- border-radius: 0;
+ border-radius: 0px;
}
select.input-group-lg > .form-control,
select.input-group-lg > .input-group-addon,
select.input-group-lg > .input-group-btn > .btn {
- height: 46px;
- line-height: 46px;
+ height: 49px;
+ line-height: 49px;
}
textarea.input-group-lg > .form-control,
textarea.input-group-lg > .input-group-addon,
@@ -3336,17 +3456,17 @@ select[multiple].input-group-lg > .input-group-btn > .btn {
.input-group-sm > .form-control,
.input-group-sm > .input-group-addon,
.input-group-sm > .input-group-btn > .btn {
- height: 30px;
+ height: 33px;
padding: 5px 10px;
- font-size: 12px;
+ font-size: 14px;
line-height: 1.5;
- border-radius: 0;
+ border-radius: 0px;
}
select.input-group-sm > .form-control,
select.input-group-sm > .input-group-addon,
select.input-group-sm > .input-group-btn > .btn {
- height: 30px;
- line-height: 30px;
+ height: 33px;
+ line-height: 33px;
}
textarea.input-group-sm > .form-control,
textarea.input-group-sm > .input-group-addon,
@@ -3374,24 +3494,24 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
}
.input-group-addon {
padding: 6px 12px;
- font-size: 14px;
+ font-size: 16px;
font-weight: normal;
line-height: 1;
color: #555555;
text-align: center;
background-color: #eeeeee;
border: 1px solid #cccccc;
- border-radius: 0;
+ border-radius: 0px;
}
.input-group-addon.input-sm {
padding: 5px 10px;
- font-size: 12px;
- border-radius: 0;
+ font-size: 14px;
+ border-radius: 0px;
}
.input-group-addon.input-lg {
padding: 10px 16px;
- font-size: 18px;
- border-radius: 0;
+ font-size: 20px;
+ border-radius: 0px;
}
.input-group-addon input[type="radio"],
.input-group-addon input[type="checkbox"] {
@@ -3467,11 +3587,11 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
background-color: #eeeeee;
}
.nav > li.disabled > a {
- color: #999999;
+ color: #777777;
}
.nav > li.disabled > a:hover,
.nav > li.disabled > a:focus {
- color: #999999;
+ color: #777777;
text-decoration: none;
background-color: transparent;
cursor: not-allowed;
@@ -3484,7 +3604,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
}
.nav .nav-divider {
height: 1px;
- margin: 9px 0;
+ margin: 10px 0;
overflow: hidden;
background-color: #e5e5e5;
}
@@ -3502,7 +3622,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
margin-right: 2px;
line-height: 1.428571429;
border: 1px solid transparent;
- border-radius: 0 0 0 0;
+ border-radius: 0px 0px 0 0;
}
.nav-tabs > li > a:hover {
border-color: #eeeeee #eeeeee #dddddd;
@@ -3542,7 +3662,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
}
.nav-tabs.nav-justified > li > a {
margin-right: 0;
- border-radius: 0;
+ border-radius: 0px;
}
.nav-tabs.nav-justified > .active > a,
.nav-tabs.nav-justified > .active > a:hover,
@@ -3552,7 +3672,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
@media (min-width: 768px) {
.nav-tabs.nav-justified > li > a {
border-bottom: 1px solid #dddddd;
- border-radius: 0 0 0 0;
+ border-radius: 0px 0px 0 0;
}
.nav-tabs.nav-justified > .active > a,
.nav-tabs.nav-justified > .active > a:hover,
@@ -3564,7 +3684,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
float: left;
}
.nav-pills > li > a {
- border-radius: 0;
+ border-radius: 0px;
}
.nav-pills > li + li {
margin-left: 2px;
@@ -3610,7 +3730,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
}
.nav-tabs-justified > li > a {
margin-right: 0;
- border-radius: 0;
+ border-radius: 0px;
}
.nav-tabs-justified > .active > a,
.nav-tabs-justified > .active > a:hover,
@@ -3620,7 +3740,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
@media (min-width: 768px) {
.nav-tabs-justified > li > a {
border-bottom: 1px solid #dddddd;
- border-radius: 0 0 0 0;
+ border-radius: 0px 0px 0 0;
}
.nav-tabs-justified > .active > a,
.nav-tabs-justified > .active > a:hover,
@@ -3642,12 +3762,12 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
.navbar {
position: relative;
min-height: 50px;
- margin-bottom: 20px;
+ margin-bottom: 22px;
border: 1px solid transparent;
}
@media (min-width: 768px) {
.navbar {
- border-radius: 0;
+ border-radius: 0px;
}
}
@media (min-width: 768px) {
@@ -3656,7 +3776,6 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
}
}
.navbar-collapse {
- max-height: 340px;
overflow-x: visible;
padding-right: 15px;
padding-left: 15px;
@@ -3689,6 +3808,16 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
padding-right: 0;
}
}
+.navbar-fixed-top .navbar-collapse,
+.navbar-fixed-bottom .navbar-collapse {
+ max-height: 340px;
+}
+@media (max-width: 480px) and (orientation: landscape) {
+ .navbar-fixed-top .navbar-collapse,
+ .navbar-fixed-bottom .navbar-collapse {
+ max-height: 200px;
+ }
+}
.container > .navbar-header,
.container-fluid > .navbar-header,
.container > .navbar-collapse,
@@ -3720,6 +3849,8 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
right: 0;
left: 0;
z-index: 1030;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
}
@media (min-width: 768px) {
.navbar-fixed-top,
@@ -3738,9 +3869,9 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
}
.navbar-brand {
float: left;
- padding: 15px 15px;
- font-size: 18px;
- line-height: 20px;
+ padding: 14px 15px;
+ font-size: 20px;
+ line-height: 22px;
height: 50px;
}
.navbar-brand:hover,
@@ -3763,10 +3894,10 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
background-color: transparent;
background-image: none;
border: 1px solid transparent;
- border-radius: 0;
+ border-radius: 0px;
}
.navbar-toggle:focus {
- outline: none;
+ outline: 0;
}
.navbar-toggle .icon-bar {
display: block;
@@ -3783,12 +3914,12 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
}
}
.navbar-nav {
- margin: 7.5px -15px;
+ margin: 7px -15px;
}
.navbar-nav > li > a {
padding-top: 10px;
padding-bottom: 10px;
- line-height: 20px;
+ line-height: 22px;
}
@media (max-width: 767px) {
.navbar-nav .open .dropdown-menu {
@@ -3805,7 +3936,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
padding: 5px 15px 5px 25px;
}
.navbar-nav .open .dropdown-menu > li > a {
- line-height: 20px;
+ line-height: 22px;
}
.navbar-nav .open .dropdown-menu > li > a:hover,
.navbar-nav .open .dropdown-menu > li > a:focus {
@@ -3821,8 +3952,8 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
float: left;
}
.navbar-nav > li > a {
- padding-top: 15px;
- padding-bottom: 15px;
+ padding-top: 14px;
+ padding-bottom: 14px;
}
.navbar-nav.navbar-right:last-child {
margin-right: -15px;
@@ -3844,8 +3975,8 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
border-bottom: 1px solid transparent;
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
- margin-top: 8px;
- margin-bottom: 8px;
+ margin-top: 7px;
+ margin-bottom: 7px;
}
@media (min-width: 768px) {
.navbar-form .form-group {
@@ -3858,6 +3989,15 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
width: auto;
vertical-align: middle;
}
+ .navbar-form .input-group {
+ display: inline-table;
+ vertical-align: middle;
+ }
+ .navbar-form .input-group .input-group-addon,
+ .navbar-form .input-group .input-group-btn,
+ .navbar-form .input-group .form-control {
+ width: auto;
+ }
.navbar-form .input-group > .form-control {
width: 100%;
}
@@ -3870,12 +4010,15 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
display: inline-block;
margin-top: 0;
margin-bottom: 0;
- padding-left: 0;
vertical-align: middle;
}
+ .navbar-form .radio label,
+ .navbar-form .checkbox label {
+ padding-left: 0;
+ }
.navbar-form .radio input[type="radio"],
.navbar-form .checkbox input[type="checkbox"] {
- float: none;
+ position: relative;
margin-left: 0;
}
.navbar-form .has-feedback .form-control-feedback {
@@ -3912,20 +4055,20 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
border-bottom-left-radius: 0;
}
.navbar-btn {
- margin-top: 8px;
- margin-bottom: 8px;
+ margin-top: 7px;
+ margin-bottom: 7px;
}
.navbar-btn.btn-sm {
- margin-top: 10px;
- margin-bottom: 10px;
+ margin-top: 8.5px;
+ margin-bottom: 8.5px;
}
.navbar-btn.btn-xs {
margin-top: 14px;
margin-bottom: 14px;
}
.navbar-text {
- margin-top: 15px;
- margin-bottom: 15px;
+ margin-top: 14px;
+ margin-bottom: 14px;
}
@media (min-width: 768px) {
.navbar-text {
@@ -3938,33 +4081,33 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
}
}