From 54b2027ca2799fac7a3e4ea6782367b9c3d78423 Mon Sep 17 00:00:00 2001 From: RicardoVaranda Date: Thu, 7 May 2015 22:01:52 +0100 Subject: [PATCH] LIVE UPDATES --- app/Console/Commands/Inspire.php | 34 - app/Console/Kernel.php | 29 - app/Events/Event.php | 7 - app/Exceptions/Handler.php | 42 - app/Handlers/Commands/.gitkeep | 0 app/Handlers/Events/.gitkeep | 0 app/Http/Controllers/Auth/AuthController.php | 38 - .../Controllers/Auth/PasswordController.php | 38 - app/Http/Controllers/Controller.php | 11 - app/Http/Controllers/HomeController.php | 36 - app/Http/Controllers/WelcomeController.php | 36 - app/Http/Kernel.php | 32 - app/Http/Middleware/Authenticate.php | 50 - .../Middleware/RedirectIfAuthenticated.php | 44 - app/Http/Middleware/VerifyCsrfToken.php | 20 - app/Http/Requests/Request.php | 9 - app/Http/routes.php | 21 - app/Providers/AppServiceProvider.php | 34 - app/Providers/BusServiceProvider.php | 34 - app/Providers/ConfigServiceProvider.php | 23 - app/Providers/EventServiceProvider.php | 32 - app/Providers/RouteServiceProvider.php | 44 - app/Services/Registrar.php | 39 - app/User.php | 34 - app/commands/Command.php | 7 - app/config/app.php | 7 +- app/config/database.php | 4 +- app/controllers/.gitkeep | 0 app/controllers/AccountController.php | 23 +- app/controllers/DepartmentController.php | 6 +- app/controllers/ElectiveController.php | 156 +- app/controllers/ModuleController.php | 114 +- app/database/.gitignore | 1 - app/lang/en/reminders.php | 2 - app/lang/en/validation.php | 2 - app/routes.php | 17 +- app/storage/img/layout.png | Bin 32453 -> 0 bytes app/tests/HODViewTest.php | 209 ++- app/tests/LecturerViewTest.php | 17 +- app/tests/SignInTest.php | 20 +- app/tests/StudentViewTest.php | 45 +- app/tests/TechnicianViewTest.php | 258 ++- app/views/account/password.blade.php | 4 +- app/views/account/signin.blade.php | 4 +- app/views/layout/classes.blade.php | 8 +- app/views/layout/electivepreview.blade.php | 2 +- app/views/layout/electives/hod.blade.php | 10 +- app/views/layout/hod.blade.php | 104 +- app/views/layout/lecturer.blade.php | 17 +- app/views/layout/moduleedit.blade.php | 10 +- app/views/layout/student.blade.php | 17 +- app/views/layout/tech.blade.php | 19 +- bootstrap/app.php | 55 - config/app.php | 205 --- config/auth.php | 67 - config/cache.php | 79 - config/compile.php | 41 - config/database.php | 125 -- config/filesystems.php | 70 - config/mail.php | 124 -- config/queue.php | 92 - config/services.php | 37 - config/session.php | 153 -- config/view.php | 33 - database/.gitignore | 1 - database/migrations/.gitkeep | 0 .../2014_10_12_000000_create_users_table.php | 36 - ...12_100000_create_password_resets_table.php | 33 - database/seeds/.gitkeep | 0 database/seeds/DatabaseSeeder.php | 20 - public/.htaccess | 1 - public/css/style.css | 5 +- public/js/main.js | 14 +- resources/assets/less/app.less | 8 - resources/assets/less/bootstrap/alerts.less | 68 - resources/assets/less/bootstrap/badges.less | 61 - .../assets/less/bootstrap/bootstrap.less | 50 - .../assets/less/bootstrap/breadcrumbs.less | 26 - .../assets/less/bootstrap/button-groups.less | 243 --- resources/assets/less/bootstrap/buttons.less | 160 -- resources/assets/less/bootstrap/carousel.less | 267 --- resources/assets/less/bootstrap/close.less | 33 - resources/assets/less/bootstrap/code.less | 69 - .../less/bootstrap/component-animations.less | 34 - .../assets/less/bootstrap/dropdowns.less | 213 --- resources/assets/less/bootstrap/forms.less | 546 ------ .../assets/less/bootstrap/glyphicons.less | 234 --- resources/assets/less/bootstrap/grid.less | 84 - .../assets/less/bootstrap/input-groups.less | 166 -- .../assets/less/bootstrap/jumbotron.less | 49 - resources/assets/less/bootstrap/labels.less | 64 - .../assets/less/bootstrap/list-group.less | 124 -- resources/assets/less/bootstrap/media.less | 47 - resources/assets/less/bootstrap/mixins.less | 39 - .../assets/less/bootstrap/mixins/alerts.less | 14 - .../bootstrap/mixins/background-variant.less | 8 - .../less/bootstrap/mixins/border-radius.less | 18 - .../assets/less/bootstrap/mixins/buttons.less | 52 - .../less/bootstrap/mixins/center-block.less | 7 - .../less/bootstrap/mixins/clearfix.less | 22 - .../assets/less/bootstrap/mixins/forms.less | 85 - .../less/bootstrap/mixins/gradients.less | 59 - .../less/bootstrap/mixins/grid-framework.less | 91 - .../assets/less/bootstrap/mixins/grid.less | 122 -- .../less/bootstrap/mixins/hide-text.less | 21 - .../assets/less/bootstrap/mixins/image.less | 33 - .../assets/less/bootstrap/mixins/labels.less | 12 - .../less/bootstrap/mixins/list-group.less | 29 - .../less/bootstrap/mixins/nav-divider.less | 10 - .../bootstrap/mixins/nav-vertical-align.less | 9 - .../assets/less/bootstrap/mixins/opacity.less | 8 - .../less/bootstrap/mixins/pagination.less | 23 - .../assets/less/bootstrap/mixins/panels.less | 24 - .../less/bootstrap/mixins/progress-bar.less | 10 - .../less/bootstrap/mixins/reset-filter.less | 8 - .../assets/less/bootstrap/mixins/resize.less | 6 - .../mixins/responsive-visibility.less | 15 - .../assets/less/bootstrap/mixins/size.less | 10 - .../less/bootstrap/mixins/tab-focus.less | 9 - .../less/bootstrap/mixins/table-row.less | 28 - .../less/bootstrap/mixins/text-emphasis.less | 8 - .../less/bootstrap/mixins/text-overflow.less | 8 - .../bootstrap/mixins/vendor-prefixes.less | 227 --- resources/assets/less/bootstrap/modals.less | 148 -- resources/assets/less/bootstrap/navbar.less | 660 ------- resources/assets/less/bootstrap/navs.less | 244 --- .../assets/less/bootstrap/normalize.less | 427 ----- resources/assets/less/bootstrap/pager.less | 54 - .../assets/less/bootstrap/pagination.less | 88 - resources/assets/less/bootstrap/panels.less | 261 --- resources/assets/less/bootstrap/popovers.less | 135 -- resources/assets/less/bootstrap/print.less | 107 -- .../assets/less/bootstrap/progress-bars.less | 87 - .../less/bootstrap/responsive-embed.less | 35 - .../less/bootstrap/responsive-utilities.less | 194 -- .../assets/less/bootstrap/scaffolding.less | 150 -- resources/assets/less/bootstrap/tables.less | 234 --- resources/assets/less/bootstrap/theme.less | 272 --- .../assets/less/bootstrap/thumbnails.less | 36 - resources/assets/less/bootstrap/tooltip.less | 103 -- resources/assets/less/bootstrap/type.less | 302 --- .../assets/less/bootstrap/utilities.less | 56 - .../assets/less/bootstrap/variables.less | 856 --------- resources/assets/less/bootstrap/wells.less | 29 - resources/lang/en/pagination.php | 19 - resources/lang/en/passwords.php | 22 - resources/lang/en/validation.php | 107 -- resources/views/app.blade.php | 62 - resources/views/auth/login.blade.php | 63 - resources/views/auth/password.blade.php | 50 - resources/views/auth/register.blade.php | 65 - resources/views/auth/reset.blade.php | 59 - resources/views/emails/password.blade.php | 1 - resources/views/errors/503.blade.php | 41 - resources/views/home.blade.php | 17 - resources/views/vendor/.gitkeep | 0 resources/views/welcome.blade.php | 46 - storage/.gitignore | 1 - storage/app/.gitignore | 2 - storage/framework/.gitignore | 6 - storage/framework/cache/.gitignore | 2 - storage/framework/sessions/.gitignore | 2 - storage/framework/views/.gitignore | 2 - storage/logs/.gitignore | 2 - tests/ExampleTest.php | 17 - tests/TestCase.php | 19 - vendor/autoload.php | 2 +- vendor/bin/boris | 19 +- vendor/bin/classpreloader.php | 11 +- vendor/bin/classpreloader.php.bat | 3 - vendor/bin/phpspec | 7 - vendor/bin/phpspec.bat | 3 - vendor/bin/phpunit | 7 - vendor/bin/phpunit.bat | 3 - vendor/bin/psysh | 7 - vendor/bin/psysh.bat | 3 - vendor/classpreloader/classpreloader/LICENSE | 22 - .../classpreloader/src/Application.php | 40 - .../classpreloader/src/ClassList.php | 105 -- .../classpreloader/src/ClassLoader.php | 151 -- .../classpreloader/src/ClassNode.php | 46 - .../src/Command/PreCompileCommand.php | 284 --- .../classpreloader/src/Config.php | 148 -- .../src/Exception/SkipFileException.php | 13 - .../src/Parser/AbstractNodeVisitor.php | 54 - .../classpreloader/src/Parser/DirVisitor.php | 53 - .../classpreloader/src/Parser/FileVisitor.php | 53 - .../src/Parser/NodeTraverser.php | 33 - vendor/composer/autoload_classmap.php | 414 +---- vendor/composer/autoload_files.php | 2 +- vendor/composer/autoload_psr4.php | 1 - vendor/composer/autoload_real.php | 10 +- vendor/composer/installed.json | 754 ++++---- vendor/d11wtq/boris/.gitignore | 1 + vendor/d11wtq/boris/README.md | 299 +-- vendor/d11wtq/boris/bin/boris | 8 +- vendor/d11wtq/boris/box.json | 16 +- vendor/d11wtq/boris/composer.json | 10 +- vendor/d11wtq/boris/lib/Boris/Boris.php | 330 ++-- .../boris/lib/Boris/CLIOptionsHandler.php | 141 +- .../boris/lib/Boris/ColoredInspector.php | 474 +++-- vendor/d11wtq/boris/lib/Boris/Config.php | 151 +- .../d11wtq/boris/lib/Boris/DumpInspector.php | 16 +- vendor/d11wtq/boris/lib/Boris/EvalWorker.php | 486 ++--- .../boris/lib/Boris/ExportInspector.php | 12 +- vendor/d11wtq/boris/lib/Boris/Inspector.php | 21 +- .../d11wtq/boris/lib/Boris/ReadlineClient.php | 187 +- .../d11wtq/boris/lib/Boris/ShallowParser.php | 449 ++--- vendor/d11wtq/boris/lib/autoload.php | 23 +- vendor/danielstjules/stringy/.gitignore | 3 - vendor/danielstjules/stringy/.travis.yml | 7 - vendor/danielstjules/stringy/CHANGELOG.md | 110 -- vendor/danielstjules/stringy/LICENSE.txt | 19 - vendor/danielstjules/stringy/README.md | 1077 ----------- vendor/danielstjules/stringy/composer.json | 35 - vendor/danielstjules/stringy/phpunit.xml.dist | 14 - vendor/danielstjules/stringy/src/Create.php | 19 - .../stringy/src/StaticStringy.php | 869 --------- vendor/danielstjules/stringy/src/Stringy.php | 1464 --------------- .../stringy/tests/CommonTest.php | 1026 ----------- .../stringy/tests/CreateTest.php | 16 - .../stringy/tests/StaticStringyTest.php | 650 ------- .../stringy/tests/StringyTest.php | 914 --------- vendor/dnoegel/php-xdg-base-dir/.gitignore | 1 - vendor/dnoegel/php-xdg-base-dir/LICENSE | 19 - vendor/dnoegel/php-xdg-base-dir/README.md | 38 - vendor/dnoegel/php-xdg-base-dir/composer.json | 17 - .../dnoegel/php-xdg-base-dir/phpunit.xml.dist | 24 - vendor/dnoegel/php-xdg-base-dir/src/Xdg.php | 121 -- .../php-xdg-base-dir/tests/XdgTest.php | 116 -- vendor/doctrine/inflector/.gitignore | 4 - vendor/doctrine/inflector/.travis.yml | 11 - vendor/doctrine/inflector/LICENSE | 19 - vendor/doctrine/inflector/README.md | 6 - vendor/doctrine/inflector/composer.json | 29 - .../Doctrine/Common/Inflector/Inflector.php | 415 ----- vendor/doctrine/inflector/phpunit.xml.dist | 31 - .../Tests/Common/Inflector/InflectorTest.php | 210 --- .../tests/Doctrine/Tests/DoctrineTestCase.php | 10 - .../tests/Doctrine/Tests/TestInit.php | 27 - vendor/doctrine/instantiator/.gitignore | 5 - vendor/doctrine/instantiator/.scrutinizer.yml | 46 - .../doctrine/instantiator/.travis.install.sh | 13 - vendor/doctrine/instantiator/.travis.yml | 26 - vendor/doctrine/instantiator/CONTRIBUTING.md | 35 - vendor/doctrine/instantiator/LICENSE | 19 - vendor/doctrine/instantiator/README.md | 40 - vendor/doctrine/instantiator/composer.json | 45 - vendor/doctrine/instantiator/phpmd.xml.dist | 27 - vendor/doctrine/instantiator/phpunit.xml.dist | 25 - .../Exception/ExceptionInterface.php | 29 - .../Exception/InvalidArgumentException.php | 62 - .../Exception/UnexpectedValueException.php | 79 - .../Doctrine/Instantiator/Instantiator.php | 254 --- .../Instantiator/InstantiatorInterface.php | 37 - .../InstantiatorPerformanceEvent.php | 96 - .../InvalidArgumentExceptionTest.php | 83 - .../UnexpectedValueExceptionTest.php | 69 - .../InstantiatorTest/InstantiatorTest.php | 216 --- .../AbstractClassAsset.php | 29 - .../ArrayObjectAsset.php | 41 - .../InstantiatorTestAsset/PharAsset.php | 41 - .../PharExceptionAsset.php | 44 - .../SerializableArrayObjectAsset.php | 62 - .../SimpleSerializableAsset.php | 61 - .../SimpleTraitAsset.php | 29 - .../UnCloneableAsset.php | 50 - .../UnserializeExceptionArrayObjectAsset.php | 39 - .../WakeUpNoticesAsset.php | 38 - .../InstantiatorTestAsset/XMLReaderAsset.php | 41 - .../whoops/src/Whoops/Exception/Frame.php | 2 +- .../whoops/src/Whoops/Exception/Inspector.php | 2 +- .../src/Whoops/Handler/CallbackHandler.php | 5 +- .../src/Whoops/Handler/PlainTextHandler.php | 8 +- .../src/Whoops/Handler/PrettyPageHandler.php | 3 +- .../src/Whoops/Resources/css/whoops.base.css | 94 +- .../src/Whoops/Resources/js/whoops.base.js | 20 + .../Whoops/Resources/views/header.html.php | 19 +- vendor/filp/whoops/src/Whoops/Run.php | 22 +- vendor/intervention/image/.gitignore | 4 - vendor/intervention/image/.travis.yml | 24 - vendor/intervention/image/LICENSE | 9 - vendor/intervention/image/README.md | 53 - vendor/intervention/image/composer.json | 33 - vendor/intervention/image/phpunit.xml | 18 - vendor/intervention/image/provides.json | 11 - .../src/Intervention/Image/AbstractColor.php | 226 --- .../Intervention/Image/AbstractDecoder.php | 270 --- .../src/Intervention/Image/AbstractDriver.php | 132 -- .../Intervention/Image/AbstractEncoder.php | 218 --- .../src/Intervention/Image/AbstractFont.php | 246 --- .../src/Intervention/Image/AbstractShape.php | 71 - .../Image/Commands/AbstractCommand.php | 79 - .../Intervention/Image/Commands/Argument.php | 225 --- .../Image/Commands/ChecksumCommand.php | 29 - .../Image/Commands/CircleCommand.php | 35 - .../Image/Commands/EllipseCommand.php | 36 - .../Image/Commands/ExifCommand.php | 37 - .../Image/Commands/IptcCommand.php | 62 - .../Image/Commands/LineCommand.php | 36 - .../Image/Commands/OrientateCommand.php | 48 - .../Image/Commands/PolygonCommand.php | 48 - .../Image/Commands/RectangleCommand.php | 36 - .../Image/Commands/ResponseCommand.php | 26 - .../Image/Commands/TextCommand.php | 34 - .../src/Intervention/Image/Constraint.php | 91 - .../Exception/InvalidArgumentException.php | 8 - .../Exception/MissingDependencyException.php | 8 - .../Image/Exception/NotFoundException.php | 8 - .../Image/Exception/NotReadableException.php | 8 - .../Image/Exception/NotSupportedException.php | 8 - .../Image/Exception/NotWritableException.php | 8 - .../Image/Exception/RuntimeException.php | 8 - .../src/Intervention/Image/Facades/Image.php | 13 - .../image/src/Intervention/Image/File.php | 78 - .../Intervention/Image/Filters/DemoFilter.php | 42 - .../Image/Filters/FilterInterface.php | 14 - .../image/src/Intervention/Image/Gd/Color.php | 226 --- .../Image/Gd/Commands/BackupCommand.php | 28 - .../Image/Gd/Commands/BlurCommand.php | 23 - .../Image/Gd/Commands/BrightnessCommand.php | 19 - .../Image/Gd/Commands/ColorizeCommand.php | 27 - .../Image/Gd/Commands/ContrastCommand.php | 19 - .../Image/Gd/Commands/CropCommand.php | 40 - .../Image/Gd/Commands/DestroyCommand.php | 25 - .../Image/Gd/Commands/FillCommand.php | 68 - .../Image/Gd/Commands/FitCommand.php | 33 - .../Image/Gd/Commands/FlipCommand.php | 37 - .../Image/Gd/Commands/GammaCommand.php | 19 - .../Image/Gd/Commands/GetSizeCommand.php | 24 - .../Image/Gd/Commands/GreyscaleCommand.php | 17 - .../Image/Gd/Commands/HeightenCommand.php | 28 - .../Image/Gd/Commands/InsertCommand.php | 32 - .../Image/Gd/Commands/InterlaceCommand.php | 21 - .../Image/Gd/Commands/InvertCommand.php | 17 - .../Image/Gd/Commands/LimitColorsCommand.php | 52 - .../Image/Gd/Commands/MaskCommand.php | 81 - .../Image/Gd/Commands/OpacityCommand.php | 29 - .../Image/Gd/Commands/PickColorCommand.php | 36 - .../Image/Gd/Commands/PixelCommand.php | 24 - .../Image/Gd/Commands/PixelateCommand.php | 19 - .../Image/Gd/Commands/ResetCommand.php | 35 - .../Image/Gd/Commands/ResizeCanvasCommand.php | 84 - .../Image/Gd/Commands/ResizeCommand.php | 82 - .../Image/Gd/Commands/RotateCommand.php | 26 - .../Image/Gd/Commands/SharpenCommand.php | 32 - .../Image/Gd/Commands/TrimCommand.php | 176 -- .../Image/Gd/Commands/WidenCommand.php | 28 - .../src/Intervention/Image/Gd/Decoder.php | 132 -- .../src/Intervention/Image/Gd/Driver.php | 86 - .../src/Intervention/Image/Gd/Encoder.php | 105 -- .../image/src/Intervention/Image/Gd/Font.php | 255 --- .../Image/Gd/Shapes/CircleShape.php | 40 - .../Image/Gd/Shapes/EllipseShape.php | 64 - .../Image/Gd/Shapes/LineShape.php | 89 - .../Image/Gd/Shapes/PolygonShape.php | 48 - .../Image/Gd/Shapes/RectangleShape.php | 75 - .../image/src/Intervention/Image/Image.php | 372 ---- .../src/Intervention/Image/ImageManager.php | 128 -- .../Intervention/Image/ImageManagerStatic.php | 87 - .../Image/ImageServiceProvider.php | 81 - .../Image/ImageServiceProviderLaravel4.php | 100 - .../Image/ImageServiceProviderLaravel5.php | 135 -- .../src/Intervention/Image/Imagick/Color.php | 277 --- .../Image/Imagick/Commands/BackupCommand.php | 22 - .../Image/Imagick/Commands/BlurCommand.php | 19 - .../Imagick/Commands/BrightnessCommand.php | 19 - .../Imagick/Commands/ColorizeCommand.php | 42 - .../Imagick/Commands/ContrastCommand.php | 19 - .../Image/Imagick/Commands/CropCommand.php | 43 - .../Image/Imagick/Commands/DestroyCommand.php | 25 - .../Image/Imagick/Commands/FillCommand.php | 103 -- .../Image/Imagick/Commands/FitCommand.php | 41 - .../Image/Imagick/Commands/FlipCommand.php | 25 - .../Image/Imagick/Commands/GammaCommand.php | 19 - .../Image/Imagick/Commands/GetSizeCommand.php | 26 - .../Imagick/Commands/GreyscaleCommand.php | 17 - .../Imagick/Commands/HeightenCommand.php | 28 - .../Image/Imagick/Commands/InsertCommand.php | 31 - .../Imagick/Commands/InterlaceCommand.php | 27 - .../Image/Imagick/Commands/InvertCommand.php | 17 - .../Imagick/Commands/LimitColorsCommand.php | 57 - .../Image/Imagick/Commands/MaskCommand.php | 58 - .../Image/Imagick/Commands/OpacityCommand.php | 21 - .../Imagick/Commands/PickColorCommand.php | 29 - .../Image/Imagick/Commands/PixelCommand.php | 30 - .../Imagick/Commands/PixelateCommand.php | 25 - .../Image/Imagick/Commands/ResetCommand.php | 37 - .../Imagick/Commands/ResizeCanvasCommand.php | 89 - .../Image/Imagick/Commands/ResizeCommand.php | 27 - .../Image/Imagick/Commands/RotateCommand.php | 26 - .../Image/Imagick/Commands/SharpenCommand.php | 19 - .../Image/Imagick/Commands/TrimCommand.php | 120 -- .../Image/Imagick/Commands/WidenCommand.php | 28 - .../Intervention/Image/Imagick/Decoder.php | 116 -- .../src/Intervention/Image/Imagick/Driver.php | 72 - .../Intervention/Image/Imagick/Encoder.php | 146 -- .../src/Intervention/Image/Imagick/Font.php | 78 - .../Image/Imagick/Shapes/CircleShape.php | 40 - .../Image/Imagick/Shapes/EllipseShape.php | 65 - .../Image/Imagick/Shapes/LineShape.php | 93 - .../Image/Imagick/Shapes/PolygonShape.php | 80 - .../Image/Imagick/Shapes/RectangleShape.php | 83 - .../image/src/Intervention/Image/Point.php | 64 - .../image/src/Intervention/Image/Response.php | 69 - .../image/src/Intervention/Image/Size.php | 373 ---- .../intervention/image/src/config/config.php | 20 - .../image/tests/AbstractColorTest.php | 18 - .../image/tests/AbstractCommandTest.php | 46 - .../image/tests/AbstractDecoderTest.php | 141 -- .../image/tests/AbstractDriverTest.php | 19 - .../image/tests/AbstractFontTest.php | 77 - .../image/tests/AbstractShapeTest.php | 41 - .../intervention/image/tests/ArgumentTest.php | 421 ----- .../image/tests/BackupCommandTest.php | 60 - .../image/tests/BlurCommandTest.php | 33 - .../image/tests/BrightnessCommandTest.php | 33 - .../image/tests/ChecksumCommandTest.php | 26 - .../image/tests/CircleCommandTest.php | 42 - .../image/tests/CircleShapeTest.php | 51 - .../image/tests/ColorizeCommandTest.php | 36 - .../image/tests/ConstraintTest.php | 57 - .../image/tests/ContrastCommandTest.php | 33 - .../image/tests/CropCommandTest.php | 35 - .../image/tests/DestroyCommandTest.php | 45 - .../intervention/image/tests/DriverTest.php | 60 - .../image/tests/EllipseCommandTest.php | 42 - .../image/tests/EllipseShapeTest.php | 54 - .../intervention/image/tests/EncoderTest.php | 252 --- .../image/tests/ExifCommandTest.php | 69 - vendor/intervention/image/tests/FileTest.php | 17 - .../image/tests/FillCommandTest.php | 68 - .../image/tests/FitCommandTest.php | 92 - .../image/tests/FlipCommandTest.php | 44 - .../image/tests/GammaCommandTest.php | 33 - .../intervention/image/tests/GdColorTest.php | 295 --- .../intervention/image/tests/GdSystemTest.php | 1639 ----------------- .../image/tests/GetsizeCommandTest.php | 37 - .../image/tests/GreyscaleCommandTest.php | 33 - .../image/tests/HeightenCommandTest.php | 48 - .../image/tests/ImageManagerStaticTest.php | 35 - .../image/tests/ImageManagerTest.php | 29 - vendor/intervention/image/tests/ImageTest.php | 119 -- .../image/tests/ImagickColorTest.php | 337 ---- .../image/tests/ImagickSystemTest.php | 1631 ---------------- .../image/tests/InsertCommandTest.php | 66 - .../image/tests/InterlaceCommandTest.php | 33 - .../image/tests/InvertCommandTest.php | 33 - .../image/tests/IptcCommandTest.php | 71 - .../image/tests/LimitColorsCommandTest.php | 42 - .../image/tests/LineCommandTest.php | 42 - .../image/tests/LineShapeTest.php | 49 - .../image/tests/MaskCommandTest.php | 67 - .../image/tests/OpacityCommandTest.php | 43 - .../image/tests/OrientateCommandTest.php | 93 - .../image/tests/PickColorCommandTest.php | 66 - .../image/tests/PixelCommandTest.php | 33 - .../image/tests/PixelateCommandTest.php | 36 - vendor/intervention/image/tests/PointTest.php | 46 - .../image/tests/PolygonCommandTest.php | 44 - .../image/tests/PolygonShapeTest.php | 56 - .../image/tests/RectangleCommandTest.php | 42 - .../image/tests/RectangleShapeTest.php | 53 - .../image/tests/ResetCommandTest.php | 70 - .../image/tests/ResizeCanvasCommandTest.php | 79 - .../image/tests/ResizeCommandTest.php | 48 - .../intervention/image/tests/ResponseTest.php | 29 - .../image/tests/RotateCommandTest.php | 35 - .../image/tests/SharpenCommandTest.php | 33 - vendor/intervention/image/tests/SizeTest.php | 435 ----- .../image/tests/TextCommandTest.php | 31 - .../image/tests/TrimCommandTest.php | 53 - .../image/tests/WidenCommandTest.php | 48 - .../image/tests/images/circle.png | Bin 383 -> 0 bytes .../intervention/image/tests/images/exif.jpg | Bin 7791 -> 0 bytes .../image/tests/images/gradient.png | Bin 531 -> 0 bytes .../intervention/image/tests/images/iptc.jpg | Bin 10526 -> 0 bytes .../intervention/image/tests/images/star.png | Bin 463 -> 0 bytes .../intervention/image/tests/images/test.jpg | Bin 9183 -> 0 bytes .../intervention/image/tests/images/tile.png | Bin 156 -> 0 bytes .../intervention/image/tests/images/trim.png | Bin 258 -> 0 bytes vendor/intervention/image/tests/tmp/.gitkeep | 0 vendor/intervention/image/tests/tmp/crc.png | Bin 170 -> 0 bytes .../php-console-color/.gitignore | 3 - .../php-console-color/.travis.yml | 15 - .../jakub-onderka/php-console-color/build.xml | 93 - .../php-console-color/composer.json | 24 - .../php-console-color/example.php | 38 - .../php-console-color/phpunit.xml | 15 - .../PhpConsoleColor/ConsoleColor.php | 280 --- .../PhpConsoleColor/InvalidStyleException.php | 10 - .../PhpConsoleColor/ConsoleColorTest.php | 184 -- .../php-console-color/tests/bootstrap.php | 2 - .../php-console-highlighter/.gitignore | 4 - .../php-console-highlighter/.travis.yml | 15 - .../php-console-highlighter/LICENSE | 21 - .../php-console-highlighter/README.md | 36 - .../php-console-highlighter/build.xml | 93 - .../php-console-highlighter/composer.json | 25 - .../examples/snippet.php | 10 - .../examples/whole_file.php | 10 - .../examples/whole_file_line_numbers.php | 10 - .../php-console-highlighter/phpunit.xml | 15 - .../PhpConsoleHighlighter/Highlighter.php | 265 --- .../PhpConsoleHighligter/HigligterTest.php | 254 --- .../tests/bootstrap.php | 2 - .../SuperClosure/src/Analyzer/AstAnalyzer.php | 129 -- .../src/Analyzer/ClosureAnalyzer.php | 62 - .../SuperClosure/src/Analyzer/Token.php | 70 - .../src/Analyzer/TokenAnalyzer.php | 118 -- .../Visitor/ClosureLocatorVisitor.php | 117 -- .../Analyzer/Visitor/MagicConstantVisitor.php | 50 - .../Analyzer/Visitor/ThisDetectorVisitor.php | 27 - .../Exception/ClosureAnalysisException.php | 9 - .../ClosureUnserializationException.php | 9 - .../src/Exception/SuperClosureException.php | 9 - .../SuperClosure/src/SerializableClosure.php | 166 -- .../SuperClosure/src/Serializer.php | 139 -- .../SuperClosure/src/SerializerInterface.php | 45 - vendor/laravel/framework/composer.json | 2 +- vendor/laravel/framework/phpunit.xml | 1 - .../src/Illuminate/Auth/Authenticatable.php | 56 - .../Auth/Console/ClearResetsCommand.php | 33 - .../Auth/GeneratorServiceProvider.php | 66 - .../Middleware/AuthenticateWithBasicAuth.php | 39 - .../Auth/Passwords/CanResetPassword.php | 15 - .../Passwords/DatabaseTokenRepository.php | 196 -- .../Auth/Passwords/PasswordBroker.php | 256 --- .../PasswordResetServiceProvider.php | 88 - .../Passwords/TokenRepositoryInterface.php | 39 - .../src/Illuminate/Bus/BusServiceProvider.php | 52 - .../src/Illuminate/Bus/Dispatcher.php | 391 ---- .../src/Illuminate/Bus/MarshalException.php | 20 - .../src/Illuminate/Bus/composer.json | 28 - .../src/Illuminate/Cache/TaggedCache.php | 4 +- .../Console/AppNamespaceDetectorTrait.php | 29 - .../src/Illuminate/Console/Command.php | 6 +- .../Illuminate/Console/GeneratorCommand.php | 206 --- .../Console/ScheduleServiceProvider.php | 36 - .../Console/Scheduling/CallbackEvent.php | 65 - .../Illuminate/Console/Scheduling/Event.php | 710 ------- .../Console/Scheduling/Schedule.php | 76 - .../Console/Scheduling/ScheduleRunCommand.php | 63 - .../src/Illuminate/Container/Container.php | 2 +- .../Container/ContextualBindingBuilder.php | 58 - .../Contracts/Auth/Authenticatable.php | 41 - .../Contracts/Auth/CanResetPassword.php | 12 - .../src/Illuminate/Contracts/Auth/Guard.php | 100 - .../Contracts/Auth/PasswordBroker.php | 76 - .../Illuminate/Contracts/Auth/Registrar.php | 21 - .../Contracts/Auth/UserProvider.php | 48 - .../Illuminate/Contracts/Bus/Dispatcher.php | 45 - .../Contracts/Bus/HandlerResolver.php | 47 - .../Contracts/Bus/QueueingDispatcher.php | 13 - .../Illuminate/Contracts/Bus/SelfHandling.php | 3 - .../Illuminate/Contracts/Cache/Factory.php | 13 - .../Illuminate/Contracts/Cache/Repository.php | 98 - .../src/Illuminate/Contracts/Cache/Store.php | 72 - .../Contracts/Config/Repository.php | 49 - .../Contracts/Console/Application.php | 21 - .../Illuminate/Contracts/Console/Kernel.php | 46 - .../Contracts/Container/Container.php | 143 -- .../Container/ContextualBindingBuilder.php | 21 - .../Illuminate/Contracts/Cookie/Factory.php | 42 - .../Contracts/Cookie/QueueingFactory.php | 27 - .../Contracts/Database/ModelIdentifier.php | 32 - .../Contracts/Debug/ExceptionHandler.php | 33 - .../Contracts/Encryption/DecryptException.php | 5 - .../Contracts/Encryption/Encrypter.php | 37 - .../Contracts/Events/Dispatcher.php | 64 - .../Illuminate/Contracts/Filesystem/Cloud.php | 3 - .../Contracts/Filesystem/Factory.php | 13 - .../Filesystem/FileNotFoundException.php | 5 - .../Contracts/Filesystem/Filesystem.php | 174 -- .../Contracts/Foundation/Application.php | 78 - .../Illuminate/Contracts/Hashing/Hasher.php | 33 - .../src/Illuminate/Contracts/Http/Kernel.php | 36 - .../src/Illuminate/Contracts/Logging/Log.php | 97 - .../Illuminate/Contracts/Mail/MailQueue.php | 28 - .../src/Illuminate/Contracts/Mail/Mailer.php | 31 - .../Pagination/LengthAwarePaginator.php | 19 - .../Contracts/Pagination/Paginator.php | 108 -- .../Contracts/Pagination/Presenter.php | 19 - .../src/Illuminate/Contracts/Pipeline/Hub.php | 14 - .../Contracts/Pipeline/Pipeline.php | 39 - .../Queue/EntityNotFoundException.php | 21 - .../Contracts/Queue/EntityResolver.php | 14 - .../Illuminate/Contracts/Queue/Factory.php | 13 - .../src/Illuminate/Contracts/Queue/Job.php | 48 - .../Illuminate/Contracts/Queue/Monitor.php | 29 - .../src/Illuminate/Contracts/Queue/Queue.php | 65 - .../Contracts/Queue/QueueableEntity.php | 12 - .../Contracts/Queue/ShouldBeQueued.php | 3 - .../Illuminate/Contracts/Redis/Database.php | 14 - .../Contracts/Routing/Middleware.php | 16 - .../Contracts/Routing/Registrar.php | 115 -- .../Contracts/Routing/ResponseFactory.php | 125 -- .../Routing/TerminableMiddleware.php | 14 - .../Contracts/Routing/UrlGenerator.php | 63 - .../Contracts/Routing/UrlRoutable.php | 19 - .../Contracts/Support/Arrayable.php | 12 - .../Illuminate/Contracts/Support/Jsonable.php | 13 - .../Contracts/Support/MessageBag.php | 99 - .../Contracts/Support/MessageProvider.php | 12 - .../Contracts/Support/Renderable.php | 12 - .../Contracts/Validation/Factory.php | 45 - .../Validation/UnauthorizedException.php | 5 - .../Validation/ValidatesWhenResolved.php | 12 - .../Validation/ValidationException.php | 46 - .../Contracts/Validation/Validator.php | 39 - .../src/Illuminate/Contracts/View/Factory.php | 70 - .../src/Illuminate/Contracts/View/View.php | 23 - .../src/Illuminate/Contracts/composer.json | 25 - .../framework/src/Illuminate/Cookie/Guard.php | 2 +- .../Middleware/AddQueuedCookiesToResponse.php | 46 - .../Cookie/Middleware/EncryptCookies.php | 128 -- .../Database/Connectors/MySqlConnector.php | 2 +- .../Console/Migrations/StatusCommand.php | 82 - .../Database/Console/SeedCommand.php | 2 +- .../Illuminate/Database/Eloquent/Builder.php | 37 + .../Illuminate/Database/Eloquent/Model.php | 28 +- .../Database/Eloquent/QueueEntityResolver.php | 27 - .../Eloquent/Relations/BelongsToMany.php | 10 - .../Eloquent/Relations/HasManyThrough.php | 10 - .../Database/Eloquent/Relations/MorphTo.php | 10 + .../Database/Eloquent/Relations/Relation.php | 4 +- .../Database/Eloquent/SoftDeletes.php | 170 -- .../Database/Eloquent/SoftDeletingTrait.php | 2 +- .../src/Illuminate/Database/Query/Builder.php | 14 + .../Database/Query/Grammars/Grammar.php | 22 +- .../Illuminate/Database/Schema/Blueprint.php | 1 + .../Illuminate/Events/CallQueuedHandler.php | 81 - .../src/Illuminate/Filesystem/ClassFinder.php | 157 -- .../src/Illuminate/Filesystem/Filesystem.php | 7 +- .../Filesystem/FilesystemAdapter.php | 315 ---- .../Filesystem/FilesystemManager.php | 233 --- .../src/Illuminate/Foundation/Application.php | 2 +- .../src/Illuminate/Foundation/Artisan.php | 2 +- .../Auth/AuthenticatesAndRegistersUsers.php | 128 -- .../Foundation/Auth/ResetsPasswords.php | 139 -- .../Foundation/Bootstrap/BootProviders.php | 18 - .../Foundation/Bootstrap/ConfigureLogging.php | 105 -- .../Bootstrap/DetectEnvironment.php | 32 - .../Foundation/Bootstrap/HandleExceptions.php | 154 -- .../Bootstrap/LoadConfiguration.php | 78 - .../Foundation/Bootstrap/RegisterFacades.php | 24 - .../Bootstrap/RegisterProviders.php | 18 - .../Bootstrap/SetRequestForConsole.php | 21 - .../Foundation/Bus/DispatchesCommands.php | 46 - .../Foundation/Console/AppNameCommand.php | 306 --- .../Foundation/Console/ConfigCacheCommand.php | 93 - .../Foundation/Console/ConfigClearCommand.php | 54 - .../Foundation/Console/ConsoleMakeCommand.php | 89 - .../Console/EventGenerateCommand.php | 49 - .../Foundation/Console/EventMakeCommand.php | 49 - .../Console/HandlerCommandCommand.php | 83 - .../Console/HandlerEventCommand.php | 99 - .../Illuminate/Foundation/Console/Kernel.php | 247 --- .../Foundation/Console/ModelMakeCommand.php | 50 - .../Console/ProviderMakeCommand.php | 49 - .../Foundation/Console/QueuedJob.php | 39 - .../Foundation/Console/RequestMakeCommand.php | 49 - .../Foundation/Console/RouteCacheCommand.php | 98 - .../Foundation/Console/RouteClearCommand.php | 54 - .../Foundation/Console/RouteListCommand.php | 204 -- .../Foundation/Console/RoutesCommand.php | 1 - .../Console/VendorPublishCommand.php | 165 -- .../Console/stubs/command-handler.stub | 30 - .../stubs/command-queued-with-handler.stub | 23 - .../Console/stubs/command-queued.stub | 34 - .../Console/stubs/command-with-handler.stub | 17 - .../Foundation/Console/stubs/console.stub | 67 - .../Console/stubs/event-handler-queued.stub | 33 - .../Console/stubs/event-handler.stub | 31 - .../Foundation/Console/stubs/event.stub | 21 - .../Console/stubs/fresh/routes.stub | 14 - .../Foundation/Console/stubs/fresh/view.stub | 1 - .../Console/stubs/fresh/welcome.stub | 23 - .../Foundation/Console/stubs/model.stub | 9 - .../Foundation/Console/stubs/provider.stub | 27 - .../Foundation/Console/stubs/request.stub | 29 - .../Foundation/Console/stubs/routes.stub | 16 - .../Foundation/Exceptions/Handler.php | 125 -- .../Foundation/Http/FormRequest.php | 223 --- .../src/Illuminate/Foundation/Http/Kernel.php | 207 --- .../Middleware/CheckForMaintenanceMode.php | 45 - .../Http/Middleware/VerifyCsrfToken.php | 92 - .../src/Illuminate/Foundation/Inspiring.php | 27 - .../Providers/FormRequestServiceProvider.php | 64 - .../Providers/FoundationServiceProvider.php | 16 - .../Providers/EventServiceProvider.php | 55 - .../Providers/RouteServiceProvider.php | 108 -- .../Validation/ValidatesRequests.php | 91 - .../src/Illuminate/Foundation/helpers.php | 629 ------- .../src/Illuminate/Html/FormBuilder.php | 3 +- .../Http/Exception/HttpResponseException.php | 36 - .../Illuminate/Http/Middleware/FrameGuard.php | 24 - .../src/Illuminate/Http/RedirectResponse.php | 22 +- .../framework/src/Illuminate/Http/Request.php | 10 +- .../framework/src/Illuminate/Log/Writer.php | 2 +- .../Mail/Transport/SesTransport.php | 96 - .../src/Illuminate/Mail/TransportManager.php | 138 -- .../Pagination/AbstractPaginator.php | 458 ----- ...apThreeNextPreviousButtonRendererTrait.php | 49 - .../Pagination/BootstrapThreePresenter.php | 134 -- .../Pagination/LengthAwarePaginator.php | 162 -- .../src/Illuminate/Pagination/Paginator.php | 2 +- .../SimpleBootstrapThreePresenter.php | 47 - .../src/Illuminate/Pagination/UrlWindow.php | 225 --- .../Pagination/UrlWindowPresenterTrait.php | 70 - .../framework/src/Illuminate/Pipeline/Hub.php | 73 - .../src/Illuminate/Pipeline/Pipeline.php | 145 -- .../Pipeline/PipelineServiceProvider.php | 38 - .../src/Illuminate/Pipeline/composer.json | 27 - .../Illuminate/Queue/CallQueuedHandler.php | 82 - .../Queue/Connectors/DatabaseConnector.php | 42 - .../Queue/Connectors/NullConnector.php | 18 - .../Illuminate/Queue/Console/TableCommand.php | 70 - .../Illuminate/Queue/Console/stubs/jobs.stub | 38 - .../Queue/ConsoleServiceProvider.php | 76 - .../src/Illuminate/Queue/DatabaseQueue.php | 270 --- .../Illuminate/Queue/InteractsWithQueue.php | 64 - .../src/Illuminate/Queue/Jobs/DatabaseJob.php | 138 -- .../src/Illuminate/Queue/Listener.php | 4 +- .../src/Illuminate/Queue/NullQueue.php | 58 - .../src/Illuminate/Queue/SerializesModels.php | 81 - .../Routing/Console/ControllerMakeCommand.php | 67 - .../Routing/Console/MiddlewareMakeCommand.php | 49 - .../Console/stubs/controller.plain.stub | 12 - .../Routing/Console/stubs/controller.stub | 84 - .../Routing/Console/stubs/middleware.stub | 19 - .../Routing/GeneratorServiceProvider.php | 68 - .../Illuminate/Routing/ResourceRegistrar.php | 392 ---- .../Illuminate/Routing/ResponseFactory.php | 209 --- .../Routing/RouteDependencyResolverTrait.php | 81 - .../src/Illuminate/Routing/Router.php | 5 + .../Session/DatabaseSessionHandler.php | 2 +- .../src/Illuminate/Session/EncryptedStore.php | 72 - .../Illuminate/Session/FileSessionHandler.php | 2 +- .../Session/Middleware/StartSession.php | 248 --- .../Support/AggregateServiceProvider.php | 53 - .../src/Illuminate/Support/Collection.php | 7 +- .../src/Illuminate/Support/Debug/Dumper.php | 21 - .../Illuminate/Support/Debug/HtmlDumper.php | 28 - .../src/Illuminate/Support/Facades/Bus.php | 15 - .../Illuminate/Support/Facades/Storage.php | 15 - .../framework/src/Illuminate/Support/Str.php | 16 +- .../Illuminate/Support/Traits/Macroable.php | 90 - .../src/Illuminate/Support/ViewErrorBag.php | 6 +- .../src/Illuminate/Support/composer.json | 2 +- .../Validation/DatabasePresenceVerifier.php | 2 +- .../Validation/ValidatesWhenResolvedTrait.php | 76 - .../src/Illuminate/Validation/Validator.php | 40 +- .../framework/src/Illuminate/View/Factory.php | 2 +- .../Middleware/ShareErrorsFromSession.php | 58 - .../framework/src/Illuminate/View/View.php | 2 +- vendor/league/flysystem/LICENSE | 19 - vendor/league/flysystem/composer.json | 62 - .../flysystem/src/Adapter/AbstractAdapter.php | 86 - .../src/Adapter/AbstractFtpAdapter.php | 458 ----- vendor/league/flysystem/src/Adapter/Ftp.php | 386 ---- vendor/league/flysystem/src/Adapter/Local.php | 390 ---- .../flysystem/src/Adapter/NullAdapter.php | 146 -- .../Polyfill/NotSupportingVisibilityTrait.php | 33 - .../Adapter/Polyfill/StreamedCopyTrait.php | 45 - .../Adapter/Polyfill/StreamedReadingTrait.php | 37 - .../src/Adapter/Polyfill/StreamedTrait.php | 9 - .../Adapter/Polyfill/StreamedWritingTrait.php | 58 - .../flysystem/src/Adapter/SynologyFtp.php | 36 - .../league/flysystem/src/AdapterInterface.php | 118 -- vendor/league/flysystem/src/Config.php | 101 - vendor/league/flysystem/src/Directory.php | 28 - vendor/league/flysystem/src/Exception.php | 8 - vendor/league/flysystem/src/File.php | 110 -- .../flysystem/src/FileExistsException.php | 37 - .../flysystem/src/FileNotFoundException.php | 37 - vendor/league/flysystem/src/Filesystem.php | 573 ------ .../flysystem/src/FilesystemInterface.php | 244 --- vendor/league/flysystem/src/Handler.php | 98 - vendor/league/flysystem/src/MountManager.php | 238 --- .../flysystem/src/Plugin/AbstractPlugin.php | 24 - .../league/flysystem/src/Plugin/EmptyDir.php | 34 - .../flysystem/src/Plugin/GetWithMetadata.php | 49 - .../league/flysystem/src/Plugin/ListFiles.php | 35 - .../league/flysystem/src/Plugin/ListPaths.php | 36 - .../league/flysystem/src/Plugin/ListWith.php | 60 - .../flysystem/src/Plugin/PluggableTrait.php | 68 - .../src/Plugin/PluginNotFoundException.php | 10 - 788 files changed, 2738 insertions(+), 60860 deletions(-) delete mode 100644 app/Console/Commands/Inspire.php delete mode 100644 app/Console/Kernel.php delete mode 100644 app/Events/Event.php delete mode 100644 app/Exceptions/Handler.php delete mode 100644 app/Handlers/Commands/.gitkeep delete mode 100644 app/Handlers/Events/.gitkeep delete mode 100644 app/Http/Controllers/Auth/AuthController.php delete mode 100644 app/Http/Controllers/Auth/PasswordController.php delete mode 100644 app/Http/Controllers/Controller.php delete mode 100644 app/Http/Controllers/HomeController.php delete mode 100644 app/Http/Controllers/WelcomeController.php delete mode 100644 app/Http/Kernel.php delete mode 100644 app/Http/Middleware/Authenticate.php delete mode 100644 app/Http/Middleware/RedirectIfAuthenticated.php delete mode 100644 app/Http/Middleware/VerifyCsrfToken.php delete mode 100644 app/Http/Requests/Request.php delete mode 100644 app/Http/routes.php delete mode 100644 app/Providers/AppServiceProvider.php delete mode 100644 app/Providers/BusServiceProvider.php delete mode 100644 app/Providers/ConfigServiceProvider.php delete mode 100644 app/Providers/EventServiceProvider.php delete mode 100644 app/Providers/RouteServiceProvider.php delete mode 100644 app/Services/Registrar.php delete mode 100644 app/User.php delete mode 100644 app/commands/Command.php delete mode 100755 app/controllers/.gitkeep delete mode 100755 app/database/.gitignore delete mode 100755 app/storage/img/layout.png delete mode 100644 bootstrap/app.php delete mode 100644 config/app.php delete mode 100644 config/auth.php delete mode 100644 config/cache.php delete mode 100644 config/compile.php delete mode 100644 config/database.php delete mode 100644 config/filesystems.php delete mode 100644 config/mail.php delete mode 100644 config/queue.php delete mode 100644 config/services.php delete mode 100644 config/session.php delete mode 100644 config/view.php delete mode 100644 database/.gitignore delete mode 100644 database/migrations/.gitkeep delete mode 100644 database/migrations/2014_10_12_000000_create_users_table.php delete mode 100644 database/migrations/2014_10_12_100000_create_password_resets_table.php delete mode 100644 database/seeds/.gitkeep delete mode 100644 database/seeds/DatabaseSeeder.php delete mode 100644 resources/assets/less/app.less delete mode 100644 resources/assets/less/bootstrap/alerts.less delete mode 100644 resources/assets/less/bootstrap/badges.less delete mode 100644 resources/assets/less/bootstrap/bootstrap.less delete mode 100644 resources/assets/less/bootstrap/breadcrumbs.less delete mode 100644 resources/assets/less/bootstrap/button-groups.less delete mode 100644 resources/assets/less/bootstrap/buttons.less delete mode 100644 resources/assets/less/bootstrap/carousel.less delete mode 100644 resources/assets/less/bootstrap/close.less delete mode 100644 resources/assets/less/bootstrap/code.less delete mode 100644 resources/assets/less/bootstrap/component-animations.less delete mode 100644 resources/assets/less/bootstrap/dropdowns.less delete mode 100644 resources/assets/less/bootstrap/forms.less delete mode 100644 resources/assets/less/bootstrap/glyphicons.less delete mode 100644 resources/assets/less/bootstrap/grid.less delete mode 100644 resources/assets/less/bootstrap/input-groups.less delete mode 100644 resources/assets/less/bootstrap/jumbotron.less delete mode 100644 resources/assets/less/bootstrap/labels.less delete mode 100644 resources/assets/less/bootstrap/list-group.less delete mode 100644 resources/assets/less/bootstrap/media.less delete mode 100644 resources/assets/less/bootstrap/mixins.less delete mode 100644 resources/assets/less/bootstrap/mixins/alerts.less delete mode 100644 resources/assets/less/bootstrap/mixins/background-variant.less delete mode 100644 resources/assets/less/bootstrap/mixins/border-radius.less delete mode 100644 resources/assets/less/bootstrap/mixins/buttons.less delete mode 100644 resources/assets/less/bootstrap/mixins/center-block.less delete mode 100644 resources/assets/less/bootstrap/mixins/clearfix.less delete mode 100644 resources/assets/less/bootstrap/mixins/forms.less delete mode 100644 resources/assets/less/bootstrap/mixins/gradients.less delete mode 100644 resources/assets/less/bootstrap/mixins/grid-framework.less delete mode 100644 resources/assets/less/bootstrap/mixins/grid.less delete mode 100644 resources/assets/less/bootstrap/mixins/hide-text.less delete mode 100644 resources/assets/less/bootstrap/mixins/image.less delete mode 100644 resources/assets/less/bootstrap/mixins/labels.less delete mode 100644 resources/assets/less/bootstrap/mixins/list-group.less delete mode 100644 resources/assets/less/bootstrap/mixins/nav-divider.less delete mode 100644 resources/assets/less/bootstrap/mixins/nav-vertical-align.less delete mode 100644 resources/assets/less/bootstrap/mixins/opacity.less delete mode 100644 resources/assets/less/bootstrap/mixins/pagination.less delete mode 100644 resources/assets/less/bootstrap/mixins/panels.less delete mode 100644 resources/assets/less/bootstrap/mixins/progress-bar.less delete mode 100644 resources/assets/less/bootstrap/mixins/reset-filter.less delete mode 100644 resources/assets/less/bootstrap/mixins/resize.less delete mode 100644 resources/assets/less/bootstrap/mixins/responsive-visibility.less delete mode 100644 resources/assets/less/bootstrap/mixins/size.less delete mode 100644 resources/assets/less/bootstrap/mixins/tab-focus.less delete mode 100644 resources/assets/less/bootstrap/mixins/table-row.less delete mode 100644 resources/assets/less/bootstrap/mixins/text-emphasis.less delete mode 100644 resources/assets/less/bootstrap/mixins/text-overflow.less delete mode 100644 resources/assets/less/bootstrap/mixins/vendor-prefixes.less delete mode 100644 resources/assets/less/bootstrap/modals.less delete mode 100644 resources/assets/less/bootstrap/navbar.less delete mode 100644 resources/assets/less/bootstrap/navs.less delete mode 100644 resources/assets/less/bootstrap/normalize.less delete mode 100644 resources/assets/less/bootstrap/pager.less delete mode 100644 resources/assets/less/bootstrap/pagination.less delete mode 100644 resources/assets/less/bootstrap/panels.less delete mode 100644 resources/assets/less/bootstrap/popovers.less delete mode 100644 resources/assets/less/bootstrap/print.less delete mode 100644 resources/assets/less/bootstrap/progress-bars.less delete mode 100644 resources/assets/less/bootstrap/responsive-embed.less delete mode 100644 resources/assets/less/bootstrap/responsive-utilities.less delete mode 100644 resources/assets/less/bootstrap/scaffolding.less delete mode 100644 resources/assets/less/bootstrap/tables.less delete mode 100644 resources/assets/less/bootstrap/theme.less delete mode 100644 resources/assets/less/bootstrap/thumbnails.less delete mode 100644 resources/assets/less/bootstrap/tooltip.less delete mode 100644 resources/assets/less/bootstrap/type.less delete mode 100644 resources/assets/less/bootstrap/utilities.less delete mode 100644 resources/assets/less/bootstrap/variables.less delete mode 100644 resources/assets/less/bootstrap/wells.less delete mode 100644 resources/lang/en/pagination.php delete mode 100644 resources/lang/en/passwords.php delete mode 100644 resources/lang/en/validation.php delete mode 100644 resources/views/app.blade.php delete mode 100644 resources/views/auth/login.blade.php delete mode 100644 resources/views/auth/password.blade.php delete mode 100644 resources/views/auth/register.blade.php delete mode 100644 resources/views/auth/reset.blade.php delete mode 100644 resources/views/emails/password.blade.php delete mode 100644 resources/views/errors/503.blade.php delete mode 100644 resources/views/home.blade.php delete mode 100644 resources/views/vendor/.gitkeep delete mode 100644 resources/views/welcome.blade.php delete mode 100644 storage/.gitignore delete mode 100644 storage/app/.gitignore delete mode 100644 storage/framework/.gitignore delete mode 100644 storage/framework/cache/.gitignore delete mode 100644 storage/framework/sessions/.gitignore delete mode 100644 storage/framework/views/.gitignore delete mode 100644 storage/logs/.gitignore delete mode 100644 tests/ExampleTest.php delete mode 100644 tests/TestCase.php delete mode 100644 vendor/bin/classpreloader.php.bat delete mode 100644 vendor/bin/phpspec delete mode 100644 vendor/bin/phpspec.bat delete mode 100644 vendor/bin/phpunit delete mode 100644 vendor/bin/phpunit.bat delete mode 100644 vendor/bin/psysh delete mode 100644 vendor/bin/psysh.bat delete mode 100644 vendor/classpreloader/classpreloader/LICENSE delete mode 100644 vendor/classpreloader/classpreloader/src/Application.php delete mode 100644 vendor/classpreloader/classpreloader/src/ClassList.php delete mode 100644 vendor/classpreloader/classpreloader/src/ClassLoader.php delete mode 100644 vendor/classpreloader/classpreloader/src/ClassNode.php delete mode 100644 vendor/classpreloader/classpreloader/src/Command/PreCompileCommand.php delete mode 100644 vendor/classpreloader/classpreloader/src/Config.php delete mode 100644 vendor/classpreloader/classpreloader/src/Exception/SkipFileException.php delete mode 100644 vendor/classpreloader/classpreloader/src/Parser/AbstractNodeVisitor.php delete mode 100644 vendor/classpreloader/classpreloader/src/Parser/DirVisitor.php delete mode 100644 vendor/classpreloader/classpreloader/src/Parser/FileVisitor.php delete mode 100644 vendor/classpreloader/classpreloader/src/Parser/NodeTraverser.php delete mode 100644 vendor/danielstjules/stringy/.gitignore delete mode 100644 vendor/danielstjules/stringy/.travis.yml delete mode 100644 vendor/danielstjules/stringy/CHANGELOG.md delete mode 100644 vendor/danielstjules/stringy/LICENSE.txt delete mode 100644 vendor/danielstjules/stringy/README.md delete mode 100644 vendor/danielstjules/stringy/composer.json delete mode 100644 vendor/danielstjules/stringy/phpunit.xml.dist delete mode 100644 vendor/danielstjules/stringy/src/Create.php delete mode 100644 vendor/danielstjules/stringy/src/StaticStringy.php delete mode 100644 vendor/danielstjules/stringy/src/Stringy.php delete mode 100644 vendor/danielstjules/stringy/tests/CommonTest.php delete mode 100644 vendor/danielstjules/stringy/tests/CreateTest.php delete mode 100644 vendor/danielstjules/stringy/tests/StaticStringyTest.php delete mode 100644 vendor/danielstjules/stringy/tests/StringyTest.php delete mode 100644 vendor/dnoegel/php-xdg-base-dir/.gitignore delete mode 100644 vendor/dnoegel/php-xdg-base-dir/LICENSE delete mode 100644 vendor/dnoegel/php-xdg-base-dir/README.md delete mode 100644 vendor/dnoegel/php-xdg-base-dir/composer.json delete mode 100644 vendor/dnoegel/php-xdg-base-dir/phpunit.xml.dist delete mode 100644 vendor/dnoegel/php-xdg-base-dir/src/Xdg.php delete mode 100644 vendor/dnoegel/php-xdg-base-dir/tests/XdgTest.php delete mode 100644 vendor/doctrine/inflector/.gitignore delete mode 100644 vendor/doctrine/inflector/.travis.yml delete mode 100644 vendor/doctrine/inflector/LICENSE delete mode 100644 vendor/doctrine/inflector/README.md delete mode 100644 vendor/doctrine/inflector/composer.json delete mode 100644 vendor/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php delete mode 100644 vendor/doctrine/inflector/phpunit.xml.dist delete mode 100644 vendor/doctrine/inflector/tests/Doctrine/Tests/Common/Inflector/InflectorTest.php delete mode 100644 vendor/doctrine/inflector/tests/Doctrine/Tests/DoctrineTestCase.php delete mode 100644 vendor/doctrine/inflector/tests/Doctrine/Tests/TestInit.php delete mode 100644 vendor/doctrine/instantiator/.gitignore delete mode 100644 vendor/doctrine/instantiator/.scrutinizer.yml delete mode 100644 vendor/doctrine/instantiator/.travis.install.sh delete mode 100644 vendor/doctrine/instantiator/.travis.yml delete mode 100644 vendor/doctrine/instantiator/CONTRIBUTING.md delete mode 100644 vendor/doctrine/instantiator/LICENSE delete mode 100644 vendor/doctrine/instantiator/README.md delete mode 100644 vendor/doctrine/instantiator/composer.json delete mode 100644 vendor/doctrine/instantiator/phpmd.xml.dist delete mode 100644 vendor/doctrine/instantiator/phpunit.xml.dist delete mode 100644 vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php delete mode 100644 vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/InvalidArgumentException.php delete mode 100644 vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php delete mode 100644 vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php delete mode 100644 vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorPerformance/InstantiatorPerformanceEvent.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTest/Exception/InvalidArgumentExceptionTest.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTest/Exception/UnexpectedValueExceptionTest.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTest/InstantiatorTest.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/AbstractClassAsset.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/ArrayObjectAsset.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/PharAsset.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/PharExceptionAsset.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/SerializableArrayObjectAsset.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/SimpleSerializableAsset.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/SimpleTraitAsset.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/UnCloneableAsset.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/UnserializeExceptionArrayObjectAsset.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/WakeUpNoticesAsset.php delete mode 100644 vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/XMLReaderAsset.php delete mode 100644 vendor/intervention/image/.gitignore delete mode 100644 vendor/intervention/image/.travis.yml delete mode 100644 vendor/intervention/image/LICENSE delete mode 100755 vendor/intervention/image/README.md delete mode 100644 vendor/intervention/image/composer.json delete mode 100644 vendor/intervention/image/phpunit.xml delete mode 100644 vendor/intervention/image/provides.json delete mode 100644 vendor/intervention/image/src/Intervention/Image/AbstractColor.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/AbstractDecoder.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/AbstractDriver.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/AbstractEncoder.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/AbstractFont.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/AbstractShape.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Commands/AbstractCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Commands/Argument.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Commands/ChecksumCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Commands/CircleCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Commands/EllipseCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Commands/ExifCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Commands/IptcCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Commands/LineCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Commands/OrientateCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Commands/PolygonCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Commands/RectangleCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Commands/ResponseCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Commands/TextCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Constraint.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Exception/InvalidArgumentException.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Exception/MissingDependencyException.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Exception/NotFoundException.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Exception/NotReadableException.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Exception/NotSupportedException.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Exception/NotWritableException.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Exception/RuntimeException.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Facades/Image.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/File.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Filters/DemoFilter.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Filters/FilterInterface.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Color.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/BackupCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/BlurCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/BrightnessCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/ColorizeCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/ContrastCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/CropCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/DestroyCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/FillCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/FitCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/FlipCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/GammaCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/GetSizeCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/GreyscaleCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/HeightenCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/InsertCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/InterlaceCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/InvertCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/LimitColorsCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/MaskCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/OpacityCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/PickColorCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/PixelCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/PixelateCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/ResetCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/ResizeCanvasCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/ResizeCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/RotateCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/SharpenCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/TrimCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/WidenCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Decoder.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Driver.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Encoder.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Font.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Shapes/CircleShape.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Shapes/EllipseShape.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Shapes/LineShape.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Shapes/PolygonShape.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Shapes/RectangleShape.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Image.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/ImageManager.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/ImageManagerStatic.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/ImageServiceProvider.php delete mode 100755 vendor/intervention/image/src/Intervention/Image/ImageServiceProviderLaravel4.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/ImageServiceProviderLaravel5.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Color.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/BackupCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/BlurCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/BrightnessCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ColorizeCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ContrastCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/CropCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/DestroyCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/FillCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/FitCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/FlipCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/GammaCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/GetSizeCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/GreyscaleCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/HeightenCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/InsertCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/InterlaceCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/InvertCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/LimitColorsCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/MaskCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/OpacityCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/PickColorCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/PixelCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/PixelateCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ResetCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ResizeCanvasCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ResizeCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/RotateCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/SharpenCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/TrimCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/WidenCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Decoder.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Driver.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Encoder.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Font.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Shapes/CircleShape.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Shapes/EllipseShape.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Shapes/LineShape.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Shapes/PolygonShape.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Shapes/RectangleShape.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Point.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Response.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Size.php delete mode 100644 vendor/intervention/image/src/config/config.php delete mode 100644 vendor/intervention/image/tests/AbstractColorTest.php delete mode 100644 vendor/intervention/image/tests/AbstractCommandTest.php delete mode 100644 vendor/intervention/image/tests/AbstractDecoderTest.php delete mode 100644 vendor/intervention/image/tests/AbstractDriverTest.php delete mode 100644 vendor/intervention/image/tests/AbstractFontTest.php delete mode 100644 vendor/intervention/image/tests/AbstractShapeTest.php delete mode 100644 vendor/intervention/image/tests/ArgumentTest.php delete mode 100644 vendor/intervention/image/tests/BackupCommandTest.php delete mode 100644 vendor/intervention/image/tests/BlurCommandTest.php delete mode 100644 vendor/intervention/image/tests/BrightnessCommandTest.php delete mode 100644 vendor/intervention/image/tests/ChecksumCommandTest.php delete mode 100644 vendor/intervention/image/tests/CircleCommandTest.php delete mode 100644 vendor/intervention/image/tests/CircleShapeTest.php delete mode 100644 vendor/intervention/image/tests/ColorizeCommandTest.php delete mode 100644 vendor/intervention/image/tests/ConstraintTest.php delete mode 100644 vendor/intervention/image/tests/ContrastCommandTest.php delete mode 100644 vendor/intervention/image/tests/CropCommandTest.php delete mode 100644 vendor/intervention/image/tests/DestroyCommandTest.php delete mode 100644 vendor/intervention/image/tests/DriverTest.php delete mode 100644 vendor/intervention/image/tests/EllipseCommandTest.php delete mode 100644 vendor/intervention/image/tests/EllipseShapeTest.php delete mode 100644 vendor/intervention/image/tests/EncoderTest.php delete mode 100644 vendor/intervention/image/tests/ExifCommandTest.php delete mode 100644 vendor/intervention/image/tests/FileTest.php delete mode 100644 vendor/intervention/image/tests/FillCommandTest.php delete mode 100644 vendor/intervention/image/tests/FitCommandTest.php delete mode 100644 vendor/intervention/image/tests/FlipCommandTest.php delete mode 100644 vendor/intervention/image/tests/GammaCommandTest.php delete mode 100644 vendor/intervention/image/tests/GdColorTest.php delete mode 100644 vendor/intervention/image/tests/GdSystemTest.php delete mode 100644 vendor/intervention/image/tests/GetsizeCommandTest.php delete mode 100644 vendor/intervention/image/tests/GreyscaleCommandTest.php delete mode 100644 vendor/intervention/image/tests/HeightenCommandTest.php delete mode 100644 vendor/intervention/image/tests/ImageManagerStaticTest.php delete mode 100644 vendor/intervention/image/tests/ImageManagerTest.php delete mode 100644 vendor/intervention/image/tests/ImageTest.php delete mode 100644 vendor/intervention/image/tests/ImagickColorTest.php delete mode 100644 vendor/intervention/image/tests/ImagickSystemTest.php delete mode 100644 vendor/intervention/image/tests/InsertCommandTest.php delete mode 100644 vendor/intervention/image/tests/InterlaceCommandTest.php delete mode 100644 vendor/intervention/image/tests/InvertCommandTest.php delete mode 100644 vendor/intervention/image/tests/IptcCommandTest.php delete mode 100644 vendor/intervention/image/tests/LimitColorsCommandTest.php delete mode 100644 vendor/intervention/image/tests/LineCommandTest.php delete mode 100644 vendor/intervention/image/tests/LineShapeTest.php delete mode 100644 vendor/intervention/image/tests/MaskCommandTest.php delete mode 100644 vendor/intervention/image/tests/OpacityCommandTest.php delete mode 100644 vendor/intervention/image/tests/OrientateCommandTest.php delete mode 100644 vendor/intervention/image/tests/PickColorCommandTest.php delete mode 100644 vendor/intervention/image/tests/PixelCommandTest.php delete mode 100644 vendor/intervention/image/tests/PixelateCommandTest.php delete mode 100644 vendor/intervention/image/tests/PointTest.php delete mode 100644 vendor/intervention/image/tests/PolygonCommandTest.php delete mode 100644 vendor/intervention/image/tests/PolygonShapeTest.php delete mode 100644 vendor/intervention/image/tests/RectangleCommandTest.php delete mode 100644 vendor/intervention/image/tests/RectangleShapeTest.php delete mode 100644 vendor/intervention/image/tests/ResetCommandTest.php delete mode 100644 vendor/intervention/image/tests/ResizeCanvasCommandTest.php delete mode 100644 vendor/intervention/image/tests/ResizeCommandTest.php delete mode 100644 vendor/intervention/image/tests/ResponseTest.php delete mode 100644 vendor/intervention/image/tests/RotateCommandTest.php delete mode 100644 vendor/intervention/image/tests/SharpenCommandTest.php delete mode 100644 vendor/intervention/image/tests/SizeTest.php delete mode 100644 vendor/intervention/image/tests/TextCommandTest.php delete mode 100644 vendor/intervention/image/tests/TrimCommandTest.php delete mode 100644 vendor/intervention/image/tests/WidenCommandTest.php delete mode 100644 vendor/intervention/image/tests/images/circle.png delete mode 100644 vendor/intervention/image/tests/images/exif.jpg delete mode 100644 vendor/intervention/image/tests/images/gradient.png delete mode 100644 vendor/intervention/image/tests/images/iptc.jpg delete mode 100644 vendor/intervention/image/tests/images/star.png delete mode 100644 vendor/intervention/image/tests/images/test.jpg delete mode 100644 vendor/intervention/image/tests/images/tile.png delete mode 100644 vendor/intervention/image/tests/images/trim.png delete mode 100644 vendor/intervention/image/tests/tmp/.gitkeep delete mode 100644 vendor/intervention/image/tests/tmp/crc.png delete mode 100644 vendor/jakub-onderka/php-console-color/.gitignore delete mode 100644 vendor/jakub-onderka/php-console-color/.travis.yml delete mode 100644 vendor/jakub-onderka/php-console-color/build.xml delete mode 100644 vendor/jakub-onderka/php-console-color/composer.json delete mode 100644 vendor/jakub-onderka/php-console-color/example.php delete mode 100644 vendor/jakub-onderka/php-console-color/phpunit.xml delete mode 100644 vendor/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/ConsoleColor.php delete mode 100644 vendor/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/InvalidStyleException.php delete mode 100644 vendor/jakub-onderka/php-console-color/tests/JakubOnderka/PhpConsoleColor/ConsoleColorTest.php delete mode 100644 vendor/jakub-onderka/php-console-color/tests/bootstrap.php delete mode 100644 vendor/jakub-onderka/php-console-highlighter/.gitignore delete mode 100644 vendor/jakub-onderka/php-console-highlighter/.travis.yml delete mode 100644 vendor/jakub-onderka/php-console-highlighter/LICENSE delete mode 100644 vendor/jakub-onderka/php-console-highlighter/README.md delete mode 100644 vendor/jakub-onderka/php-console-highlighter/build.xml delete mode 100644 vendor/jakub-onderka/php-console-highlighter/composer.json delete mode 100644 vendor/jakub-onderka/php-console-highlighter/examples/snippet.php delete mode 100644 vendor/jakub-onderka/php-console-highlighter/examples/whole_file.php delete mode 100644 vendor/jakub-onderka/php-console-highlighter/examples/whole_file_line_numbers.php delete mode 100644 vendor/jakub-onderka/php-console-highlighter/phpunit.xml delete mode 100644 vendor/jakub-onderka/php-console-highlighter/src/JakubOnderka/PhpConsoleHighlighter/Highlighter.php delete mode 100644 vendor/jakub-onderka/php-console-highlighter/tests/JakubOnderka/PhpConsoleHighligter/HigligterTest.php delete mode 100644 vendor/jakub-onderka/php-console-highlighter/tests/bootstrap.php delete mode 100644 vendor/jeremeamia/SuperClosure/src/Analyzer/AstAnalyzer.php delete mode 100644 vendor/jeremeamia/SuperClosure/src/Analyzer/ClosureAnalyzer.php delete mode 100644 vendor/jeremeamia/SuperClosure/src/Analyzer/Token.php delete mode 100644 vendor/jeremeamia/SuperClosure/src/Analyzer/TokenAnalyzer.php delete mode 100644 vendor/jeremeamia/SuperClosure/src/Analyzer/Visitor/ClosureLocatorVisitor.php delete mode 100644 vendor/jeremeamia/SuperClosure/src/Analyzer/Visitor/MagicConstantVisitor.php delete mode 100644 vendor/jeremeamia/SuperClosure/src/Analyzer/Visitor/ThisDetectorVisitor.php delete mode 100644 vendor/jeremeamia/SuperClosure/src/Exception/ClosureAnalysisException.php delete mode 100644 vendor/jeremeamia/SuperClosure/src/Exception/ClosureUnserializationException.php delete mode 100644 vendor/jeremeamia/SuperClosure/src/Exception/SuperClosureException.php delete mode 100644 vendor/jeremeamia/SuperClosure/src/SerializableClosure.php delete mode 100644 vendor/jeremeamia/SuperClosure/src/Serializer.php delete mode 100644 vendor/jeremeamia/SuperClosure/src/SerializerInterface.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Authenticatable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Console/ClearResetsCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/GeneratorServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Middleware/AuthenticateWithBasicAuth.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Passwords/CanResetPassword.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Passwords/DatabaseTokenRepository.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBroker.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordResetServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Passwords/TokenRepositoryInterface.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Bus/BusServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Bus/MarshalException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Bus/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/AppNamespaceDetectorTrait.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/GeneratorCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/ScheduleServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Scheduling/CallbackEvent.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Scheduling/Schedule.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Container/ContextualBindingBuilder.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Auth/Authenticatable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Auth/CanResetPassword.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Auth/Guard.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Auth/PasswordBroker.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Auth/Registrar.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Auth/UserProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Bus/Dispatcher.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Bus/HandlerResolver.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Bus/QueueingDispatcher.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Bus/SelfHandling.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Cache/Factory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Cache/Repository.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Cache/Store.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Config/Repository.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Console/Application.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Console/Kernel.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Container/Container.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Container/ContextualBindingBuilder.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Cookie/Factory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Cookie/QueueingFactory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Database/ModelIdentifier.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Debug/ExceptionHandler.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Encryption/DecryptException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Encryption/Encrypter.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Events/Dispatcher.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Filesystem/Cloud.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Filesystem/Factory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Filesystem/FileNotFoundException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Filesystem/Filesystem.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Foundation/Application.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Hashing/Hasher.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Http/Kernel.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Logging/Log.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Mail/MailQueue.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Mail/Mailer.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Pagination/LengthAwarePaginator.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Pagination/Paginator.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Pagination/Presenter.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Pipeline/Hub.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Pipeline/Pipeline.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Queue/EntityNotFoundException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Queue/EntityResolver.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Queue/Factory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Queue/Job.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Queue/Monitor.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Queue/Queue.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Queue/QueueableEntity.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Queue/ShouldBeQueued.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Redis/Database.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Routing/Middleware.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Routing/Registrar.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Routing/ResponseFactory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Routing/TerminableMiddleware.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Routing/UrlGenerator.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Routing/UrlRoutable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Support/Arrayable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Support/Jsonable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Support/MessageBag.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Support/MessageProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Support/Renderable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Validation/Factory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Validation/UnauthorizedException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Validation/ValidatesWhenResolved.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Validation/ValidationException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Validation/Validator.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/View/Factory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/View/View.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/StatusCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/QueueEntityResolver.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletes.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Events/CallQueuedHandler.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Filesystem/ClassFinder.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesAndRegistersUsers.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Auth/ResetsPasswords.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/BootProviders.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/ConfigureLogging.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/DetectEnvironment.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterFacades.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterProviders.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/SetRequestForConsole.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bus/DispatchesCommands.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/AppNameCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ConfigCacheCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ConfigClearCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ConsoleMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/EventGenerateCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/EventMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/HandlerCommandCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/HandlerEventCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ModelMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ProviderMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/QueuedJob.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/RequestMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteCacheCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteClearCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/VendorPublishCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/command-handler.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/command-queued-with-handler.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/command-queued.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/command-with-handler.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/console.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/event-handler-queued.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/event-handler.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/event.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/fresh/routes.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/fresh/view.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/fresh/welcome.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/model.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/provider.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/request.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/routes.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Inspiring.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Providers/FormRequestServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Providers/FoundationServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/EventServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Validation/ValidatesRequests.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/helpers.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Exception/HttpResponseException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Middleware/FrameGuard.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/Transport/SesTransport.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/TransportManager.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pagination/BootstrapThreeNextPreviousButtonRendererTrait.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pagination/BootstrapThreePresenter.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pagination/LengthAwarePaginator.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pagination/SimpleBootstrapThreePresenter.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pagination/UrlWindow.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pagination/UrlWindowPresenterTrait.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pipeline/Hub.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pipeline/PipelineServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pipeline/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Connectors/DatabaseConnector.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Connectors/NullConnector.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Console/TableCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Console/stubs/jobs.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/ConsoleServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/DatabaseQueue.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/InteractsWithQueue.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJob.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/NullQueue.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/SerializesModels.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Console/ControllerMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Console/MiddlewareMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Console/stubs/controller.plain.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Console/stubs/controller.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Console/stubs/middleware.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/GeneratorServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/ResourceRegistrar.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/ResponseFactory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Session/EncryptedStore.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/AggregateServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Debug/Dumper.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Debug/HtmlDumper.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Facades/Bus.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Facades/Storage.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Traits/Macroable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/ValidatesWhenResolvedTrait.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php delete mode 100644 vendor/league/flysystem/LICENSE delete mode 100644 vendor/league/flysystem/composer.json delete mode 100644 vendor/league/flysystem/src/Adapter/AbstractAdapter.php delete mode 100644 vendor/league/flysystem/src/Adapter/AbstractFtpAdapter.php delete mode 100644 vendor/league/flysystem/src/Adapter/Ftp.php delete mode 100644 vendor/league/flysystem/src/Adapter/Local.php delete mode 100644 vendor/league/flysystem/src/Adapter/NullAdapter.php delete mode 100644 vendor/league/flysystem/src/Adapter/Polyfill/NotSupportingVisibilityTrait.php delete mode 100644 vendor/league/flysystem/src/Adapter/Polyfill/StreamedCopyTrait.php delete mode 100644 vendor/league/flysystem/src/Adapter/Polyfill/StreamedReadingTrait.php delete mode 100644 vendor/league/flysystem/src/Adapter/Polyfill/StreamedTrait.php delete mode 100644 vendor/league/flysystem/src/Adapter/Polyfill/StreamedWritingTrait.php delete mode 100644 vendor/league/flysystem/src/Adapter/SynologyFtp.php delete mode 100644 vendor/league/flysystem/src/AdapterInterface.php delete mode 100644 vendor/league/flysystem/src/Config.php delete mode 100644 vendor/league/flysystem/src/Directory.php delete mode 100644 vendor/league/flysystem/src/Exception.php delete mode 100644 vendor/league/flysystem/src/File.php delete mode 100644 vendor/league/flysystem/src/FileExistsException.php delete mode 100644 vendor/league/flysystem/src/FileNotFoundException.php delete mode 100644 vendor/league/flysystem/src/Filesystem.php delete mode 100644 vendor/league/flysystem/src/FilesystemInterface.php delete mode 100644 vendor/league/flysystem/src/Handler.php delete mode 100644 vendor/league/flysystem/src/MountManager.php delete mode 100644 vendor/league/flysystem/src/Plugin/AbstractPlugin.php delete mode 100644 vendor/league/flysystem/src/Plugin/EmptyDir.php delete mode 100644 vendor/league/flysystem/src/Plugin/GetWithMetadata.php delete mode 100644 vendor/league/flysystem/src/Plugin/ListFiles.php delete mode 100644 vendor/league/flysystem/src/Plugin/ListPaths.php delete mode 100644 vendor/league/flysystem/src/Plugin/ListWith.php delete mode 100644 vendor/league/flysystem/src/Plugin/PluggableTrait.php delete mode 100644 vendor/league/flysystem/src/Plugin/PluginNotFoundException.php diff --git a/app/Console/Commands/Inspire.php b/app/Console/Commands/Inspire.php deleted file mode 100644 index abb255d..0000000 --- a/app/Console/Commands/Inspire.php +++ /dev/null @@ -1,34 +0,0 @@ -comment(PHP_EOL.Inspiring::quote().PHP_EOL); - } - -} diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php deleted file mode 100644 index 0c088c8..0000000 --- a/app/Console/Kernel.php +++ /dev/null @@ -1,29 +0,0 @@ -command('inspire') - ->hourly(); - } - -} diff --git a/app/Events/Event.php b/app/Events/Event.php deleted file mode 100644 index d59f769..0000000 --- a/app/Events/Event.php +++ /dev/null @@ -1,7 +0,0 @@ -auth = $auth; - $this->registrar = $registrar; - - $this->middleware('guest', ['except' => 'getLogout']); - } - -} diff --git a/app/Http/Controllers/Auth/PasswordController.php b/app/Http/Controllers/Auth/PasswordController.php deleted file mode 100644 index 3106193..0000000 --- a/app/Http/Controllers/Auth/PasswordController.php +++ /dev/null @@ -1,38 +0,0 @@ -auth = $auth; - $this->passwords = $passwords; - - $this->middleware('guest'); - } - -} diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php deleted file mode 100644 index 27b3f45..0000000 --- a/app/Http/Controllers/Controller.php +++ /dev/null @@ -1,11 +0,0 @@ -middleware('auth'); - } - - /** - * Show the application dashboard to the user. - * - * @return Response - */ - public function index() - { - return view('home'); - } - -} diff --git a/app/Http/Controllers/WelcomeController.php b/app/Http/Controllers/WelcomeController.php deleted file mode 100644 index 8a5ac6d..0000000 --- a/app/Http/Controllers/WelcomeController.php +++ /dev/null @@ -1,36 +0,0 @@ -middleware('guest'); - } - - /** - * Show the application welcome screen to the user. - * - * @return Response - */ - public function index() - { - return view('welcome'); - } - -} diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php deleted file mode 100644 index 0a2addc..0000000 --- a/app/Http/Kernel.php +++ /dev/null @@ -1,32 +0,0 @@ - 'App\Http\Middleware\Authenticate', - 'auth.basic' => 'Illuminate\Auth\Middleware\AuthenticateWithBasicAuth', - 'guest' => 'App\Http\Middleware\RedirectIfAuthenticated', - ]; - -} diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php deleted file mode 100644 index 72a7613..0000000 --- a/app/Http/Middleware/Authenticate.php +++ /dev/null @@ -1,50 +0,0 @@ -auth = $auth; - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * @return mixed - */ - public function handle($request, Closure $next) - { - if ($this->auth->guest()) - { - if ($request->ajax()) - { - return response('Unauthorized.', 401); - } - else - { - return redirect()->guest('auth/login'); - } - } - - return $next($request); - } - -} diff --git a/app/Http/Middleware/RedirectIfAuthenticated.php b/app/Http/Middleware/RedirectIfAuthenticated.php deleted file mode 100644 index dd5a867..0000000 --- a/app/Http/Middleware/RedirectIfAuthenticated.php +++ /dev/null @@ -1,44 +0,0 @@ -auth = $auth; - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * @return mixed - */ - public function handle($request, Closure $next) - { - if ($this->auth->check()) - { - return new RedirectResponse(url('/home')); - } - - return $next($request); - } - -} diff --git a/app/Http/Middleware/VerifyCsrfToken.php b/app/Http/Middleware/VerifyCsrfToken.php deleted file mode 100644 index 750a39b..0000000 --- a/app/Http/Middleware/VerifyCsrfToken.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Auth\AuthController', - 'password' => 'Auth\PasswordController', -]); diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php deleted file mode 100644 index ff9d6f6..0000000 --- a/app/Providers/AppServiceProvider.php +++ /dev/null @@ -1,34 +0,0 @@ -app->bind( - 'Illuminate\Contracts\Auth\Registrar', - 'App\Services\Registrar' - ); - } - -} diff --git a/app/Providers/BusServiceProvider.php b/app/Providers/BusServiceProvider.php deleted file mode 100644 index f0d9be6..0000000 --- a/app/Providers/BusServiceProvider.php +++ /dev/null @@ -1,34 +0,0 @@ -mapUsing(function($command) - { - return Dispatcher::simpleMapping( - $command, 'App\Commands', 'App\Handlers\Commands' - ); - }); - } - - /** - * Register any application services. - * - * @return void - */ - public function register() - { - // - } - -} diff --git a/app/Providers/ConfigServiceProvider.php b/app/Providers/ConfigServiceProvider.php deleted file mode 100644 index 06e5799..0000000 --- a/app/Providers/ConfigServiceProvider.php +++ /dev/null @@ -1,23 +0,0 @@ - [ - 'EventListener', - ], - ]; - - /** - * Register any other events for your application. - * - * @param \Illuminate\Contracts\Events\Dispatcher $events - * @return void - */ - public function boot(DispatcherContract $events) - { - parent::boot($events); - - // - } - -} diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php deleted file mode 100644 index afa34c8..0000000 --- a/app/Providers/RouteServiceProvider.php +++ /dev/null @@ -1,44 +0,0 @@ -group(['namespace' => $this->namespace], function($router) - { - require app_path('Http/routes.php'); - }); - } - -} diff --git a/app/Services/Registrar.php b/app/Services/Registrar.php deleted file mode 100644 index 1035468..0000000 --- a/app/Services/Registrar.php +++ /dev/null @@ -1,39 +0,0 @@ - 'required|max:255', - 'email' => 'required|email|max:255|unique:users', - 'password' => 'required|confirmed|min:6', - ]); - } - - /** - * Create a new user instance after a valid registration. - * - * @param array $data - * @return User - */ - public function create(array $data) - { - return User::create([ - 'name' => $data['name'], - 'email' => $data['email'], - 'password' => bcrypt($data['password']), - ]); - } - -} diff --git a/app/User.php b/app/User.php deleted file mode 100644 index 2dae847..0000000 --- a/app/User.php +++ /dev/null @@ -1,34 +0,0 @@ - 'Illuminate\Support\Str', 'URL' => 'Illuminate\Support\Facades\URL', 'Validator' => 'Illuminate\Support\Facades\Validator', - 'View' => 'Illuminate\Support\Facades\View', - 'Image' => 'Intervention\Image\Facades\Image', + 'View' => 'Illuminate\Support\Facades\View', ), ); + diff --git a/app/config/database.php b/app/config/database.php index b5a34bc..4d18e36 100644 --- a/app/config/database.php +++ b/app/config/database.php @@ -54,9 +54,9 @@ 'mysql' => array( 'driver' => 'mysql', - 'host' => 'alonica.net', + 'host' => 'localhost', 'database' => 'modules', - 'username' => 'banana', + 'username' => 'root', 'password' => 'P455w0Rd!@£$%^&*', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', diff --git a/app/controllers/.gitkeep b/app/controllers/.gitkeep deleted file mode 100755 index e69de29..0000000 diff --git a/app/controllers/AccountController.php b/app/controllers/AccountController.php index e87012e..ca319e8 100644 --- a/app/controllers/AccountController.php +++ b/app/controllers/AccountController.php @@ -319,6 +319,27 @@ public function removeLecturer(){ )); } + public function backupDB(){ + + if(Auth::user()->rank < 3){ + return "Unauthorized Access."; + } + + $DBUSER="root"; + $DBPASSWD="P455w0Rd!@£$%^&*"; + $DATABASE="modules"; + + $filename = "backup-" . date("d-m-Y") . ".sql.gz"; + $mime = "application/x-gzip"; + + header( "Content-Type: " . $mime ); + header( 'Content-Disposition: attachment; filename="' . $filename . '"' ); + + $cmd = "mysqldump -u $DBUSER --password=$DBPASSWD $DATABASE | gzip --best"; + + passthru( $cmd ); + } + /** * Function that receives a CSV file, and creates * users from it. @@ -422,4 +443,4 @@ public function uploadCSV(){ )); } } -} \ No newline at end of file +} diff --git a/app/controllers/DepartmentController.php b/app/controllers/DepartmentController.php index d082016..3e584d0 100644 --- a/app/controllers/DepartmentController.php +++ b/app/controllers/DepartmentController.php @@ -10,7 +10,7 @@ public function createDepartment() { 'shortname' => 'required', 'head' => 'required', 'description' => 'required', - 'facultyId' => 'required' + 'facultyId' => 'required|numeric' )); if($validator->fails()) { @@ -53,7 +53,7 @@ public function updateDepartment() { 'shortname' => 'required', 'head' => 'required', 'description' => 'required', - 'facultyId' => 'required' + 'facultyId' => 'required|numeric' )); if($validator->fails()) { @@ -87,4 +87,4 @@ public function updateDepartment() { } } -?> \ No newline at end of file +?> diff --git a/app/controllers/ElectiveController.php b/app/controllers/ElectiveController.php index ffd8197..ba71b09 100644 --- a/app/controllers/ElectiveController.php +++ b/app/controllers/ElectiveController.php @@ -357,18 +357,33 @@ public function loadClass() { } public function updateClass() { + $validator = Validator::make(Input::all(), + array( + 'classId' => 'required', + 'limit' => 'required|numeric' + )); - // Get the Class to update. - $class = Classes::where('classId', Input::get('classId'))->first(); + if($validator->fails()) { + + // If not inform user of errors. + return Response::json(array( + 'success' => false, + 'errors' => $validator->messages() + )); + } else { - // Update the class. - $class->classlimit = Input::get('limit'); - $class->save(); + // Get the Class to update. + $class = Classes::where('classId', Input::get('classId'))->first(); - return Response::json(array( - 'success' => true, - 'space' => ($class->classlimit - $class->classcurrent) - )); + // Update the class. + $class->classlimit = Input::get('limit'); + $class->save(); + + return Response::json(array( + 'success' => true, + 'space' => ($class->classlimit - $class->classcurrent) + )); + } } public function removeStudent() { @@ -438,42 +453,50 @@ public function removeStudent() { } - - // RIC -> ERRORS INBOUND :D - public function postElectiveNew(){ $inputData = Input::get('elecData'); parse_str($inputData, $formFields); - $elecData = array( - 'classlecturer' => $formFields['clect'], - 'classmodule' => $formFields['cmod'], - 'classlimit' => $formFields['climit'], - //'classtimes' => $formFields[''], + $moduleData = array( + 'classlecturer' => $formFields['classlecturer'], + 'classmodule' => $formFields['classmodule'], + 'classlimit' => $formFields['classlimit'], ); Validator::extend('ranked', function($attribute, $value, $parameters) { + // This is the correct way to do this. $coord = User::where('name', $value)->first(); - if($coord->rank <= 1){ + if($coord && $coord->rank < 1){ return false; } - return false; + return true; }); + Validator::extend('indep', function($attribute, $value, $parameters) + { + // This is the correct way to do this. + $mod = Modules::find($value); + if($mod && $mod->departmentid !== Auth::user()->department){ + return false; + } + + return true; + }); + $rules = array( - 'classlecturer' => 'required|max:50|exists:users,name|ranked', - 'classmodule' => 'required|exists:modules,mshorttitle', - 'classlimit' => 'required|min:10|max:30', - //'classtimes' => 'required|', + 'classmodule' => 'required|exists:modules,mid|indep', + 'classlecturer' => 'required|exists:users,name|ranked', + 'classlimit' => 'required|integer|between:5,30', ); - + $messages = [ 'ranked' => "This user can't coordinate this class.", + 'indep' => "This module is not in your department.", ]; - $validator = Validator::make($elecData,$rules,$messages); + $validator = Validator::make($moduleData,$rules,$messages); if($validator->fails()){ return Response::json(array( @@ -481,13 +504,13 @@ public function postElectiveNew(){ 'errors' => $validator->getMessageBag()->toArray() )); } else { - - if(Classes::create($elecData)){ - Session::flash('global', 'You have created the elective "'. $elecData['classmodule'].'".'); + $moduleData['classlecturer'] = User::where('name', $moduleData['classlecturer'])->first()->id; + if(Classes::create($moduleData)){ + Session::flash('global', 'You have created an elective.'); //return success message return Response::json(array( 'success' => true, - 'mName' => $elecData['classmodule'] + 'mName' => Modules::find($moduleData['classmodule'])->mshorttitle )); } } @@ -497,36 +520,45 @@ public function postElectiveChange(){ $inputData = Input::get('elecData'); parse_str($inputData, $formFields); - $elecData = array( - 'mfulltitle' => $formFields['mname'], - //add the rest - ); + $moduleData = array( + 'classlecturer' => $formFields['classlecturer'], + 'classmodule' => $formFields['classmodule'], + 'classlimit' => $formFields['classlimit'], + ); Validator::extend('ranked', function($attribute, $value, $parameters) { + // This is the correct way to do this. $coord = User::where('name', $value)->first(); - if($coord->rank <= 1){ - return true; - } + if($coord && $coord->rank < 1){ + return false; + } - return false; + return true; }); + Validator::extend('indep', function($attribute, $value, $parameters) + { + // This is the correct way to do this. + $mod = Modules::find($value); + if($mod && $mod->departmentid !== Auth::user()->department){ + return false; + } + + return true; + }); + + $rules = array( - 'mfulltitle' => 'required|max:50|unique:modules,mfulltitle,'.$formFields['mcode'].',mcode', - 'mshorttitle' => 'required|max:50|unique:modules,mshorttitle,'.$formFields['mcode'].',mcode', - 'mdescription' => 'required|min:30', - 'mcode' => 'required|min:7|max:8|alpha_num|unique:modules,mcode,'.$formFields['mcode'].',mcode', - 'mfieldofstudy' => 'required|max:100', - 'mcoordinator' => 'required|exists:users,name|ranked', - 'mlevel' => 'required|in:Fundamental,Intermediate,Advanced,Expert', - 'mcredits' => 'required|integer|between:5,25', - 'mid' => 'required|exists:modules,mid', - 'departmentid' => 'required', + 'classmodule' => 'required|exists:modules,mid|indep', + 'classlecturer' => 'required|exists:users,name|ranked', + 'classlimit' => 'required|integer|between:5,30', ); $messages = [ 'ranked' => "This user can't coordinate this class.", + 'indep' => "This module is not in your department.", + ]; $validator = Validator::make($moduleData,$rules,$messages); @@ -539,29 +571,25 @@ public function postElectiveChange(){ )); } else { - $mod = Modules::where('mid', $moduleData['mid'])->first(); - - $mod->mfulltitle = $moduleData['mfulltitle']; - $mod->mshorttitle = $moduleData['mshorttitle']; - $mod->mdescription = $moduleData['mdescription']; - $mod->mcode = $moduleData['mcode']; - $mod->mfieldofstudy = $moduleData['mfieldofstudy']; - $mod->mcoordinator = $moduleData['mcoordinator']; - $mod->mlevel = $moduleData['mlevel']; - $mod->mcredits = $moduleData['mcredits']; - $mod->departmentid = $moduleData['departmentid']; + $elec = Classes::where('classid', $formFields['classid'])->first(); + + $elec->classmodule = $moduleData['classmodule']; + $elec->classlecturer = User::where('name', $moduleData['classlecturer'])->first()->id; + $elec->classlimit = $moduleData['classlimit']; - if($mod->save()){ - Session::flash('global', 'You have edited the module "'. $moduleData['mfulltitle'].'".'); + if($elec->save()){ + Session::flash('global', 'You have edited a module.'); //return success message return Response::json(array( 'success' => true, - 'mName' => $moduleData['mfulltitle'] + 'mName' => Modules::find($moduleData['classmodule'])->mshorttitle )); } } } + + public function getElectives(){ if(Auth::check()){ if (Auth::user()->rank >= 2) @@ -603,7 +631,7 @@ function printClassList($classId) { fputcsv($f, $line, $delimiter); } } - } - + } + } -?> \ No newline at end of file +?> diff --git a/app/controllers/ModuleController.php b/app/controllers/ModuleController.php index 5d2981c..2ffeb9a 100644 --- a/app/controllers/ModuleController.php +++ b/app/controllers/ModuleController.php @@ -22,7 +22,7 @@ public function postModuleNew(){ { // This is the correct way to do this. $coord = User::where('name', $value)->first(); - if($coord->rank < 1){ + if(!$coord && $coord->rank < 1){ return false; } @@ -85,7 +85,7 @@ public function postModuleChange(){ Validator::extend('ranked', function($attribute, $value, $parameters) { $coord = User::where('name', $value)->first(); - if($coord->rank < 1){ + if($coord && $coord->rank < 1){ return false; } @@ -155,74 +155,6 @@ public function getModules(){ } } - public function getImage($modCode){ - - $cacheKey = md5($modCode); - - $image = Cache::remember($cacheKey, 3600, function() use ($modCode) { - // start making our image (this assumes your original image is within "app/storage/img") - $colors = array('#00c6ff', '#f39c12', '#ff0000', '#49E035'); - $color = $colors[array_rand($colors)]; - $img = Image::canvas(384, 384, $color); - $img->insert(public_path('images/layout.png'), 'top-left', 5, 0); - - $mod = Modules::where('mcode', $modCode); - - if($mod->count()){ - $mod = $mod->first(); - - $img->text($mod->department->name(), 192, 250, function($font) { - $font->file(public_path('fonts/segoeui.ttf')); - $font->size(30); - $font->color('#fff'); - $font->align('center'); - }); - - $img->text($mod->mshorttitle, 192, 320, function($font) { - $font->file(public_path('fonts/segoeui.ttf')); - $font->size(25); - $font->color('#fff'); - $font->align('center'); - }); - - } elseif ($modCode == 'newMod') { - $img->text('Create new Module!', 192, 300, function($font) { - $font->file(public_path('fonts/segoeui.ttf')); - $font->size(30); - $font->color('#fff'); - $font->align('center'); - }); - } elseif ($modCode == 'newElec') { - $img->text('Create new Elective!', 192, 300, function($font) { - $font->file(public_path('fonts/segoeui.ttf')); - $font->size(30); - $font->color('#fff'); - $font->align('center'); - }); - } else { - $img->text('Error: Module not Found!', 192, 300, function($font) { - $font->file(public_path('fonts/segoeui.ttf')); - $font->size(30); - $font->color('#fff'); - $font->align('center'); - }); - } - - // return the image as a JPG - return $img->encode('jpg'); - }); - - // return the image - $headers = [ - 'Content-Type' => 'image/jpeg', - 'Content-Disposition' => 'inline', - 'Cache-Control' => 'must-revalidate, post-check=0, pre-check=0', - 'Pragma' => 'public', - 'Etag' => md5($image), - ]; - - return Response::make($image, 200, $headers)->setTtl((60 * 30)); - } public function postElectiveNew(){ @@ -230,7 +162,7 @@ public function postElectiveNew(){ $inputData = Input::get('elecData'); parse_str($inputData, $formFields); $moduleData = array( - 'classlecturer' => User::where('name', $formFields['classlecturer'])->first()->id, + 'classlecturer' => $formFields['classlecturer'], 'classmodule' => $formFields['classmodule'], 'classlimit' => $formFields['classlimit'], ); @@ -238,22 +170,34 @@ public function postElectiveNew(){ Validator::extend('ranked', function($attribute, $value, $parameters) { // This is the correct way to do this. - $coord = User::find($value); - if($coord->rank < 1){ + $coord = User::where('name', $value)->first(); + if($coord && $coord->rank < 1){ return false; } return true; }); + Validator::extend('indep', function($attribute, $value, $parameters) + { + // This is the correct way to do this. + $mod = Modules::find($value); + if($mod && $mod->departmentid !== Auth::user()->department){ + return false; + } + + return true; + }); + $rules = array( - 'classmodule' => 'required|exists:modules,mid', - 'classlecturer' => 'required|exists:users,id|ranked', + 'classmodule' => 'required|exists:modules,mid|indep', + 'classlecturer' => 'required|exists:users,name|ranked', 'classlimit' => 'required|integer|between:5,30', ); $messages = [ 'ranked' => "This user can't coordinate this class.", + 'indep' => "This module is not in your department.", ]; $validator = Validator::make($moduleData,$rules,$messages); @@ -290,21 +234,35 @@ public function postElectiveChange(){ { // This is the correct way to do this. $coord = User::find($value); - if($coord->rank < 1){ + if($coord && $coord->rank < 1){ return false; } return true; }); + Validator::extend('indep', function($attribute, $value, $parameters) + { + // This is the correct way to do this. + $mod = Modules::find($value); + if($mod && $mod->departmentid !== Auth::user()->department){ + return false; + } + + return true; + }); + + $rules = array( - 'classmodule' => 'required|exists:modules,mid', + 'classmodule' => 'required|exists:modules,mid|indep', 'classlecturer' => 'required|exists:users,id|ranked', 'classlimit' => 'required|integer|between:5,30', ); $messages = [ 'ranked' => "This user can't coordinate this class.", + 'indep' => "This module is not in your department.", + ]; $validator = Validator::make($moduleData,$rules,$messages); @@ -335,4 +293,4 @@ public function postElectiveChange(){ } } -?> \ No newline at end of file +?> diff --git a/app/database/.gitignore b/app/database/.gitignore deleted file mode 100755 index 9b1dffd..0000000 --- a/app/database/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.sqlite diff --git a/app/lang/en/reminders.php b/app/lang/en/reminders.php index e2e24e5..e42148e 100755 --- a/app/lang/en/reminders.php +++ b/app/lang/en/reminders.php @@ -21,6 +21,4 @@ "sent" => "Password reminder sent!", - "reset" => "Password has been reset!", - ); diff --git a/app/lang/en/validation.php b/app/lang/en/validation.php index 648516e..b03b926 100755 --- a/app/lang/en/validation.php +++ b/app/lang/en/validation.php @@ -27,7 +27,6 @@ "string" => "The :attribute must be between :min and :max characters.", "array" => "The :attribute must have between :min and :max items.", ), - "boolean" => "The :attribute field must be true or false.", "confirmed" => "The :attribute confirmation does not match.", "date" => "The :attribute is not a valid date.", "date_format" => "The :attribute does not match the format :format.", @@ -71,7 +70,6 @@ ), "unique" => "The :attribute has already been taken.", "url" => "The :attribute format is invalid.", - "timezone" => "The :attribute must be a valid zone.", /* |-------------------------------------------------------------------------- diff --git a/app/routes.php b/app/routes.php index b37873f..c7ef38b 100755 --- a/app/routes.php +++ b/app/routes.php @@ -51,7 +51,7 @@ */ Route::post('/elective-new', array( 'as' => 'elective-new-post', - 'uses' => 'ModuleController@postElectiveNew' + 'uses' => 'ElectiveController@postElectiveNew' )); /* @@ -60,17 +60,15 @@ Route::post('/elective-change', array( 'as' => 'elective-change-post', - 'uses' => 'ModuleController@postElectiveChange' + 'uses' => 'ElectiveController@postElectiveChange' )); - - }); - + /* | Register to elective. */ - + Route::post('/account/register-elective', array( 'as' => 'register-elective', 'uses' => 'ElectiveController@postRegisterElective' @@ -79,12 +77,17 @@ /* | Unregister to elective. */ - + Route::post('/account/unregister-elective', array( 'as' => 'unregister-elective', 'uses' => 'ElectiveController@postUnregisterElective' )); + Route::any('/db/backup', array( + 'as' => 'database-backup', + 'uses' => 'AccountController@backupDB' + )); + /* | Save Timetable */ diff --git a/app/storage/img/layout.png b/app/storage/img/layout.png deleted file mode 100755 index bec5159c724d324ad45d7d06a13b94b656f58b8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32453 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'/'); // Create a module to test with. - $module = $this->createModule(); + $d = array('mname' => 'name123', + 'mshorttitle' => 'short123', + 'mdescription' => str_random(60), + 'mcode' => 'abc1234', + 'mfieldofstudy' => 'abc123', + 'mcoordinator' => 'lecturer', + 'mlevel' => 'Fundamental', + 'mcredits' => 5, + 'melective' => true); + $module = $this->createModule($d, true); + + // Try to create a module with incorrect syntax. + $d = array('mname' => 'name123', + 'mshorttitle' => 'short123', + 'mdescription' => str_random(60), + 'mcode' => 'abc1234', + 'mfieldofstudy' => 'abc123', + 'mcoordinator' => 'lecturer', + 'mlevel' => 'Fundamental', + 'mcredits' => 'five', + 'melective' => true); + $this->createModule($d, false); + // Update the module. - $module = $this->updateModule($module->mid); + $d = array('mname' => 'name12345', + 'mshorttitle' => 'short123', + 'mdescription' => str_random(60), + 'mcode' => 'abc1234', + 'mfieldofstudy' => 'abc123', + 'mcoordinator' => 'lecturer', + 'mlevel' => 'Fundamental', + 'mcredits' => 5, + 'melective' => true, + 'mid' => $module->mid); + $module = $this->updateModule($module->mid, $d, true); + + // Try to update the module with incorrect syntax. + $d = array('mname' => 'name12345', + 'mshorttitle' => 'short123', + 'mdescription' => str_random(60), + 'mcode' => 'abc1234', + 'mfieldofstudy' => 'abc123', + 'mcoordinator' => 'lecturer', + 'mlevel' => 'Fundamental', + 'mcredits' => 'five', + 'melective' => true, + 'mid' => $module->mid); + $this->updateModule($module->mid, $d, false); // Now create an elective of that module. - //$elective = $this->createElective($module->mid); + $d = array('classlecturer' => 'lecturer', + 'classmodule' => $module->mid, + 'classlimit' => 10); + $elective = $this->createElective($module->mid, $d, true); + + // Now try creating an elective with incorrect syntax. + $d = array('classlecturer' => 'lecturer', + 'classmodule' => $module->mid, + 'classlimit' => 'ten'); + $this->createElective($module->mid, $d, false); + + // Add a request to the module. + $module->mrequests = '["20"]'; + $module->save(); + + // Check if hod can see request. + $crawler = $this->client->request('GET', '/'); + $this->assertTrue($this->client->getResponse()->isOk()); + $this->assertCount(1, $crawler->filter('p:contains("1 student has requested a new class.")')); // Now update an elective. - //$elective = $this->updateElective($elective->classid); + $d = array('classlecturer' => 'lecturer', + 'classmodule' => $module->mid, + 'classlimit' => 10, + 'classid' => $elective->classid); + $elective = $this->updateElective($elective->classid, $d, true); + + // Try to update elective with bad syntax. + $d = array('classlecturer' => 'lecturer', + 'classmodule' => $module->mid, + 'classlimit' => 'ten', + 'classid' => $elective->classid); + $this->updateElective($elective->classid, $d, false); // Create test lecturer. - $lecturer = $this->createLecturer(); + $lecturer = $this->createLecturer(true); + + // Try to create test lecturer with bad syntax. + $this->createLecturer(false); // Remove the lecturer. $this->removeLecturer($lecturer->id); // Delete dummy data. + $elective->delete(); $module->delete(); - //$elective->delete(); } /** * Function that creates a module */ - protected function createModule() { + protected function createModule($d, $expected) { $data = ''; - $d = array('mname' => 'name123', - 'mshorttitle' => 'short123', - 'mdescription' => str_random(60), - 'mcode' => 'abc1234', - 'mfieldofstudy' => 'abc123', - 'mcoordinator' => 'lecturer', - 'mlevel' => 'Fundamental', - 'mcredits' => 5, - 'melective' => true); foreach($d as $key => $value) { $data = $data.$key.'='.$value.'&'; } $response = $this->call('POST', '/module-new', ['modData' => $data]); $json = json_decode($response->getContent()); - $this->assertEquals(true, $json->success); + if($expected) { + $this->assertEquals(true, $json->success); - // Return the module we just created. - return Modules::where('mfulltitle', $json->mName)->first(); + // Return the module we just created. + return Modules::where('mfulltitle', $json->mName)->first(); + } else { + $this->assertEquals(true, $json->fail); + } } /** * Function that updates a module */ - protected function updateModule($mid) { + protected function updateModule($mid, $d, $expected) { $data = ''; - $d = array('mname' => 'name12345', - 'mshorttitle' => 'short123', - 'mdescription' => str_random(60), - 'mcode' => 'abc1234', - 'mfieldofstudy' => 'abc123', - 'mcoordinator' => 'lecturer', - 'mlevel' => 'Fundamental', - 'mcredits' => 5, - 'melective' => true, - 'mid' => $mid); foreach($d as $key => $value) { $data = $data.$key.'='.$value.'&'; } $response = $this->call('POST', '/module-change', ['modData' => $data]); $json = json_decode($response->getContent()); - $this->assertEquals(true, $json->success); + if($expected) { + $this->assertEquals(true, $json->success); - // Get the module we just updated. - $m = Modules::where('mid', $mid)->first(); + // Get the module we just updated. + $m = Modules::where('mid', $mid)->first(); - // Verify that the change was made. - $this->assertEquals('name12345', $m->mfulltitle); + // Verify that the change was made. + $this->assertEquals('name12345', $m->mfulltitle); - // Now return the module. - return $m; + // Now return the module. + return $m; + } else { + $this->assertEquals(true, $json->fail); + } } /** * Function that creates a lecturer. */ - protected function createLecturer() { - $response = $this->call('POST', '/account/create-lecturer', ['name' => 'phpunitLecturer', + protected function createLecturer($expected) { + if ($expected) { + $response = $this->call('POST', '/account/create-lecturer', ['name' => 'phpunitLecturer', + 'username' => 'phpunit123', + 'email' => 'phpunit@email.com']); + + $json = json_decode($response->getContent()); + $this->assertEquals($expected, $json->success); + + // Return the lecturer we just created. + return User::find($json->id); + } else { + $response = $this->call('POST', '/account/create-lecturer', ['name' => 'phpunitLecturer', 'username' => 'phpunit123', - 'email' => 'phpunit@email.com']); + 'email' => 'phpunitemail.com']); - $json = json_decode($response->getContent()); - $this->assertEquals(true, $json->success); - - // Return the lecturer we just created. - return User::find($json->id); + $json = json_decode($response->getContent()); + $this->assertEquals($expected, $json->success); + } } /** @@ -122,21 +197,47 @@ protected function removeLecturer($id) { /** * Function that creates an elective for a specified module. */ - protected function createElective($mid) { + protected function createElective($mid, $d, $expected) { $data = ''; - $d = array('classlecturer' => 'lecturer', - 'classmodule' => $mid, - 'classlimit' => 10); foreach($d as $key => $value) { $data = $data.$key.'='.$value.'&'; } // TODO: Once elective creation is resolved change path below. - $response = $this->call('POST', '/module-new', ['elecData' => $data]); + $response = $this->call('POST', '/elective-new', ['elecData' => $data]); $json = json_decode($response->getContent()); - $this->assertEquals(true, $json->success); + if($expected) { + $this->assertEquals(true, $json->success); - // Return the Class we just created. - return Classes::where('classmodule', $mid)->first(); + // Return the Class we just created. + return Classes::where('classmodule', $mid)->first(); + } else { + $this->assertEquals(true, $json->fail); + } + } + + /** + * Function that updates a module + */ + protected function updateElective($id, $d, $expected) { + $data = ''; + foreach($d as $key => $value) { + $data = $data.$key.'='.$value.'&'; + } + $response = $this->call('POST', '/elective-change', ['elecData' => $data]); + + $json = json_decode($response->getContent()); + if($expected) { + $this->assertEquals(true, $json->success); + + // Get the module we just updated. + $c = Classes::where('classid', $id)->first(); + + // Now return the class. + return $c; + } else { + $this->assertEquals(true, $json->fail); + } } } + diff --git a/app/tests/LecturerViewTest.php b/app/tests/LecturerViewTest.php index 75b48d6..c9810e3 100644 --- a/app/tests/LecturerViewTest.php +++ b/app/tests/LecturerViewTest.php @@ -4,7 +4,7 @@ class LecturerViewTest extends TestCase { // Define user login credentials. private $username = 'lecturer'; - private $password = 'abc123'; + private $password = 'password'; public function testController() { // Log in so we have an authenticated user. @@ -37,7 +37,10 @@ public function testController() { $this->loadClass($class->classid); // Update class. - $this->updateClass($class->classid); + $this->updateClass($class->classid, true, 5); + + // Update class with incorrect values. + $this->updateClass($class->classid, false, 'five'); // Remove student from class. $this->removeStudent($class->classid, $student->id); @@ -61,11 +64,13 @@ protected function loadClass($id, $expected = 1) { /** * Function that updates a class. */ - protected function updateClass($id) { - $response = $this->call('POST', '/account/update-class', ['classId' => $id, 'limit' => 5]); + protected function updateClass($id, $expected, $updateVal) { + $response = $this->call('POST', '/account/update-class', ['classId' => $id, 'limit' => $updateVal]); $json = json_decode($response->getContent()); - $this->assertEquals(true, $json->success); - $this->assertEquals(4, $json->space); + $this->assertEquals($expected, $json->success); + if($expected) { + $this->assertEquals(4, $json->space); + } } diff --git a/app/tests/SignInTest.php b/app/tests/SignInTest.php index cf25dbb..bf99fab 100644 --- a/app/tests/SignInTest.php +++ b/app/tests/SignInTest.php @@ -3,16 +3,12 @@ class SignInTest extends TestCase { // Define user login credentials. - private $username = 'R00103567'; - private $password = 'fr1ck0ff'; - - // Define crawler. - private $crawler; + private $username = 'student'; + private $password = 'password'; /** * Test if the signIn page works correctly. */ - public function testSignInPage() - { + public function testSignInPage() { // Load the page and check it loads correctly. $this->client->request('GET', '/account/signin'); $this->assertTrue($this->client->getResponse()->isOk()); @@ -21,11 +17,17 @@ public function testSignInPage() /** * Test if the signIn form works correctly. */ - public function testSignInForm() - { + public function testSignInForm() { $response = $this->action('POST', 'AccountController@postSignIn', ['username' => $this->username, 'password' => $this->password]); $this->assertRedirectedTo('/'); } + /** + * Test if the sign in form fails with incorrect credentials. + */ + public function testFailSignInForm() { + $response = $this->action('POST', 'AccountController@postSignIn', ['username' => $this->username, 'password' => 'badpassword']); + $this->assertRedirectedTo('/account/signin'); + } } diff --git a/app/tests/StudentViewTest.php b/app/tests/StudentViewTest.php index b81d816..053ae44 100644 --- a/app/tests/StudentViewTest.php +++ b/app/tests/StudentViewTest.php @@ -1,10 +1,10 @@ createDummyClass($elective->mid); // Try registering to elective. - $this->register($elective->mid); + $this->register($elective->mid, true); + + // Now try registering to the same elective again. + $this->register($elective->mid, false); + + // Check if registered class shows in users profile. + $crawler = $this->client->request('GET', '/'); + $this->assertTrue($this->client->getResponse()->isOk()); + $this->assertCount(1, $crawler->filter('h3:contains("'. $elective->mshorttitle .'")')); + + // Load timetable for class. + $crawler = $this->client->request('GET', '/timetables/'.$class->classid); + $this->assertTrue($this->client->getResponse()->isOk()); // Now unregister from elective. - $this->unregister($elective->mid); + $this->unregister($elective->mid, true); + + // Try to unregister from the same elective. + $this->unregister($elective->mid, false); // Now request a new class. - $this->request($elective->mid); + $this->request($elective->mid, true); + + // Request again. + $this->request($elective->mid, false); // Delete dummy data. $class->delete(); @@ -34,28 +52,28 @@ public function testController() { /** * Function that registers user to elective. */ - protected function register($id) { + protected function register($id, $expected) { $response = $this->call('POST', '/account/register-elective', ['electiveId' => $id]); $json = json_decode($response->getContent()); - $this->assertEquals(true, $json->success); + $this->assertEquals($expected, $json->success); } /** * Function that unregisters user to elective. */ - protected function unregister($id) { + protected function unregister($id, $expected) { $response = $this->call('POST', '/account/unregister-elective', ['electiveId' => $id]); $json = json_decode($response->getContent()); - $this->assertEquals(true, $json->success); + $this->assertEquals($expected, $json->success); } /** * Function that requests a new class for elective. */ - protected function request($id) { + protected function request($id, $expected) { $response = $this->call('POST', '/account/request-elective', ['electiveId' => $id]); $json = json_decode($response->getContent()); - $this->assertEquals(true, $json->success); + $this->assertEquals($expected, $json->success); } /** @@ -81,7 +99,8 @@ protected function createDummyElective() { protected function createDummyClass($id) { return Classes::create(array( 'classlecturer' => 1, - 'classmodule' => $id, - 'classlimit' => 25)); + 'classmodule' => $id, + 'classlimit' => 25)); } } + diff --git a/app/tests/TechnicianViewTest.php b/app/tests/TechnicianViewTest.php index b366193..9e7e96d 100644 --- a/app/tests/TechnicianViewTest.php +++ b/app/tests/TechnicianViewTest.php @@ -4,7 +4,7 @@ class TechnicianViewTest extends TestCase { // Define user login credentials. private $username = 'technician'; - private $password = 'abc123'; + private $password = 'password'; public function testController() { // Log in so we have an authenticated user. @@ -12,32 +12,106 @@ public function testController() { $this->assertRedirectedTo('/'); // Create a module to test with. - $module = $this->createModule(); + $d = array('mname' => 'name123', + 'mshorttitle' => 'short123', + 'mdescription' => str_random(60), + 'mcode' => 'abc1234', + 'mfieldofstudy' => 'abc123', + 'mcoordinator' => 'lecturer', + 'mlevel' => 'Fundamental', + 'mcredits' => 5, + 'melective' => true); + $module = $this->createModule($d, true); + + // Try to create a module with incorrect syntax. + $d = array('mname' => 'name123', + 'mshorttitle' => 'short123', + 'mdescription' => str_random(60), + 'mcode' => 'abc1234', + 'mfieldofstudy' => 'abc123', + 'mcoordinator' => 'lecturer', + 'mlevel' => 'Fundamental', + 'mcredits' => 'five', + 'melective' => true); + $this->createModule($d, false); + // Update the module. - $module = $this->updateModule($module->mid); + $d = array('mname' => 'name12345', + 'mshorttitle' => 'short123', + 'mdescription' => str_random(60), + 'mcode' => 'abc1234', + 'mfieldofstudy' => 'abc123', + 'mcoordinator' => 'lecturer', + 'mlevel' => 'Fundamental', + 'mcredits' => 5, + 'melective' => true, + 'mid' => $module->mid); + $module = $this->updateModule($module->mid, $d, true); + + // Try to update the module with incorrect syntax. + $d = array('mname' => 'name12345', + 'mshorttitle' => 'short123', + 'mdescription' => str_random(60), + 'mcode' => 'abc1234', + 'mfieldofstudy' => 'abc123', + 'mcoordinator' => 'lecturer', + 'mlevel' => 'Fundamental', + 'mcredits' => 'five', + 'melective' => true, + 'mid' => $module->mid); + $this->updateModule($module->mid, $d, false); // Now create an elective of that module. - //$elective = $this->createElective($module->mid); + $d = array('classlecturer' => 'lecturer', + 'classmodule' => $module->mid, + 'classlimit' => 10); + $elective = $this->createElective($module->mid, $d, true); + + // Now try creating an elective with incorrect syntax. + $d = array('classlecturer' => 'lecturer', + 'classmodule' => $module->mid, + 'classlimit' => 'ten'); + $this->createElective($module->mid, $d, false); // Now update an elective. - //$elective = $this->updateElective($elective->classid); + $d = array('classlecturer' => 'lecturer', + 'classmodule' => $module->mid, + 'classlimit' => 10, + 'classid' => $elective->classid); + $elective = $this->updateElective($elective->classid, $d, true); + + // Try to update elective with bad syntax. + $d = array('classlecturer' => 'lecturer', + 'classmodule' => $module->mid, + 'classlimit' => 'ten', + 'classid' => $elective->classid); + $this->updateElective($elective->classid, $d, false); // Create test faculty. - $faculty = $this->createFaculty(); + $faculty = $this->createFaculty(true); + + // Create faculty with bad syntax. + $this->createFaculty(false); // Update the faculty. $faculty = $this->updateFaculty($faculty->facultyid); // Create test department. - $department = $this->createDepartment(); + $department = $this->createDepartment(true); + + // Try creating test department with incorrect syntax. + $this->createDepartment(false); // Update the department. - $department = $this->updateDepartment($department->departmentid); + $department = $this->updateDepartment($department->departmentid, true); + + // Try updating department with incorrect syntax. + $this->updateDepartment($department->departmentid, false); // Delete dummy data. + $elective->delete(); $module->delete(); - //$elective->delete(); $faculty->delete(); $department->delete(); @@ -46,60 +120,49 @@ public function testController() { /** * Function that creates a module */ - protected function createModule() { + protected function createModule($d, $expected) { $data = ''; - $d = array('mname' => 'name123', - 'mshorttitle' => 'short123', - 'mdescription' => str_random(60), - 'mcode' => 'abc1234', - 'mfieldofstudy' => 'abc123', - 'mcoordinator' => 'lecturer', - 'mlevel' => 'Fundamental', - 'mcredits' => 5, - 'melective' => true); foreach($d as $key => $value) { $data = $data.$key.'='.$value.'&'; } $response = $this->call('POST', '/module-new', ['modData' => $data]); $json = json_decode($response->getContent()); - $this->assertEquals(true, $json->success); + if($expected) { + $this->assertEquals(true, $json->success); - // Return the module we just created. - return Modules::where('mfulltitle', $json->mName)->first(); + // Return the module we just created. + return Modules::where('mfulltitle', $json->mName)->first(); + } else { + $this->assertEquals(true, $json->fail); + } } /** * Function that updates a module */ - protected function updateModule($mid) { + protected function updateModule($mid, $d, $expected) { $data = ''; - $d = array('mname' => 'name12345', - 'mshorttitle' => 'short123', - 'mdescription' => str_random(60), - 'mcode' => 'abc1234', - 'mfieldofstudy' => 'abc123', - 'mcoordinator' => 'lecturer', - 'mlevel' => 'Fundamental', - 'mcredits' => 5, - 'melective' => true, - 'mid' => $mid); foreach($d as $key => $value) { $data = $data.$key.'='.$value.'&'; } $response = $this->call('POST', '/module-change', ['modData' => $data]); $json = json_decode($response->getContent()); - $this->assertEquals(true, $json->success); + if($expected) { + $this->assertEquals(true, $json->success); - // Get the module we just updated. - $m = Modules::where('mid', $mid)->first(); + // Get the module we just updated. + $m = Modules::where('mid', $mid)->first(); - // Verify that the change was made. - $this->assertEquals('name12345', $m->mfulltitle); + // Verify that the change was made. + $this->assertEquals('name12345', $m->mfulltitle); - // Now return the module. - return $m; + // Now return the module. + return $m; + } else { + $this->assertEquals(true, $json->fail); + } } /** @@ -139,59 +202,108 @@ protected function updateFaculty($id) { /** * Function that creates a Department. */ - protected function createDepartment() { - $response = $this->call('POST', '/account/create-department', ['name' => 'phpunitDepartment', - 'shortname' => 'phpunitDepartment', - 'head' => 'headofdepartment', - 'description' => str_random(60), - 'facultyId' => 1]); + protected function createDepartment($expected) { + if($expected) { + $response = $this->call('POST', '/account/create-department', ['name' => 'phpunitDepartment', + 'shortname' => 'phpunitDepartment', + 'head' => 'headofdepartment', + 'description' => str_random(60), + 'facultyId' => 1]); - $json = json_decode($response->getContent()); - $this->assertEquals(true, $json->success); + $json = json_decode($response->getContent()); + $this->assertEquals($expected, $json->success); + + // Return the we just created. + return Departments::find($json->departmentId); + } else { + $response = $this->call('POST', '/account/create-department', ['name' => 'phpunitDepartment', + 'shortname' => 'phpunitDepartment', + 'head' => 'headofdepartment', + 'description' => str_random(30), + 'facultyId' => 'one']); - // Return the we just created. - return Departments::find($json->departmentId); + $json = json_decode($response->getContent()); + $this->assertEquals($expected, $json->success); + } } /** * Function that updates specified department. */ - protected function updateDepartment($id) { - $response = $this->call('POST', '/account/update-department', ['name' => 'phpunitDepartment123', - 'shortname' => 'phpunitDepartment', - 'head' => 'headofdepartment', - 'description' => str_random(60), - 'facultyId' => 1, - 'id' => $id]); + protected function updateDepartment($id, $expected) { + if($expected) { + $response = $this->call('POST', '/account/update-department', ['name' => 'phpunitDepartment123', + 'shortname' => 'phpunitDepartment', + 'head' => 'headofdepartment', + 'description' => str_random(60), + 'facultyId' => 1, + 'id' => $id]); + + $json = json_decode($response->getContent()); + $this->assertEquals(true, $json->success); + + // Verify that the change was made. + $d = Departments::find($id); + $this->assertEquals('phpunitDepartment123', $d->departmentname); + + return $d; + } else { + $response = $this->call('POST', '/account/update-department', ['name' => 'phpunitDepartment123', + 'shortname' => 'phpunitDepartment', + 'head' => 'headofdepartment', + 'description' => str_random(60), + 'facultyId' => 'one', + 'id' => $id]); + + $json = json_decode($response->getContent()); + $this->assertEquals(false, $json->success); + } + } - $json = json_decode($response->getContent()); - $this->assertEquals(true, $json->success); + /** + * Function that creates an elective for a specified module. + */ + protected function createElective($mid, $d, $expected) { + $data = ''; + foreach($d as $key => $value) { + $data = $data.$key.'='.$value.'&'; + } + // TODO: Once elective creation is resolved change path below. + $response = $this->call('POST', '/elective-new', ['elecData' => $data]); - // Verify that the change was made. - $d = Departments::find($id); - $this->assertEquals('phpunitDepartment123', $d->departmentname); + $json = json_decode($response->getContent()); + if($expected) { + $this->assertEquals(true, $json->success); - return $d; + // Return the Class we just created. + return Classes::where('classmodule', $mid)->first(); + } else { + $this->assertEquals(true, $json->fail); + } } /** - * Function that creates an elective for a specified module. + * Function that updates a module */ - protected function createElective($mid) { + protected function updateElective($id, $d, $expected) { $data = ''; - $d = array('classlecturer' => 'lecturer', - 'classmodule' => $mid, - 'classlimit' => 10); foreach($d as $key => $value) { $data = $data.$key.'='.$value.'&'; } - // TODO: Once elective creation is resolved change path below. - $response = $this->call('POST', '/module-new', ['elecData' => $data]); + $response = $this->call('POST', '/elective-change', ['elecData' => $data]); $json = json_decode($response->getContent()); - $this->assertEquals(true, $json->success); + if($expected) { + $this->assertEquals(true, $json->success); - // Return the Class we just created. - return Classes::where('classmodule', $mid)->first(); + // Get the module we just updated. + $c = Classes::where('classid', $id)->first(); + + // Now return the class. + return $c; + } else { + $this->assertEquals(true, $json->fail); + } } } + diff --git a/app/views/account/password.blade.php b/app/views/account/password.blade.php index fdba4ed..fd66b59 100755 --- a/app/views/account/password.blade.php +++ b/app/views/account/password.blade.php @@ -28,7 +28,7 @@
- Change Password + {{Form::token()}}
@@ -36,4 +36,4 @@
- \ No newline at end of file + diff --git a/app/views/account/signin.blade.php b/app/views/account/signin.blade.php index e879251..194bfe6 100755 --- a/app/views/account/signin.blade.php +++ b/app/views/account/signin.blade.php @@ -2,7 +2,7 @@ @section('content')

-{{ (Input::old('username')) ? e(Input::old('username')) : '[Student ID]' }} +{{ (Input::old('username')) ? e(Input::old('username')) : '[User ID]' }} (not you?)

CIT Module System

@@ -20,4 +20,4 @@ Remember me -@stop \ No newline at end of file +@stop diff --git a/app/views/layout/classes.blade.php b/app/views/layout/classes.blade.php index c43376d..1a6fd8d 100644 --- a/app/views/layout/classes.blade.php +++ b/app/views/layout/classes.blade.php @@ -33,9 +33,9 @@
- - - + + +
@@ -69,4 +69,4 @@ @endforeach - \ No newline at end of file + diff --git a/app/views/layout/electivepreview.blade.php b/app/views/layout/electivepreview.blade.php index c4fc050..393fe49 100755 --- a/app/views/layout/electivepreview.blade.php +++ b/app/views/layout/electivepreview.blade.php @@ -2,7 +2,7 @@ // Get the module. $mod = Modules::where('mid', $elec->classmodule)->first(); ?> -
+
diff --git a/app/views/layout/hod.blade.php b/app/views/layout/hod.blade.php index 5fbffd3..18f9c27 100755 --- a/app/views/layout/hod.blade.php +++ b/app/views/layout/hod.blade.php @@ -277,15 +277,9 @@ @@ -383,7 +388,9 @@

-
+
+
+
+
    Load Timetable @@ -323,7 +326,7 @@ $("#loadTimes").click(function() { var opt = $('option[value="'+$('#elective').val()+'"]'); if(!opt.length){ - alert('Error: No Elective Selected.') + failMessage('Error: No Elective Selected.') return; } @@ -359,4 +362,4 @@ function loadTime($id){ {{ HTML::script('js/main.js') }} - \ No newline at end of file + diff --git a/app/views/layout/moduleedit.blade.php b/app/views/layout/moduleedit.blade.php index b05d5ac..15103b7 100644 --- a/app/views/layout/moduleedit.blade.php +++ b/app/views/layout/moduleedit.blade.php @@ -1,15 +1,15 @@ -
    +
    - {{ $type=='edit' ? $mod->mshorttitle : 'Create new Module'}} + {{ $type=='edit' ? $mod->mshorttitle : 'Create New Module'}}
    -
\ No newline at end of file +
diff --git a/app/views/layout/student.blade.php b/app/views/layout/student.blade.php index 61e30e2..75bce2e 100755 --- a/app/views/layout/student.blade.php +++ b/app/views/layout/student.blade.php @@ -120,16 +120,16 @@

Electives

-
+
@foreach (Faculty::all() as $fac) - @foreach ($fac->departments as $dep) @endforeach @@ -196,7 +196,7 @@ -
+

Profile

@@ -228,7 +228,7 @@

Settings

Change Password

- Change Password Now + Change Password
@if(Session::has('pass'))
{{ Session::get('pass') }}
@@ -265,6 +265,8 @@

+
+ +
    @@ -305,7 +308,7 @@ $("#loadTimes").click(function() { var opt = $('option[value="'+$('#elective').val()+'"]'); if(!opt.length){ - alert('Error: No Elective Selected.') + failMessage('Error: No Elective Selected.') return; } diff --git a/app/views/layout/tech.blade.php b/app/views/layout/tech.blade.php index 645b3e3..5755a02 100755 --- a/app/views/layout/tech.blade.php +++ b/app/views/layout/tech.blade.php @@ -386,7 +386,7 @@ -
    +

    Users

    @@ -402,7 +402,7 @@ -
    +

    My Profile

    @@ -421,9 +421,12 @@ -
    -

    Change Password

    - Change Password Now +
    +
    + +
    + @if(Session::has('pass'))
    {{ Session::get('global') }}
    @@ -462,7 +465,7 @@
    -
    +

    Faculties

    @@ -520,7 +523,7 @@
    -
    +

    Departments

    @@ -608,4 +611,4 @@ {{ HTML::script('js/main.js') }} - \ No newline at end of file + diff --git a/bootstrap/app.php b/bootstrap/app.php deleted file mode 100644 index f50a3f7..0000000 --- a/bootstrap/app.php +++ /dev/null @@ -1,55 +0,0 @@ -singleton( - 'Illuminate\Contracts\Http\Kernel', - 'App\Http\Kernel' -); - -$app->singleton( - 'Illuminate\Contracts\Console\Kernel', - 'App\Console\Kernel' -); - -$app->singleton( - 'Illuminate\Contracts\Debug\ExceptionHandler', - 'App\Exceptions\Handler' -); - -/* -|-------------------------------------------------------------------------- -| Return The Application -|-------------------------------------------------------------------------- -| -| This script returns the application instance. The instance is given to -| the calling script so we can separate the building of the instances -| from the actual running of the application and sending responses. -| -*/ - -return $app; diff --git a/config/app.php b/config/app.php deleted file mode 100644 index ab912a9..0000000 --- a/config/app.php +++ /dev/null @@ -1,205 +0,0 @@ - env('APP_DEBUG'), - - /* - |-------------------------------------------------------------------------- - | Application URL - |-------------------------------------------------------------------------- - | - | This URL is used by the console to properly generate URLs when using - | the Artisan command line tool. You should set this to the root of - | your application so that it is used when running Artisan tasks. - | - */ - - 'url' => 'http://localhost', - - /* - |-------------------------------------------------------------------------- - | Application Timezone - |-------------------------------------------------------------------------- - | - | Here you may specify the default timezone for your application, which - | will be used by the PHP date and date-time functions. We have gone - | ahead and set this to a sensible default for you out of the box. - | - */ - - 'timezone' => 'UTC', - - /* - |-------------------------------------------------------------------------- - | Application Locale Configuration - |-------------------------------------------------------------------------- - | - | The application locale determines the default locale that will be used - | by the translation service provider. You are free to set this value - | to any of the locales which will be supported by the application. - | - */ - - 'locale' => 'en', - - /* - |-------------------------------------------------------------------------- - | Application Fallback Locale - |-------------------------------------------------------------------------- - | - | The fallback locale determines the locale to use when the current one - | is not available. You may change the value to correspond to any of - | the language folders that are provided through your application. - | - */ - - 'fallback_locale' => 'en', - - /* - |-------------------------------------------------------------------------- - | Encryption Key - |-------------------------------------------------------------------------- - | - | This key is used by the Illuminate encrypter service and should be set - | to a random, 32 character string, otherwise these encrypted strings - | will not be safe. Please do this before deploying an application! - | - */ - - 'key' => env('APP_KEY', 'SomeRandomString'), - - 'cipher' => MCRYPT_RIJNDAEL_128, - - /* - |-------------------------------------------------------------------------- - | Logging Configuration - |-------------------------------------------------------------------------- - | - | Here you may configure the log settings for your application. Out of - | the box, Laravel uses the Monolog PHP logging library. This gives - | you a variety of powerful log handlers / formatters to utilize. - | - | Available Settings: "single", "daily", "syslog", "errorlog" - | - */ - - 'log' => 'daily', - - /* - |-------------------------------------------------------------------------- - | Autoloaded Service Providers - |-------------------------------------------------------------------------- - | - | The service providers listed here will be automatically loaded on the - | request to your application. Feel free to add your own services to - | this array to grant expanded functionality to your applications. - | - */ - - 'providers' => [ - - /* - * Laravel Framework Service Providers... - */ - 'Illuminate\Foundation\Providers\ArtisanServiceProvider', - 'Illuminate\Auth\AuthServiceProvider', - 'Illuminate\Bus\BusServiceProvider', - 'Illuminate\Cache\CacheServiceProvider', - 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider', - 'Illuminate\Routing\ControllerServiceProvider', - 'Illuminate\Cookie\CookieServiceProvider', - 'Illuminate\Database\DatabaseServiceProvider', - 'Illuminate\Encryption\EncryptionServiceProvider', - 'Illuminate\Filesystem\FilesystemServiceProvider', - 'Illuminate\Foundation\Providers\FoundationServiceProvider', - 'Illuminate\Hashing\HashServiceProvider', - 'Illuminate\Mail\MailServiceProvider', - 'Illuminate\Pagination\PaginationServiceProvider', - 'Illuminate\Pipeline\PipelineServiceProvider', - 'Illuminate\Queue\QueueServiceProvider', - 'Illuminate\Redis\RedisServiceProvider', - 'Illuminate\Auth\Passwords\PasswordResetServiceProvider', - 'Illuminate\Session\SessionServiceProvider', - 'Illuminate\Translation\TranslationServiceProvider', - 'Illuminate\Validation\ValidationServiceProvider', - 'Illuminate\View\ViewServiceProvider', - - /* - * Application Service Providers... - */ - 'App\Providers\AppServiceProvider', - 'App\Providers\BusServiceProvider', - 'App\Providers\ConfigServiceProvider', - 'App\Providers\EventServiceProvider', - 'App\Providers\RouteServiceProvider', - - /* - * Custom image creation/manipulation library, - * see: image.intervention.io for more info... - */ - 'Intervention\Image\ImageServiceProvider', - - ], - - /* - |-------------------------------------------------------------------------- - | Class Aliases - |-------------------------------------------------------------------------- - | - | This array of class aliases will be registered when this application - | is started. However, feel free to register as many as you wish as - | the aliases are "lazy" loaded so they don't hinder performance. - | - */ - - 'aliases' => [ - - 'App' => 'Illuminate\Support\Facades\App', - 'Artisan' => 'Illuminate\Support\Facades\Artisan', - 'Auth' => 'Illuminate\Support\Facades\Auth', - 'Blade' => 'Illuminate\Support\Facades\Blade', - 'Bus' => 'Illuminate\Support\Facades\Bus', - 'Cache' => 'Illuminate\Support\Facades\Cache', - 'Config' => 'Illuminate\Support\Facades\Config', - 'Cookie' => 'Illuminate\Support\Facades\Cookie', - 'Crypt' => 'Illuminate\Support\Facades\Crypt', - 'DB' => 'Illuminate\Support\Facades\DB', - 'Eloquent' => 'Illuminate\Database\Eloquent\Model', - 'Event' => 'Illuminate\Support\Facades\Event', - 'File' => 'Illuminate\Support\Facades\File', - 'Hash' => 'Illuminate\Support\Facades\Hash', - 'Input' => 'Illuminate\Support\Facades\Input', - 'Inspiring' => 'Illuminate\Foundation\Inspiring', - 'Lang' => 'Illuminate\Support\Facades\Lang', - 'Log' => 'Illuminate\Support\Facades\Log', - 'Mail' => 'Illuminate\Support\Facades\Mail', - 'Password' => 'Illuminate\Support\Facades\Password', - 'Queue' => 'Illuminate\Support\Facades\Queue', - 'Redirect' => 'Illuminate\Support\Facades\Redirect', - 'Redis' => 'Illuminate\Support\Facades\Redis', - 'Request' => 'Illuminate\Support\Facades\Request', - 'Response' => 'Illuminate\Support\Facades\Response', - 'Route' => 'Illuminate\Support\Facades\Route', - 'Schema' => 'Illuminate\Support\Facades\Schema', - 'Session' => 'Illuminate\Support\Facades\Session', - 'Storage' => 'Illuminate\Support\Facades\Storage', - 'URL' => 'Illuminate\Support\Facades\URL', - 'Validator' => 'Illuminate\Support\Facades\Validator', - 'View' => 'Illuminate\Support\Facades\View', - 'Image' => 'Intervention\Image\Facades\Image', - - ], - -]; diff --git a/config/auth.php b/config/auth.php deleted file mode 100644 index 5b436aa..0000000 --- a/config/auth.php +++ /dev/null @@ -1,67 +0,0 @@ - 'eloquent', - - /* - |-------------------------------------------------------------------------- - | Authentication Model - |-------------------------------------------------------------------------- - | - | When using the "Eloquent" authentication driver, we need to know which - | Eloquent model should be used to retrieve your users. Of course, it - | is often just the "User" model but you may use whatever you like. - | - */ - - 'model' => 'App\User', - - /* - |-------------------------------------------------------------------------- - | Authentication Table - |-------------------------------------------------------------------------- - | - | When using the "Database" authentication driver, we need to know which - | table should be used to retrieve your users. We have chosen a basic - | default value but you may easily change it to any table you like. - | - */ - - 'table' => 'users', - - /* - |-------------------------------------------------------------------------- - | Password Reset Settings - |-------------------------------------------------------------------------- - | - | Here you may set the options for resetting passwords including the view - | that is your password reset e-mail. You can also set the name of the - | table that maintains all of the reset tokens for your application. - | - | The expire time is the number of minutes that the reset token should be - | considered valid. This security feature keeps tokens short-lived so - | they have less time to be guessed. You may change this as needed. - | - */ - - 'password' => [ - 'email' => 'emails.password', - 'table' => 'password_resets', - 'expire' => 60, - ], - -]; diff --git a/config/cache.php b/config/cache.php deleted file mode 100644 index 9ddd5f3..0000000 --- a/config/cache.php +++ /dev/null @@ -1,79 +0,0 @@ - env('CACHE_DRIVER', 'file'), - - /* - |-------------------------------------------------------------------------- - | Cache Stores - |-------------------------------------------------------------------------- - | - | Here you may define all of the cache "stores" for your application as - | well as their drivers. You may even define multiple stores for the - | same cache driver to group types of items stored in your caches. - | - */ - - 'stores' => [ - - 'apc' => [ - 'driver' => 'apc' - ], - - 'array' => [ - 'driver' => 'array' - ], - - 'database' => [ - 'driver' => 'database', - 'table' => 'cache', - 'connection' => null, - ], - - 'file' => [ - 'driver' => 'file', - 'path' => storage_path().'/framework/cache', - ], - - 'memcached' => [ - 'driver' => 'memcached', - 'servers' => [ - [ - 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100 - ], - ], - ], - - 'redis' => [ - 'driver' => 'redis', - 'connection' => 'default', - ], - - ], - - /* - |-------------------------------------------------------------------------- - | Cache Key Prefix - |-------------------------------------------------------------------------- - | - | When utilizing a RAM based store such as APC or Memcached, there might - | be other applications utilizing the same cache. So, we'll specify a - | value to get prefixed to all our keys so we can avoid collisions. - | - */ - - 'prefix' => 'laravel', - -]; diff --git a/config/compile.php b/config/compile.php deleted file mode 100644 index 3a002fc..0000000 --- a/config/compile.php +++ /dev/null @@ -1,41 +0,0 @@ - [ - - realpath(__DIR__.'/../app/Providers/AppServiceProvider.php'), - realpath(__DIR__.'/../app/Providers/BusServiceProvider.php'), - realpath(__DIR__.'/../app/Providers/ConfigServiceProvider.php'), - realpath(__DIR__.'/../app/Providers/EventServiceProvider.php'), - realpath(__DIR__.'/../app/Providers/RouteServiceProvider.php'), - - ], - - /* - |-------------------------------------------------------------------------- - | Compiled File Providers - |-------------------------------------------------------------------------- - | - | Here you may list service providers which define a "compiles" function - | that returns additional files that should be compiled, providing an - | easy way to get common files from any packages you are utilizing. - | - */ - - 'providers' => [ - // - ], - -]; diff --git a/config/database.php b/config/database.php deleted file mode 100644 index 54c6db0..0000000 --- a/config/database.php +++ /dev/null @@ -1,125 +0,0 @@ - PDO::FETCH_CLASS, - - /* - |-------------------------------------------------------------------------- - | Default Database Connection Name - |-------------------------------------------------------------------------- - | - | Here you may specify which of the database connections below you wish - | to use as your default connection for all database work. Of course - | you may use many connections at once using the Database library. - | - */ - - 'default' => 'mysql', - - /* - |-------------------------------------------------------------------------- - | Database Connections - |-------------------------------------------------------------------------- - | - | Here are each of the database connections setup for your application. - | Of course, examples of configuring each database platform that is - | supported by Laravel is shown below to make development simple. - | - | - | All database work in Laravel is done through the PHP PDO facilities - | so make sure you have the driver for your particular database of - | choice installed on your machine before you begin development. - | - */ - - 'connections' => [ - - 'sqlite' => [ - 'driver' => 'sqlite', - 'database' => storage_path().'/database.sqlite', - 'prefix' => '', - ], - - 'mysql' => [ - 'driver' => 'mysql', - 'host' => env('DB_HOST', 'localhost'), - 'database' => env('DB_DATABASE', 'forge'), - 'username' => env('DB_USERNAME', 'forge'), - 'password' => env('DB_PASSWORD', ''), - 'charset' => 'utf8', - 'collation' => 'utf8_unicode_ci', - 'prefix' => '', - 'strict' => false, - ], - - 'pgsql' => [ - 'driver' => 'pgsql', - 'host' => env('DB_HOST', 'localhost'), - 'database' => env('DB_DATABASE', 'forge'), - 'username' => env('DB_USERNAME', 'forge'), - 'password' => env('DB_PASSWORD', ''), - 'charset' => 'utf8', - 'prefix' => '', - 'schema' => 'public', - ], - - 'sqlsrv' => [ - 'driver' => 'sqlsrv', - 'host' => env('DB_HOST', 'localhost'), - 'database' => env('DB_DATABASE', 'forge'), - 'username' => env('DB_USERNAME', 'forge'), - 'password' => env('DB_PASSWORD', ''), - 'prefix' => '', - ], - - ], - - /* - |-------------------------------------------------------------------------- - | Migration Repository Table - |-------------------------------------------------------------------------- - | - | This table keeps track of all the migrations that have already run for - | your application. Using this information, we can determine which of - | the migrations on disk haven't actually been run in the database. - | - */ - - 'migrations' => 'migrations', - - /* - |-------------------------------------------------------------------------- - | Redis Databases - |-------------------------------------------------------------------------- - | - | Redis is an open source, fast, and advanced key-value store that also - | provides a richer set of commands than a typical key-value systems - | such as APC or Memcached. Laravel makes it easy to dig right in. - | - */ - - 'redis' => [ - - 'cluster' => false, - - 'default' => [ - 'host' => '127.0.0.1', - 'port' => 6379, - 'database' => 0, - ], - - ], - -]; diff --git a/config/filesystems.php b/config/filesystems.php deleted file mode 100644 index ad8228f..0000000 --- a/config/filesystems.php +++ /dev/null @@ -1,70 +0,0 @@ - 'local', - - /* - |-------------------------------------------------------------------------- - | Default Cloud Filesystem Disk - |-------------------------------------------------------------------------- - | - | Many applications store files both locally and in the cloud. For this - | reason, you may specify a default "cloud" driver here. This driver - | will be bound as the Cloud disk implementation in the container. - | - */ - - 'cloud' => 's3', - - /* - |-------------------------------------------------------------------------- - | Filesystem Disks - |-------------------------------------------------------------------------- - | - | Here you may configure as many filesystem "disks" as you wish, and you - | may even configure multiple disks of the same driver. Defaults have - | been setup for each driver as an example of the required options. - | - */ - - 'disks' => [ - - 'local' => [ - 'driver' => 'local', - 'root' => storage_path().'/app', - ], - - 's3' => [ - 'driver' => 's3', - 'key' => 'your-key', - 'secret' => 'your-secret', - 'region' => 'your-region', - 'bucket' => 'your-bucket', - ], - - 'rackspace' => [ - 'driver' => 'rackspace', - 'username' => 'your-username', - 'key' => 'your-key', - 'container' => 'your-container', - 'endpoint' => 'https://identity.api.rackspacecloud.com/v2.0/', - 'region' => 'IAD', - ], - - ], - -]; diff --git a/config/mail.php b/config/mail.php deleted file mode 100644 index 6f9c954..0000000 --- a/config/mail.php +++ /dev/null @@ -1,124 +0,0 @@ - 'smtp', - - /* - |-------------------------------------------------------------------------- - | SMTP Host Address - |-------------------------------------------------------------------------- - | - | Here you may provide the host address of the SMTP server used by your - | applications. A default option is provided that is compatible with - | the Mailgun mail service which will provide reliable deliveries. - | - */ - - 'host' => 'smtp.mailgun.org', - - /* - |-------------------------------------------------------------------------- - | SMTP Host Port - |-------------------------------------------------------------------------- - | - | This is the SMTP port used by your application to deliver e-mails to - | users of the application. Like the host we have set this value to - | stay compatible with the Mailgun e-mail application by default. - | - */ - - 'port' => 587, - - /* - |-------------------------------------------------------------------------- - | Global "From" Address - |-------------------------------------------------------------------------- - | - | You may wish for all e-mails sent by your application to be sent from - | the same address. Here, you may specify a name and address that is - | used globally for all e-mails that are sent by your application. - | - */ - - 'from' => ['address' => null, 'name' => null], - - /* - |-------------------------------------------------------------------------- - | E-Mail Encryption Protocol - |-------------------------------------------------------------------------- - | - | Here you may specify the encryption protocol that should be used when - | the application send e-mail messages. A sensible default using the - | transport layer security protocol should provide great security. - | - */ - - 'encryption' => 'tls', - - /* - |-------------------------------------------------------------------------- - | SMTP Server Username - |-------------------------------------------------------------------------- - | - | If your SMTP server requires a username for authentication, you should - | set it here. This will get used to authenticate with your server on - | connection. You may also set the "password" value below this one. - | - */ - - 'username' => null, - - /* - |-------------------------------------------------------------------------- - | SMTP Server Password - |-------------------------------------------------------------------------- - | - | Here you may set the password required by your SMTP server to send out - | messages from your application. This will be given to the server on - | connection so that the application will be able to send messages. - | - */ - - 'password' => null, - - /* - |-------------------------------------------------------------------------- - | Sendmail System Path - |-------------------------------------------------------------------------- - | - | When using the "sendmail" driver to send e-mails, we will need to know - | the path to where Sendmail lives on this server. A default path has - | been provided here, which will work well on most of your systems. - | - */ - - 'sendmail' => '/usr/sbin/sendmail -bs', - - /* - |-------------------------------------------------------------------------- - | Mail "Pretend" - |-------------------------------------------------------------------------- - | - | When this option is enabled, e-mail will not actually be sent over the - | web and will instead be written to your application's logs files so - | you may inspect the message. This is great for local development. - | - */ - - 'pretend' => false, - -]; diff --git a/config/queue.php b/config/queue.php deleted file mode 100644 index 9c39a13..0000000 --- a/config/queue.php +++ /dev/null @@ -1,92 +0,0 @@ - env('QUEUE_DRIVER', 'sync'), - - /* - |-------------------------------------------------------------------------- - | Queue Connections - |-------------------------------------------------------------------------- - | - | Here you may configure the connection information for each server that - | is used by your application. A default configuration has been added - | for each back-end shipped with Laravel. You are free to add more. - | - */ - - 'connections' => [ - - 'sync' => [ - 'driver' => 'sync', - ], - - 'database' => [ - 'driver' => 'database', - 'table' => 'jobs', - 'queue' => 'default', - 'expire' => 60, - ], - - 'beanstalkd' => [ - 'driver' => 'beanstalkd', - 'host' => 'localhost', - 'queue' => 'default', - 'ttr' => 60, - ], - - 'sqs' => [ - 'driver' => 'sqs', - 'key' => 'your-public-key', - 'secret' => 'your-secret-key', - 'queue' => 'your-queue-url', - 'region' => 'us-east-1', - ], - - 'iron' => [ - 'driver' => 'iron', - 'host' => 'mq-aws-us-east-1.iron.io', - 'token' => 'your-token', - 'project' => 'your-project-id', - 'queue' => 'your-queue-name', - 'encrypt' => true, - ], - - 'redis' => [ - 'driver' => 'redis', - 'queue' => 'default', - 'expire' => 60, - ], - - ], - - /* - |-------------------------------------------------------------------------- - | Failed Queue Jobs - |-------------------------------------------------------------------------- - | - | These options configure the behavior of failed queue job logging so you - | can control which database and table are used to store the jobs that - | have failed. You may change them to any database / table you wish. - | - */ - - 'failed' => [ - 'database' => 'mysql', 'table' => 'failed_jobs', - ], - -]; diff --git a/config/services.php b/config/services.php deleted file mode 100644 index dddc986..0000000 --- a/config/services.php +++ /dev/null @@ -1,37 +0,0 @@ - [ - 'domain' => '', - 'secret' => '', - ], - - 'mandrill' => [ - 'secret' => '', - ], - - 'ses' => [ - 'key' => '', - 'secret' => '', - 'region' => 'us-east-1', - ], - - 'stripe' => [ - 'model' => 'User', - 'secret' => '', - ], - -]; diff --git a/config/session.php b/config/session.php deleted file mode 100644 index 47470fa..0000000 --- a/config/session.php +++ /dev/null @@ -1,153 +0,0 @@ - env('SESSION_DRIVER', 'file'), - - /* - |-------------------------------------------------------------------------- - | Session Lifetime - |-------------------------------------------------------------------------- - | - | Here you may specify the number of minutes that you wish the session - | to be allowed to remain idle before it expires. If you want them - | to immediately expire on the browser closing, set that option. - | - */ - - 'lifetime' => 120, - - 'expire_on_close' => false, - - /* - |-------------------------------------------------------------------------- - | Session Encryption - |-------------------------------------------------------------------------- - | - | This option allows you to easily specify that all of your session data - | should be encrypted before it is stored. All encryption will be run - | automatically by Laravel and you can use the Session like normal. - | - */ - - 'encrypt' => false, - - /* - |-------------------------------------------------------------------------- - | Session File Location - |-------------------------------------------------------------------------- - | - | When using the native session driver, we need a location where session - | files may be stored. A default has been set for you but a different - | location may be specified. This is only needed for file sessions. - | - */ - - 'files' => storage_path().'/framework/sessions', - - /* - |-------------------------------------------------------------------------- - | Session Database Connection - |-------------------------------------------------------------------------- - | - | When using the "database" or "redis" session drivers, you may specify a - | connection that should be used to manage these sessions. This should - | correspond to a connection in your database configuration options. - | - */ - - 'connection' => null, - - /* - |-------------------------------------------------------------------------- - | Session Database Table - |-------------------------------------------------------------------------- - | - | When using the "database" session driver, you may specify the table we - | should use to manage the sessions. Of course, a sensible default is - | provided for you; however, you are free to change this as needed. - | - */ - - 'table' => 'sessions', - - /* - |-------------------------------------------------------------------------- - | Session Sweeping Lottery - |-------------------------------------------------------------------------- - | - | Some session drivers must manually sweep their storage location to get - | rid of old sessions from storage. Here are the chances that it will - | happen on a given request. By default, the odds are 2 out of 100. - | - */ - - 'lottery' => [2, 100], - - /* - |-------------------------------------------------------------------------- - | Session Cookie Name - |-------------------------------------------------------------------------- - | - | Here you may change the name of the cookie used to identify a session - | instance by ID. The name specified here will get used every time a - | new session cookie is created by the framework for every driver. - | - */ - - 'cookie' => 'laravel_session', - - /* - |-------------------------------------------------------------------------- - | Session Cookie Path - |-------------------------------------------------------------------------- - | - | The session cookie path determines the path for which the cookie will - | be regarded as available. Typically, this will be the root path of - | your application but you are free to change this when necessary. - | - */ - - 'path' => '/', - - /* - |-------------------------------------------------------------------------- - | Session Cookie Domain - |-------------------------------------------------------------------------- - | - | Here you may change the domain of the cookie used to identify a session - | in your application. This will determine which domains the cookie is - | available to in your application. A sensible default has been set. - | - */ - - 'domain' => null, - - /* - |-------------------------------------------------------------------------- - | HTTPS Only Cookies - |-------------------------------------------------------------------------- - | - | By setting this option to true, session cookies will only be sent back - | to the server if the browser has a HTTPS connection. This will keep - | the cookie from being sent to you if it can not be done securely. - | - */ - - 'secure' => false, - -]; diff --git a/config/view.php b/config/view.php deleted file mode 100644 index 88fc534..0000000 --- a/config/view.php +++ /dev/null @@ -1,33 +0,0 @@ - [ - realpath(base_path('resources/views')) - ], - - /* - |-------------------------------------------------------------------------- - | Compiled View Path - |-------------------------------------------------------------------------- - | - | This option determines where all the compiled Blade templates will be - | stored for your application. Typically, this is within the storage - | directory. However, as usual, you are free to change this value. - | - */ - - 'compiled' => realpath(storage_path().'/framework/views'), - -]; diff --git a/database/.gitignore b/database/.gitignore deleted file mode 100644 index 9b1dffd..0000000 --- a/database/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.sqlite diff --git a/database/migrations/.gitkeep b/database/migrations/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php deleted file mode 100644 index 36a1db9..0000000 --- a/database/migrations/2014_10_12_000000_create_users_table.php +++ /dev/null @@ -1,36 +0,0 @@ -increments('id'); - $table->string('name'); - $table->string('email')->unique(); - $table->string('password', 60); - $table->rememberToken(); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::drop('users'); - } - -} diff --git a/database/migrations/2014_10_12_100000_create_password_resets_table.php b/database/migrations/2014_10_12_100000_create_password_resets_table.php deleted file mode 100644 index 679df38..0000000 --- a/database/migrations/2014_10_12_100000_create_password_resets_table.php +++ /dev/null @@ -1,33 +0,0 @@ -string('email')->index(); - $table->string('token')->index(); - $table->timestamp('created_at'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::drop('password_resets'); - } - -} diff --git a/database/seeds/.gitkeep b/database/seeds/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php deleted file mode 100644 index b3c69b5..0000000 --- a/database/seeds/DatabaseSeeder.php +++ /dev/null @@ -1,20 +0,0 @@ -call('UserTableSeeder'); - } - -} diff --git a/public/.htaccess b/public/.htaccess index f0b497b..77827ae 100755 --- a/public/.htaccess +++ b/public/.htaccess @@ -4,7 +4,6 @@ RewriteEngine On - RewriteBase /Module-System/public/ # Redirect Trailing Slashes... RewriteRule ^(.*)/$ /$1 [L,R=301] diff --git a/public/css/style.css b/public/css/style.css index 41312f8..b3361da 100644 --- a/public/css/style.css +++ b/public/css/style.css @@ -266,12 +266,12 @@ body.modal-open, .modal-open .navbar-fixed-top, .modal-open .navbar-fixed-bottom display: inline-block; } .grid-controls li { - max-width: 30%; min-width: 30%; + min-height: 85px; height: 40px; float: left; margin: 5px; - background-color: #33CCFF; + background-color: #24A8D4; } #csvDownload { visibility: hidden; @@ -544,6 +544,7 @@ body.modal-open, .modal-open .navbar-fixed-top, .modal-open .navbar-fixed-bottom .feature-box { padding: 15px; max-width: 293px; + min-width: 136px; min-height: 140px; margin-top: 20px; background: #00CCFF; diff --git a/public/js/main.js b/public/js/main.js index 0b6978b..46db345 100644 --- a/public/js/main.js +++ b/public/js/main.js @@ -92,9 +92,9 @@ $( document ).on('submit', '.electiveRegister', function() { '

    '+ response.lecturer +'


    '+ ''+ ''+ - '
    '+ + ''+ '
    '; - var timeStuff = ""; + var timeStuff = ""; // Insert classBlock to myelectives. $('#myelectives').append(classBlock); @@ -148,7 +148,7 @@ $( document ).on('submit', '.electiveUnregister', function() { if(response.success) { // Remove from myelectives. var myclass = $('.myclass'+electiveId).remove(); - + var tdelete = $('.myclass'+response.classnum).remove(); // Inform user. successMessage("Successfully unregistered from module!"); @@ -279,7 +279,9 @@ $( document ).on('submit', '#classForm', function() { if(response.success) { $('#classleft').val(response.space); successMessage('Class updated successfully!'); - } + } else { + failMessage(response.errors); + } }); @@ -836,7 +838,7 @@ var saveTimes = '
    '+ ''+ 'Save Class Times'; + 'id="saveTime">Save Timetable'; function getTimes(){ times.length = 0; @@ -871,7 +873,7 @@ $("#loadTT").click( function(){ var opt = $('option[value="'+$('#elective').val()+'"]'); if(!opt.length){ - alert('Error: No Elective Selected.') + failMessage('Error: No Elective Selected.') return; } diff --git a/resources/assets/less/app.less b/resources/assets/less/app.less deleted file mode 100644 index 99be076..0000000 --- a/resources/assets/less/app.less +++ /dev/null @@ -1,8 +0,0 @@ -@import "bootstrap/bootstrap"; - -@btn-font-weight: 300; -@font-family-sans-serif: "Roboto", Helvetica, Arial, sans-serif; - -body, label, .checkbox label { - font-weight: 300; -} diff --git a/resources/assets/less/bootstrap/alerts.less b/resources/assets/less/bootstrap/alerts.less deleted file mode 100644 index df070b8..0000000 --- a/resources/assets/less/bootstrap/alerts.less +++ /dev/null @@ -1,68 +0,0 @@ -// -// Alerts -// -------------------------------------------------- - - -// Base styles -// ------------------------- - -.alert { - padding: @alert-padding; - margin-bottom: @line-height-computed; - border: 1px solid transparent; - border-radius: @alert-border-radius; - - // Headings for larger alerts - h4 { - margin-top: 0; - // Specified for the h4 to prevent conflicts of changing @headings-color - color: inherit; - } - // Provide class for links that match alerts - .alert-link { - font-weight: @alert-link-font-weight; - } - - // Improve alignment and spacing of inner content - > p, - > ul { - margin-bottom: 0; - } - > p + p { - margin-top: 5px; - } -} - -// Dismissible alerts -// -// Expand the right padding and account for the close button's positioning. - -.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0. -.alert-dismissible { - padding-right: (@alert-padding + 20); - - // Adjust close link position - .close { - position: relative; - top: -2px; - right: -21px; - color: inherit; - } -} - -// Alternate styles -// -// Generate contextual modifier classes for colorizing the alert. - -.alert-success { - .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text); -} -.alert-info { - .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text); -} -.alert-warning { - .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text); -} -.alert-danger { - .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text); -} diff --git a/resources/assets/less/bootstrap/badges.less b/resources/assets/less/bootstrap/badges.less deleted file mode 100644 index b27c405..0000000 --- a/resources/assets/less/bootstrap/badges.less +++ /dev/null @@ -1,61 +0,0 @@ -// -// Badges -// -------------------------------------------------- - - -// Base class -.badge { - display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: @font-size-small; - font-weight: @badge-font-weight; - color: @badge-color; - line-height: @badge-line-height; - vertical-align: baseline; - white-space: nowrap; - text-align: center; - background-color: @badge-bg; - border-radius: @badge-border-radius; - - // Empty badges collapse automatically (not available in IE8) - &:empty { - display: none; - } - - // Quick fix for badges in buttons - .btn & { - position: relative; - top: -1px; - } - .btn-xs & { - top: 0; - padding: 1px 5px; - } - - // Hover state, but only for links - a& { - &:hover, - &:focus { - color: @badge-link-hover-color; - text-decoration: none; - cursor: pointer; - } - } - - // Account for badges in navs - .list-group-item.active > &, - .nav-pills > .active > a > & { - color: @badge-active-color; - background-color: @badge-active-bg; - } - .list-group-item > & { - float: right; - } - .list-group-item > & + & { - margin-right: 5px; - } - .nav-pills > li > a > & { - margin-left: 3px; - } -} diff --git a/resources/assets/less/bootstrap/bootstrap.less b/resources/assets/less/bootstrap/bootstrap.less deleted file mode 100644 index 61b7747..0000000 --- a/resources/assets/less/bootstrap/bootstrap.less +++ /dev/null @@ -1,50 +0,0 @@ -// Core variables and mixins -@import "variables.less"; -@import "mixins.less"; - -// Reset and dependencies -@import "normalize.less"; -@import "print.less"; -@import "glyphicons.less"; - -// Core CSS -@import "scaffolding.less"; -@import "type.less"; -@import "code.less"; -@import "grid.less"; -@import "tables.less"; -@import "forms.less"; -@import "buttons.less"; - -// Components -@import "component-animations.less"; -@import "dropdowns.less"; -@import "button-groups.less"; -@import "input-groups.less"; -@import "navs.less"; -@import "navbar.less"; -@import "breadcrumbs.less"; -@import "pagination.less"; -@import "pager.less"; -@import "labels.less"; -@import "badges.less"; -@import "jumbotron.less"; -@import "thumbnails.less"; -@import "alerts.less"; -@import "progress-bars.less"; -@import "media.less"; -@import "list-group.less"; -@import "panels.less"; -@import "responsive-embed.less"; -@import "wells.less"; -@import "close.less"; - -// Components w/ JavaScript -@import "modals.less"; -@import "tooltip.less"; -@import "popovers.less"; -@import "carousel.less"; - -// Utility classes -@import "utilities.less"; -@import "responsive-utilities.less"; diff --git a/resources/assets/less/bootstrap/breadcrumbs.less b/resources/assets/less/bootstrap/breadcrumbs.less deleted file mode 100644 index cb01d50..0000000 --- a/resources/assets/less/bootstrap/breadcrumbs.less +++ /dev/null @@ -1,26 +0,0 @@ -// -// Breadcrumbs -// -------------------------------------------------- - - -.breadcrumb { - padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal; - margin-bottom: @line-height-computed; - list-style: none; - background-color: @breadcrumb-bg; - border-radius: @border-radius-base; - - > li { - display: inline-block; - - + li:before { - content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space - padding: 0 5px; - color: @breadcrumb-color; - } - } - - > .active { - color: @breadcrumb-active-color; - } -} diff --git a/resources/assets/less/bootstrap/button-groups.less b/resources/assets/less/bootstrap/button-groups.less deleted file mode 100644 index f84febb..0000000 --- a/resources/assets/less/bootstrap/button-groups.less +++ /dev/null @@ -1,243 +0,0 @@ -// -// Button groups -// -------------------------------------------------- - -// Make the div behave like a button -.btn-group, -.btn-group-vertical { - position: relative; - display: inline-block; - vertical-align: middle; // match .btn alignment given font-size hack above - > .btn { - position: relative; - float: left; - // Bring the "active" button to the front - &:hover, - &:focus, - &:active, - &.active { - z-index: 2; - } - } -} - -// Prevent double borders when buttons are next to each other -.btn-group { - .btn + .btn, - .btn + .btn-group, - .btn-group + .btn, - .btn-group + .btn-group { - margin-left: -1px; - } -} - -// Optional: Group multiple button groups together for a toolbar -.btn-toolbar { - margin-left: -5px; // Offset the first child's margin - &:extend(.clearfix all); - - .btn-group, - .input-group { - float: left; - } - > .btn, - > .btn-group, - > .input-group { - margin-left: 5px; - } -} - -.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { - border-radius: 0; -} - -// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match -.btn-group > .btn:first-child { - margin-left: 0; - &:not(:last-child):not(.dropdown-toggle) { - .border-right-radius(0); - } -} -// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it -.btn-group > .btn:last-child:not(:first-child), -.btn-group > .dropdown-toggle:not(:first-child) { - .border-left-radius(0); -} - -// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group) -.btn-group > .btn-group { - float: left; -} -.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group > .btn-group:first-child { - > .btn:last-child, - > .dropdown-toggle { - .border-right-radius(0); - } -} -.btn-group > .btn-group:last-child > .btn:first-child { - .border-left-radius(0); -} - -// On active and open, don't show outline -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; -} - - -// Sizing -// -// Remix the default button sizing classes into new ones for easier manipulation. - -.btn-group-xs > .btn { &:extend(.btn-xs); } -.btn-group-sm > .btn { &:extend(.btn-sm); } -.btn-group-lg > .btn { &:extend(.btn-lg); } - - -// Split button dropdowns -// ---------------------- - -// Give the line between buttons some depth -.btn-group > .btn + .dropdown-toggle { - padding-left: 8px; - padding-right: 8px; -} -.btn-group > .btn-lg + .dropdown-toggle { - padding-left: 12px; - padding-right: 12px; -} - -// The clickable button for toggling the menu -// Remove the gradient and set the same inset shadow as the :active state -.btn-group.open .dropdown-toggle { - .box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); - - // Show no shadow for `.btn-link` since it has no other button styles. - &.btn-link { - .box-shadow(none); - } -} - - -// Reposition the caret -.btn .caret { - margin-left: 0; -} -// Carets in other button sizes -.btn-lg .caret { - border-width: @caret-width-large @caret-width-large 0; - border-bottom-width: 0; -} -// Upside down carets for .dropup -.dropup .btn-lg .caret { - border-width: 0 @caret-width-large @caret-width-large; -} - - -// Vertical button groups -// ---------------------- - -.btn-group-vertical { - > .btn, - > .btn-group, - > .btn-group > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; - } - - // Clear floats so dropdown menus can be properly placed - > .btn-group { - &:extend(.clearfix all); - > .btn { - float: none; - } - } - - > .btn + .btn, - > .btn + .btn-group, - > .btn-group + .btn, - > .btn-group + .btn-group { - margin-top: -1px; - margin-left: 0; - } -} - -.btn-group-vertical > .btn { - &:not(:first-child):not(:last-child) { - border-radius: 0; - } - &:first-child:not(:last-child) { - border-top-right-radius: @border-radius-base; - .border-bottom-radius(0); - } - &:last-child:not(:first-child) { - border-bottom-left-radius: @border-radius-base; - .border-top-radius(0); - } -} -.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group-vertical > .btn-group:first-child:not(:last-child) { - > .btn:last-child, - > .dropdown-toggle { - .border-bottom-radius(0); - } -} -.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { - .border-top-radius(0); -} - - -// Justified button groups -// ---------------------- - -.btn-group-justified { - display: table; - width: 100%; - table-layout: fixed; - border-collapse: separate; - > .btn, - > .btn-group { - float: none; - display: table-cell; - width: 1%; - } - > .btn-group .btn { - width: 100%; - } - - > .btn-group .dropdown-menu { - left: auto; - } -} - - -// Checkbox and radio options -// -// In order to support the browser's form validation feedback, powered by the -// `required` attribute, we have to "hide" the inputs via `clip`. We cannot use -// `display: none;` or `visibility: hidden;` as that also hides the popover. -// Simply visually hiding the inputs via `opacity` would leave them clickable in -// certain cases which is prevented by using `clip` and `pointer-events`. -// This way, we ensure a DOM element is visible to position the popover from. -// -// See https://github.com/twbs/bootstrap/pull/12794 and -// https://github.com/twbs/bootstrap/pull/14559 for more information. - -[data-toggle="buttons"] { - > .btn, - > .btn-group > .btn { - input[type="radio"], - input[type="checkbox"] { - position: absolute; - clip: rect(0,0,0,0); - pointer-events: none; - } - } -} diff --git a/resources/assets/less/bootstrap/buttons.less b/resources/assets/less/bootstrap/buttons.less deleted file mode 100644 index 40553c6..0000000 --- a/resources/assets/less/bootstrap/buttons.less +++ /dev/null @@ -1,160 +0,0 @@ -// -// Buttons -// -------------------------------------------------- - - -// Base styles -// -------------------------------------------------- - -.btn { - display: inline-block; - margin-bottom: 0; // For input.btn - font-weight: @btn-font-weight; - text-align: center; - vertical-align: middle; - touch-action: manipulation; - cursor: pointer; - background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 - border: 1px solid transparent; - white-space: nowrap; - .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @border-radius-base); - .user-select(none); - - &, - &:active, - &.active { - &:focus, - &.focus { - .tab-focus(); - } - } - - &:hover, - &:focus, - &.focus { - color: @btn-default-color; - text-decoration: none; - } - - &:active, - &.active { - outline: 0; - background-image: none; - .box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); - } - - &.disabled, - &[disabled], - fieldset[disabled] & { - cursor: @cursor-disabled; - pointer-events: none; // Future-proof disabling of clicks - .opacity(.65); - .box-shadow(none); - } -} - - -// Alternate buttons -// -------------------------------------------------- - -.btn-default { - .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border); -} -.btn-primary { - .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border); -} -// Success appears as green -.btn-success { - .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border); -} -// Info appears as blue-green -.btn-info { - .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border); -} -// Warning appears as orange -.btn-warning { - .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border); -} -// Danger and error appear as red -.btn-danger { - .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border); -} - - -// Link buttons -// ------------------------- - -// Make a button look and behave like a link -.btn-link { - color: @link-color; - font-weight: normal; - border-radius: 0; - - &, - &:active, - &.active, - &[disabled], - fieldset[disabled] & { - background-color: transparent; - .box-shadow(none); - } - &, - &:hover, - &:focus, - &:active { - border-color: transparent; - } - &:hover, - &:focus { - color: @link-hover-color; - text-decoration: underline; - background-color: transparent; - } - &[disabled], - fieldset[disabled] & { - &:hover, - &:focus { - color: @btn-link-disabled-color; - text-decoration: none; - } - } -} - - -// Button Sizes -// -------------------------------------------------- - -.btn-lg { - // line-height: ensure even-numbered height of button next to large input - .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large); -} -.btn-sm { - // line-height: ensure proper height of button next to small input - .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small); -} -.btn-xs { - .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @border-radius-small); -} - - -// Block button -// -------------------------------------------------- - -.btn-block { - display: block; - width: 100%; -} - -// Vertically space out multiple block buttons -.btn-block + .btn-block { - margin-top: 5px; -} - -// Specificity overrides -input[type="submit"], -input[type="reset"], -input[type="button"] { - &.btn-block { - width: 100%; - } -} diff --git a/resources/assets/less/bootstrap/carousel.less b/resources/assets/less/bootstrap/carousel.less deleted file mode 100644 index 5724d8a..0000000 --- a/resources/assets/less/bootstrap/carousel.less +++ /dev/null @@ -1,267 +0,0 @@ -// -// Carousel -// -------------------------------------------------- - - -// Wrapper for the slide container and indicators -.carousel { - position: relative; -} - -.carousel-inner { - position: relative; - overflow: hidden; - width: 100%; - - > .item { - display: none; - position: relative; - .transition(.6s ease-in-out left); - - // Account for jankitude on images - > img, - > a > img { - &:extend(.img-responsive); - line-height: 1; - } - - // WebKit CSS3 transforms for supported devices - @media all and (transform-3d), (-webkit-transform-3d) { - transition: transform .6s ease-in-out; - backface-visibility: hidden; - perspective: 1000; - - &.next, - &.active.right { - transform: translate3d(100%, 0, 0); - left: 0; - } - &.prev, - &.active.left { - transform: translate3d(-100%, 0, 0); - left: 0; - } - &.next.left, - &.prev.right, - &.active { - transform: translate3d(0, 0, 0); - left: 0; - } - } - } - - > .active, - > .next, - > .prev { - display: block; - } - - > .active { - left: 0; - } - - > .next, - > .prev { - position: absolute; - top: 0; - width: 100%; - } - - > .next { - left: 100%; - } - > .prev { - left: -100%; - } - > .next.left, - > .prev.right { - left: 0; - } - - > .active.left { - left: -100%; - } - > .active.right { - left: 100%; - } - -} - -// Left/right controls for nav -// --------------------------- - -.carousel-control { - position: absolute; - top: 0; - left: 0; - bottom: 0; - width: @carousel-control-width; - .opacity(@carousel-control-opacity); - font-size: @carousel-control-font-size; - color: @carousel-control-color; - text-align: center; - text-shadow: @carousel-text-shadow; - // We can't have this transition here because WebKit cancels the carousel - // animation if you trip this while in the middle of another animation. - - // Set gradients for backgrounds - &.left { - #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001)); - } - &.right { - left: auto; - right: 0; - #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5)); - } - - // Hover/focus state - &:hover, - &:focus { - outline: 0; - color: @carousel-control-color; - text-decoration: none; - .opacity(.9); - } - - // Toggles - .icon-prev, - .icon-next, - .glyphicon-chevron-left, - .glyphicon-chevron-right { - position: absolute; - top: 50%; - z-index: 5; - display: inline-block; - } - .icon-prev, - .glyphicon-chevron-left { - left: 50%; - margin-left: -10px; - } - .icon-next, - .glyphicon-chevron-right { - right: 50%; - margin-right: -10px; - } - .icon-prev, - .icon-next { - width: 20px; - height: 20px; - margin-top: -10px; - font-family: serif; - } - - - .icon-prev { - &:before { - content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039) - } - } - .icon-next { - &:before { - content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A) - } - } -} - -// Optional indicator pips -// -// Add an unordered list with the following class and add a list item for each -// slide your carousel holds. - -.carousel-indicators { - position: absolute; - bottom: 10px; - left: 50%; - z-index: 15; - width: 60%; - margin-left: -30%; - padding-left: 0; - list-style: none; - text-align: center; - - li { - display: inline-block; - width: 10px; - height: 10px; - margin: 1px; - text-indent: -999px; - border: 1px solid @carousel-indicator-border-color; - border-radius: 10px; - cursor: pointer; - - // IE8-9 hack for event handling - // - // Internet Explorer 8-9 does not support clicks on elements without a set - // `background-color`. We cannot use `filter` since that's not viewed as a - // background color by the browser. Thus, a hack is needed. - // - // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we - // set alpha transparency for the best results possible. - background-color: #000 \9; // IE8 - background-color: rgba(0,0,0,0); // IE9 - } - .active { - margin: 0; - width: 12px; - height: 12px; - background-color: @carousel-indicator-active-bg; - } -} - -// Optional captions -// ----------------------------- -// Hidden by default for smaller viewports -.carousel-caption { - position: absolute; - left: 15%; - right: 15%; - bottom: 20px; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: @carousel-caption-color; - text-align: center; - text-shadow: @carousel-text-shadow; - & .btn { - text-shadow: none; // No shadow for button elements in carousel-caption - } -} - - -// Scale up controls for tablets and up -@media screen and (min-width: @screen-sm-min) { - - // Scale up the controls a smidge - .carousel-control { - .glyphicon-chevron-left, - .glyphicon-chevron-right, - .icon-prev, - .icon-next { - width: 30px; - height: 30px; - margin-top: -15px; - font-size: 30px; - } - .glyphicon-chevron-left, - .icon-prev { - margin-left: -15px; - } - .glyphicon-chevron-right, - .icon-next { - margin-right: -15px; - } - } - - // Show and left align the captions - .carousel-caption { - left: 20%; - right: 20%; - padding-bottom: 30px; - } - - // Move up the indicators - .carousel-indicators { - bottom: 20px; - } -} diff --git a/resources/assets/less/bootstrap/close.less b/resources/assets/less/bootstrap/close.less deleted file mode 100644 index 9b4e74f..0000000 --- a/resources/assets/less/bootstrap/close.less +++ /dev/null @@ -1,33 +0,0 @@ -// -// Close icons -// -------------------------------------------------- - - -.close { - float: right; - font-size: (@font-size-base * 1.5); - font-weight: @close-font-weight; - line-height: 1; - color: @close-color; - text-shadow: @close-text-shadow; - .opacity(.2); - - &:hover, - &:focus { - color: @close-color; - text-decoration: none; - cursor: pointer; - .opacity(.5); - } - - // Additional properties for button version - // iOS requires the button element instead of an anchor tag. - // If you want the anchor version, it requires `href="#"`. - button& { - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; - } -} diff --git a/resources/assets/less/bootstrap/code.less b/resources/assets/less/bootstrap/code.less deleted file mode 100644 index a08b4d4..0000000 --- a/resources/assets/less/bootstrap/code.less +++ /dev/null @@ -1,69 +0,0 @@ -// -// Code (inline and block) -// -------------------------------------------------- - - -// Inline and block code styles -code, -kbd, -pre, -samp { - font-family: @font-family-monospace; -} - -// Inline code -code { - padding: 2px 4px; - font-size: 90%; - color: @code-color; - background-color: @code-bg; - border-radius: @border-radius-base; -} - -// User input typically entered via keyboard -kbd { - padding: 2px 4px; - font-size: 90%; - color: @kbd-color; - background-color: @kbd-bg; - border-radius: @border-radius-small; - box-shadow: inset 0 -1px 0 rgba(0,0,0,.25); - - kbd { - padding: 0; - font-size: 100%; - font-weight: bold; - box-shadow: none; - } -} - -// Blocks of code -pre { - display: block; - padding: ((@line-height-computed - 1) / 2); - margin: 0 0 (@line-height-computed / 2); - font-size: (@font-size-base - 1); // 14px to 13px - line-height: @line-height-base; - word-break: break-all; - word-wrap: break-word; - color: @pre-color; - background-color: @pre-bg; - border: 1px solid @pre-border-color; - border-radius: @border-radius-base; - - // Account for some code outputs that place code tags in pre tags - code { - padding: 0; - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; - border-radius: 0; - } -} - -// Enable scrollable blocks of code -.pre-scrollable { - max-height: @pre-scrollable-max-height; - overflow-y: scroll; -} diff --git a/resources/assets/less/bootstrap/component-animations.less b/resources/assets/less/bootstrap/component-animations.less deleted file mode 100644 index 967715d..0000000 --- a/resources/assets/less/bootstrap/component-animations.less +++ /dev/null @@ -1,34 +0,0 @@ -// -// Component animations -// -------------------------------------------------- - -// Heads up! -// -// We don't use the `.opacity()` mixin here since it causes a bug with text -// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552. - -.fade { - opacity: 0; - .transition(opacity .15s linear); - &.in { - opacity: 1; - } -} - -.collapse { - display: none; - visibility: hidden; - - &.in { display: block; visibility: visible; } - tr&.in { display: table-row; } - tbody&.in { display: table-row-group; } -} - -.collapsing { - position: relative; - height: 0; - overflow: hidden; - .transition-property(~"height, visibility"); - .transition-duration(.35s); - .transition-timing-function(ease); -} diff --git a/resources/assets/less/bootstrap/dropdowns.less b/resources/assets/less/bootstrap/dropdowns.less deleted file mode 100644 index 84a48c1..0000000 --- a/resources/assets/less/bootstrap/dropdowns.less +++ /dev/null @@ -1,213 +0,0 @@ -// -// Dropdown menus -// -------------------------------------------------- - - -// Dropdown arrow/caret -.caret { - display: inline-block; - width: 0; - height: 0; - margin-left: 2px; - vertical-align: middle; - border-top: @caret-width-base solid; - border-right: @caret-width-base solid transparent; - border-left: @caret-width-base solid transparent; -} - -// The dropdown wrapper (div) -.dropdown { - position: relative; -} - -// Prevent the focus on the dropdown toggle when closing dropdowns -.dropdown-toggle:focus { - outline: 0; -} - -// The dropdown menu (ul) -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: @zindex-dropdown; - display: none; // none by default, but block on "open" of the menu - float: left; - min-width: 160px; - padding: 5px 0; - margin: 2px 0 0; // override default ul - list-style: none; - font-size: @font-size-base; - text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer) - background-color: @dropdown-bg; - border: 1px solid @dropdown-fallback-border; // IE8 fallback - border: 1px solid @dropdown-border; - border-radius: @border-radius-base; - .box-shadow(0 6px 12px rgba(0,0,0,.175)); - background-clip: padding-box; - - // Aligns the dropdown menu to right - // - // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]` - &.pull-right { - right: 0; - left: auto; - } - - // Dividers (basically an hr) within the dropdown - .divider { - .nav-divider(@dropdown-divider-bg); - } - - // Links within the dropdown menu - > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: @line-height-base; - color: @dropdown-link-color; - white-space: nowrap; // prevent links from randomly breaking onto new lines - } -} - -// Hover/Focus state -.dropdown-menu > li > a { - &:hover, - &:focus { - text-decoration: none; - color: @dropdown-link-hover-color; - background-color: @dropdown-link-hover-bg; - } -} - -// Active state -.dropdown-menu > .active > a { - &, - &:hover, - &:focus { - color: @dropdown-link-active-color; - text-decoration: none; - outline: 0; - background-color: @dropdown-link-active-bg; - } -} - -// Disabled state -// -// Gray out text and ensure the hover/focus state remains gray - -.dropdown-menu > .disabled > a { - &, - &:hover, - &:focus { - color: @dropdown-link-disabled-color; - } - - // Nuke hover/focus effects - &:hover, - &:focus { - text-decoration: none; - background-color: transparent; - background-image: none; // Remove CSS gradient - .reset-filter(); - cursor: @cursor-disabled; - } -} - -// Open state for the dropdown -.open { - // Show the menu - > .dropdown-menu { - display: block; - } - - // Remove the outline when :focus is triggered - > a { - outline: 0; - } -} - -// Menu positioning -// -// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown -// menu with the parent. -.dropdown-menu-right { - left: auto; // Reset the default from `.dropdown-menu` - right: 0; -} -// With v3, we enabled auto-flipping if you have a dropdown within a right -// aligned nav component. To enable the undoing of that, we provide an override -// to restore the default dropdown menu alignment. -// -// This is only for left-aligning a dropdown menu within a `.navbar-right` or -// `.pull-right` nav component. -.dropdown-menu-left { - left: 0; - right: auto; -} - -// Dropdown section headers -.dropdown-header { - display: block; - padding: 3px 20px; - font-size: @font-size-small; - line-height: @line-height-base; - color: @dropdown-header-color; - white-space: nowrap; // as with > li > a -} - -// Backdrop to catch body clicks on mobile, etc. -.dropdown-backdrop { - position: fixed; - left: 0; - right: 0; - bottom: 0; - top: 0; - z-index: (@zindex-dropdown - 10); -} - -// Right aligned dropdowns -.pull-right > .dropdown-menu { - right: 0; - left: auto; -} - -// Allow for dropdowns to go bottom up (aka, dropup-menu) -// -// Just add .dropup after the standard .dropdown class and you're set, bro. -// TODO: abstract this so that the navbar fixed styles are not placed here? - -.dropup, -.navbar-fixed-bottom .dropdown { - // Reverse the caret - .caret { - border-top: 0; - border-bottom: @caret-width-base solid; - content: ""; - } - // Different positioning for bottom up menu - .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 1px; - } -} - - -// Component alignment -// -// Reiterate per navbar.less and the modified component alignment there. - -@media (min-width: @grid-float-breakpoint) { - .navbar-right { - .dropdown-menu { - .dropdown-menu-right(); - } - // Necessary for overrides of the default right aligned menu. - // Will remove come v4 in all likelihood. - .dropdown-menu-left { - .dropdown-menu-left(); - } - } -} diff --git a/resources/assets/less/bootstrap/forms.less b/resources/assets/less/bootstrap/forms.less deleted file mode 100644 index 1bcc2b6..0000000 --- a/resources/assets/less/bootstrap/forms.less +++ /dev/null @@ -1,546 +0,0 @@ -// -// Forms -// -------------------------------------------------- - - -// Normalize non-controls -// -// Restyle and baseline non-control form elements. - -fieldset { - padding: 0; - margin: 0; - border: 0; - // Chrome and Firefox set a `min-width: min-content;` on fieldsets, - // so we reset that to ensure it behaves more like a standard block element. - // See https://github.com/twbs/bootstrap/issues/12359. - min-width: 0; -} - -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: @line-height-computed; - font-size: (@font-size-base * 1.5); - line-height: inherit; - color: @legend-color; - border: 0; - border-bottom: 1px solid @legend-border-color; -} - -label { - display: inline-block; - max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141) - margin-bottom: 5px; - font-weight: bold; -} - - -// Normalize form controls -// -// While most of our form styles require extra classes, some basic normalization -// is required to ensure optimum display with or without those classes to better -// address browser inconsistencies. - -// Override content-box in Normalize (* isn't specific enough) -input[type="search"] { - .box-sizing(border-box); -} - -// Position radios and checkboxes better -input[type="radio"], -input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; // IE8-9 - line-height: normal; -} - -// Set the height of file controls to match text inputs -input[type="file"] { - display: block; -} - -// Make range inputs behave like textual form controls -input[type="range"] { - display: block; - width: 100%; -} - -// Make multiple select elements height not fixed -select[multiple], -select[size] { - height: auto; -} - -// Focus for file, radio, and checkbox -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus { - .tab-focus(); -} - -// Adjust output element -output { - display: block; - padding-top: (@padding-base-vertical + 1); - font-size: @font-size-base; - line-height: @line-height-base; - color: @input-color; -} - - -// Common form controls -// -// Shared size and type resets for form controls. Apply `.form-control` to any -// of the following form controls: -// -// select -// textarea -// input[type="text"] -// input[type="password"] -// input[type="datetime"] -// input[type="datetime-local"] -// input[type="date"] -// input[type="month"] -// input[type="time"] -// input[type="week"] -// input[type="number"] -// input[type="email"] -// input[type="url"] -// input[type="search"] -// input[type="tel"] -// input[type="color"] - -.form-control { - display: block; - width: 100%; - height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border) - padding: @padding-base-vertical @padding-base-horizontal; - font-size: @font-size-base; - line-height: @line-height-base; - color: @input-color; - background-color: @input-bg; - background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 - border: 1px solid @input-border; - border-radius: @input-border-radius; - .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); - .transition(~"border-color ease-in-out .15s, box-shadow ease-in-out .15s"); - - // Customize the `:focus` state to imitate native WebKit styles. - .form-control-focus(); - - // Placeholder - .placeholder(); - - // Disabled and read-only inputs - // - // HTML5 says that controls under a fieldset > legend:first-child won't be - // disabled if the fieldset is disabled. Due to implementation difficulty, we - // don't honor that edge case; we style them as disabled anyway. - &[disabled], - &[readonly], - fieldset[disabled] & { - cursor: @cursor-disabled; - background-color: @input-bg-disabled; - opacity: 1; // iOS fix for unreadable disabled content - } - - // Reset height for `textarea`s - textarea& { - height: auto; - } -} - - -// Search inputs in iOS -// -// This overrides the extra rounded corners on search inputs in iOS so that our -// `.form-control` class can properly style them. Note that this cannot simply -// be added to `.form-control` as it's not specific enough. For details, see -// https://github.com/twbs/bootstrap/issues/11586. - -input[type="search"] { - -webkit-appearance: none; -} - - -// Special styles for iOS temporal inputs -// -// In Mobile Safari, setting `display: block` on temporal inputs causes the -// text within the input to become vertically misaligned. As a workaround, we -// set a pixel line-height that matches the given height of the input, but only -// for Safari. - -@media screen and (-webkit-min-device-pixel-ratio: 0) { - input[type="date"], - input[type="time"], - input[type="datetime-local"], - input[type="month"] { - line-height: @input-height-base; - } - input[type="date"].input-sm, - input[type="time"].input-sm, - input[type="datetime-local"].input-sm, - input[type="month"].input-sm { - line-height: @input-height-small; - } - input[type="date"].input-lg, - input[type="time"].input-lg, - input[type="datetime-local"].input-lg, - input[type="month"].input-lg { - line-height: @input-height-large; - } -} - - -// Form groups -// -// Designed to help with the organization and spacing of vertical forms. For -// horizontal forms, use the predefined grid classes. - -.form-group { - margin-bottom: 15px; -} - - -// Checkboxes and radios -// -// Indent the labels to position radios/checkboxes as hanging controls. - -.radio, -.checkbox { - position: relative; - display: block; - margin-top: 10px; - margin-bottom: 10px; - - label { - min-height: @line-height-computed; // Ensure the input doesn't jump when there is no text - padding-left: 20px; - margin-bottom: 0; - font-weight: normal; - cursor: pointer; - } -} -.radio input[type="radio"], -.radio-inline input[type="radio"], -.checkbox input[type="checkbox"], -.checkbox-inline input[type="checkbox"] { - position: absolute; - margin-left: -20px; - margin-top: 4px \9; -} - -.radio + .radio, -.checkbox + .checkbox { - margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing -} - -// Radios and checkboxes on same line -.radio-inline, -.checkbox-inline { - display: inline-block; - padding-left: 20px; - margin-bottom: 0; - vertical-align: middle; - font-weight: normal; - cursor: pointer; -} -.radio-inline + .radio-inline, -.checkbox-inline + .checkbox-inline { - margin-top: 0; - margin-left: 10px; // space out consecutive inline controls -} - -// Apply same disabled cursor tweak as for inputs -// Some special care is needed because