├── .editorconfig ├── .env.example ├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md └── PULL_REQUEST_TEMPLATE │ └── pull_request_template.md ├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── SECURITY.md ├── app ├── Console │ ├── Commands │ │ ├── Admin │ │ │ ├── Bower.php │ │ │ ├── Gulp.php │ │ │ ├── Npm.php │ │ │ └── Yarn.php │ │ ├── Database │ │ │ ├── MigrateFresh.php │ │ │ └── TruncateTable.php │ │ ├── Dictionary │ │ │ ├── LangClean.php │ │ │ ├── LangExport.php │ │ │ ├── LangImport.php │ │ │ └── LangSync.php │ │ └── ProjectInstall.php │ └── Kernel.php ├── Exceptions │ └── Handler.php ├── Http │ ├── Controller.php │ ├── Kernel.php │ ├── Middleware │ │ ├── Authenticate.php │ │ ├── CheckForMaintenanceMode.php │ │ ├── EncryptCookies.php │ │ ├── TrimStrings.php │ │ ├── TrustProxies.php │ │ └── VerifyCsrfToken.php │ └── Request.php ├── Models │ ├── Blog │ │ ├── BlogCategory.php │ │ ├── BlogItem.php │ │ └── BlogItemComment.php │ ├── Codelist │ │ ├── CodelistGroup.php │ │ └── CodelistItem.php │ ├── Content │ │ ├── Content.php │ │ ├── Menu.php │ │ └── Plugin.php │ ├── Page │ │ ├── Attributes.php │ │ ├── Helpers.php │ │ ├── Page.php │ │ └── Relations.php │ ├── Promotion │ │ ├── PromotionCategory.php │ │ └── PromotionItem.php │ ├── System │ │ ├── Dictionary.php │ │ ├── Language.php │ │ ├── Scopes │ │ │ └── SortableScope.php │ │ ├── Traits │ │ │ ├── HiddenFilter.php │ │ │ └── Sortable.php │ │ └── Url.php │ ├── Task.php │ └── User │ │ ├── Manager.php │ │ ├── Permission.php │ │ ├── Role.php │ │ ├── Traits │ │ ├── ManagerRoles.php │ │ ├── UserHelpers.php │ │ └── UserRoles.php │ │ └── User.php ├── Providers │ ├── AppServiceProvider.php │ ├── AuthServiceProvider.php │ ├── BroadcastServiceProvider.php │ ├── ComposerServiceProvider.php │ ├── EventServiceProvider.php │ └── RouteServiceProvider.php └── Utils │ ├── Flash.php │ ├── Imageable.php │ ├── MenuBuilder.php │ ├── debug.php │ └── helpers.php ├── artisan ├── bootstrap ├── app.php └── cache │ └── .gitignore ├── composer.json ├── composer.lock ├── config ├── analytics.php ├── app.php ├── auth.php ├── broadcasting.php ├── cache.php ├── database.php ├── filesystems.php ├── hashing.php ├── images.php ├── javascript.php ├── lfm.php ├── logging.php ├── login.php ├── mail.php ├── numencode.php ├── queue.php ├── services.php ├── session.php ├── translatable.php └── view.php ├── database ├── .gitignore ├── factories │ ├── ManagerFactory.php │ ├── TaskFactory.php │ └── UserFactory.php ├── migrations │ ├── 2014_10_12_000000_create_users_table.php │ ├── 2014_10_12_100000_create_password_resets_table.php │ ├── 2015_01_15_000000_create_managers_table.php │ ├── 2015_12_13_000000_create_roles_table.php │ ├── 2016_02_18_000000_create_tasks_table.php │ ├── 2016_09_20_000000_create_pages_table.php │ ├── 2016_10_01_000000_create_contents_table.php │ ├── 2016_10_02_000000_create_plugins_table.php │ ├── 2016_10_10_000000_create_routes_table.php │ ├── 2016_10_18_000000_create_codelist_table.php │ ├── 2016_10_18_000000_create_menus_table.php │ ├── 2017_04_11_000000_create_dictionary_table.php │ ├── 2017_04_19_000000_create_languages_table.php │ ├── 2017_05_06_000000_create_blog_table.php │ └── 2017_05_16_000000_create_promotion_table.php └── seeds │ ├── BlogTableSeeder.php │ ├── CodelistTableSeeder.php │ ├── ContentsTableSeeder.php │ ├── DatabaseSeeder.php │ ├── LanguagesTableSeeder.php │ ├── ManagersTableSeeder.php │ ├── MenusTableSeeder.php │ ├── PagesTableSeeder.php │ ├── PermissionsTableSeeder.php │ ├── PluginsTableSeeder.php │ ├── PromotionTableSeeder.php │ ├── RoleManagerTableSeeder.php │ ├── RolePermissionTableSeeder.php │ ├── RoleUserTableSeeder.php │ ├── RolesTableSeeder.php │ ├── RoutesTableSeeder.php │ ├── TasksTableSeeder.php │ └── UsersTableSeeder.php ├── modules ├── Admin │ ├── Http │ │ ├── Auth │ │ │ └── LoginController.php │ │ ├── BaseController.php │ │ ├── BlogController.php │ │ ├── CodelistController.php │ │ ├── ContentController.php │ │ ├── DashboardController.php │ │ ├── DictionaryController.php │ │ ├── LanguageController.php │ │ ├── ManagerController.php │ │ ├── MenuController.php │ │ ├── Middleware │ │ │ ├── CheckPermission.php │ │ │ ├── IsAdmin.php │ │ │ └── Translation.php │ │ ├── PageController.php │ │ ├── PermissionController.php │ │ ├── PluginController.php │ │ ├── PromotionController.php │ │ ├── Requests │ │ │ └── LoginRequest.php │ │ ├── RoleController.php │ │ ├── TaskController.php │ │ ├── UserController.php │ │ └── ViewComposers │ │ │ └── PageComposer.php │ ├── Repositories │ │ ├── DashboardRepository.php │ │ ├── ManagerRepository.php │ │ ├── PluginRepository.php │ │ ├── RouteRepository.php │ │ └── UserRepository.php │ └── Resources │ │ ├── assets │ │ ├── js │ │ │ ├── app.js │ │ │ ├── form.js │ │ │ ├── general.js │ │ │ ├── http.js │ │ │ └── init.js │ │ ├── jstree │ │ │ ├── base.less │ │ │ ├── custom.less │ │ │ ├── images │ │ │ │ ├── 32px.png │ │ │ │ ├── folder.png │ │ │ │ ├── new.png │ │ │ │ ├── page.png │ │ │ │ └── throbber.gif │ │ │ ├── main.less │ │ │ ├── mixins.less │ │ │ ├── responsive.less │ │ │ └── style.less │ │ ├── sass │ │ │ ├── _base.scss │ │ │ ├── _components.scss │ │ │ ├── _custom.scss │ │ │ ├── _elements.scss │ │ │ ├── _media.scss │ │ │ ├── _menu.scss │ │ │ ├── _mixins.scss │ │ │ ├── _preloader.scss │ │ │ ├── _skins.scss │ │ │ ├── _typography.scss │ │ │ ├── _variables.scss │ │ │ └── style.scss │ │ └── vendor │ │ │ ├── .gitignore │ │ │ ├── fonts │ │ │ ├── Material-Design-Iconic-Font.eot │ │ │ ├── Material-Design-Iconic-Font.svg │ │ │ ├── Material-Design-Iconic-Font.ttf │ │ │ ├── Material-Design-Iconic-Font.woff │ │ │ └── Material-Design-Iconic-Font.woff2 │ │ │ ├── images │ │ │ ├── favicon.ico │ │ │ ├── sort_asc.png │ │ │ ├── sort_asc_disabled.png │ │ │ ├── sort_both.png │ │ │ ├── sort_desc.png │ │ │ └── sort_desc_disabled.png │ │ │ ├── mix-manifest.json │ │ │ ├── mix.js.map │ │ │ ├── package.json │ │ │ ├── webpack.mix.js │ │ │ └── yarn.lock │ │ ├── lang │ │ └── en │ │ │ ├── admin.php │ │ │ ├── blog.php │ │ │ ├── codelist.php │ │ │ ├── contents.php │ │ │ ├── dictionary.php │ │ │ ├── flash.php │ │ │ ├── forms.php │ │ │ ├── languages.php │ │ │ ├── managers.php │ │ │ ├── menus.php │ │ │ ├── messages.php │ │ │ ├── pages.php │ │ │ ├── permissions.php │ │ │ ├── plugins.php │ │ │ ├── promotion.php │ │ │ ├── roles.php │ │ │ ├── tables.php │ │ │ ├── tasks.php │ │ │ └── users.php │ │ └── views │ │ ├── auth │ │ └── login.blade.php │ │ ├── blog │ │ ├── category_create.blade.php │ │ ├── category_edit.blade.php │ │ ├── category_items.blade.php │ │ ├── index.blade.php │ │ ├── item_comments.blade.php │ │ ├── item_create.blade.php │ │ └── item_edit.blade.php │ │ ├── codelist │ │ ├── edit.blade.php │ │ ├── index.blade.php │ │ └── item.blade.php │ │ ├── components │ │ ├── button │ │ │ ├── delete.blade.php │ │ │ ├── edit.blade.php │ │ │ └── new.blade.php │ │ └── form │ │ │ ├── checkbox.blade.php │ │ │ ├── order.blade.php │ │ │ ├── picture.blade.php │ │ │ ├── save.blade.php │ │ │ ├── select.blade.php │ │ │ ├── submit.blade.php │ │ │ ├── text.blade.php │ │ │ └── textarea.blade.php │ │ ├── contents │ │ ├── create.blade.php │ │ ├── edit.blade.php │ │ └── index.blade.php │ │ ├── dictionary │ │ └── index.blade.php │ │ ├── flash.blade.php │ │ ├── footer.blade.php │ │ ├── languages │ │ └── index.blade.php │ │ ├── layout.blade.php │ │ ├── managers │ │ ├── create.blade.php │ │ ├── edit.blade.php │ │ ├── list.blade.php │ │ └── profile.blade.php │ │ ├── menus │ │ ├── edit.blade.php │ │ ├── index.blade.php │ │ ├── item.blade.php │ │ └── list.blade.php │ │ ├── navigation.blade.php │ │ ├── pages │ │ ├── analytics │ │ │ ├── chart.blade.php │ │ │ ├── data.blade.php │ │ │ └── script.blade.php │ │ ├── create.blade.php │ │ ├── dashboard.blade.php │ │ ├── edit.blade.php │ │ ├── index.blade.php │ │ ├── tpl_cropper.blade.php │ │ ├── tpl_elements.blade.php │ │ └── tree │ │ │ ├── option-item.blade.php │ │ │ ├── option-list.blade.php │ │ │ ├── structure-item.blade.php │ │ │ └── structure-list.blade.php │ │ ├── permissions │ │ ├── edit.blade.php │ │ └── index.blade.php │ │ ├── plugins │ │ ├── edit.blade.php │ │ ├── form.blade.php │ │ └── index.blade.php │ │ ├── promotion │ │ ├── category_create.blade.php │ │ ├── category_edit.blade.php │ │ ├── category_items.blade.php │ │ ├── index.blade.php │ │ ├── item_create.blade.php │ │ └── item_edit.blade.php │ │ ├── roles │ │ ├── edit.blade.php │ │ ├── index.blade.php │ │ └── show.blade.php │ │ ├── tasks │ │ ├── create.blade.php │ │ ├── edit.blade.php │ │ ├── list.blade.php │ │ └── show.blade.php │ │ └── users │ │ ├── create.blade.php │ │ ├── edit.blade.php │ │ └── list.blade.php └── Cms │ ├── Http │ ├── Auth │ │ ├── AvatarController.php │ │ ├── ForgotPasswordController.php │ │ ├── LoginController.php │ │ ├── LoginSocialiteController.php │ │ ├── LoginWithThrottleController.php │ │ ├── ProfileController.php │ │ ├── RegisterController.php │ │ └── ResetPasswordController.php │ ├── BaseController.php │ ├── BlogController.php │ ├── HomeController.php │ ├── Middleware │ │ ├── CheckAllowance.php │ │ ├── IsAuthenticated.php │ │ ├── IsGuest.php │ │ └── Localization.php │ ├── PageController.php │ ├── Requests │ │ └── ProfileRequest.php │ ├── TaskController.php │ └── ViewComposers │ │ └── PageComposer.php │ ├── Mail │ ├── EmailVerification.php │ └── PasswordReset.php │ ├── Mailers │ └── UserMailer.php │ ├── Repositories │ └── UserRepository.php │ └── Resources │ ├── assets │ ├── images │ │ └── flags.png │ ├── js │ │ ├── app.js │ │ ├── bootstrap.js │ │ └── components │ │ │ └── ExampleComponent.vue │ └── sass │ │ ├── _components.scss │ │ ├── _flags.scss │ │ ├── _login-register-form.scss │ │ ├── _navbar.scss │ │ ├── _variables.scss │ │ └── app.scss │ ├── lang │ ├── en │ │ ├── blog.php │ │ ├── contact.php │ │ ├── content.php │ │ ├── general.php │ │ ├── home.php │ │ └── messages.php │ └── sl │ │ ├── blog.php │ │ ├── contact.php │ │ ├── content.php │ │ ├── general.php │ │ ├── home.php │ │ └── messages.php │ └── views │ ├── auth │ ├── login.blade.php │ ├── passwords │ │ ├── email.blade.php │ │ └── reset.blade.php │ └── register.blade.php │ ├── blog │ ├── category.blade.php │ ├── random.blade.php │ └── show.blade.php │ ├── emails │ ├── _example.blade.php │ ├── partials │ │ └── layout.blade.php │ ├── password.blade.php │ └── verification.blade.php │ ├── flash.blade.php │ ├── footer.blade.php │ ├── layouts │ ├── contact.blade.php │ ├── default.blade.php │ └── map.blade.php │ ├── menus │ ├── main.blade.php │ └── sidebar.blade.php │ ├── pages │ ├── content.blade.php │ ├── home.blade.php │ └── index.blade.php │ ├── profile │ └── update.blade.php │ └── tasks │ ├── list.blade.php │ └── show.blade.php ├── package.json ├── phpunit.xml ├── public ├── .gitignore ├── .htaccess ├── favicon.ico ├── fonts │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ ├── fontawesome-webfont.woff2 │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ ├── glyphicons-halflings-regular.woff2 │ └── vendor │ │ ├── bootstrap-sass │ │ └── bootstrap │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ └── glyphicons-halflings-regular.woff2 │ │ └── font-awesome │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ └── fontawesome-webfont.woff2 ├── images │ └── flags.png ├── index.php ├── mix-manifest.json ├── robots.txt ├── themes │ ├── admin │ │ ├── css │ │ │ ├── app.css │ │ │ ├── app.css.map │ │ │ ├── jstree.css │ │ │ ├── jstree.css.map │ │ │ └── vendor.css │ │ ├── fonts │ │ │ ├── Material-Design-Iconic-Font.eot │ │ │ ├── Material-Design-Iconic-Font.svg │ │ │ ├── Material-Design-Iconic-Font.ttf │ │ │ ├── Material-Design-Iconic-Font.woff │ │ │ ├── Material-Design-Iconic-Font.woff2 │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ └── glyphicons-halflings-regular.woff2 │ │ ├── images │ │ │ ├── Sorting icons.psd │ │ │ ├── background │ │ │ │ ├── autumn.jpg │ │ │ │ ├── spring.jpg │ │ │ │ ├── summer.jpg │ │ │ │ └── winter.jpg │ │ │ ├── favicon.ico │ │ │ ├── icon_logo.png │ │ │ ├── jstree │ │ │ │ ├── 32px.png │ │ │ │ ├── folder.png │ │ │ │ ├── new.png │ │ │ │ ├── page.png │ │ │ │ └── throbber.gif │ │ │ ├── marker.png │ │ │ ├── mask.png │ │ │ ├── play-btn.png │ │ │ ├── quote-left.png │ │ │ ├── quote-right.png │ │ │ ├── sort_asc.png │ │ │ ├── sort_asc_disabled.png │ │ │ ├── sort_both.png │ │ │ ├── sort_desc.png │ │ │ ├── sort_desc_disabled.png │ │ │ └── wheel.png │ │ ├── img │ │ │ ├── clear.png │ │ │ └── loading.gif │ │ └── js │ │ │ ├── app.js │ │ │ ├── plugins │ │ │ ├── advlist │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── anchor │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── autolink │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── autoresize │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── autosave │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── bbcode │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── charmap │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── code │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── codesample │ │ │ │ ├── css │ │ │ │ │ └── prism.css │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── colorpicker │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── contextmenu │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── directionality │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── emoticons │ │ │ │ ├── img │ │ │ │ │ ├── smiley-cool.gif │ │ │ │ │ ├── smiley-cry.gif │ │ │ │ │ ├── smiley-embarassed.gif │ │ │ │ │ ├── smiley-foot-in-mouth.gif │ │ │ │ │ ├── smiley-frown.gif │ │ │ │ │ ├── smiley-innocent.gif │ │ │ │ │ ├── smiley-kiss.gif │ │ │ │ │ ├── smiley-laughing.gif │ │ │ │ │ ├── smiley-money-mouth.gif │ │ │ │ │ ├── smiley-sealed.gif │ │ │ │ │ ├── smiley-smile.gif │ │ │ │ │ ├── smiley-surprised.gif │ │ │ │ │ ├── smiley-tongue-out.gif │ │ │ │ │ ├── smiley-undecided.gif │ │ │ │ │ ├── smiley-wink.gif │ │ │ │ │ └── smiley-yell.gif │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── fullpage │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── fullscreen │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── help │ │ │ │ ├── img │ │ │ │ │ └── logo.png │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── hr │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── image │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── imagetools │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── importcss │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── insertdatetime │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── legacyoutput │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── link │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── lists │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── media │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── nonbreaking │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── noneditable │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── pagebreak │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── paste │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── preview │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── print │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── save │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── searchreplace │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── spellchecker │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── tabfocus │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── table │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── template │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── textcolor │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── textpattern │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── toc │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── visualblocks │ │ │ │ ├── css │ │ │ │ │ └── visualblocks.css │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── visualchars │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ └── wordcount │ │ │ │ ├── index.js │ │ │ │ ├── plugin.js │ │ │ │ └── plugin.min.js │ │ │ ├── skins │ │ │ └── lightgray │ │ │ │ ├── content.inline.min.css │ │ │ │ ├── content.min.css │ │ │ │ ├── content.mobile.min.css │ │ │ │ ├── fonts │ │ │ │ ├── tinymce-mobile.woff │ │ │ │ ├── tinymce-small.eot │ │ │ │ ├── tinymce-small.svg │ │ │ │ ├── tinymce-small.ttf │ │ │ │ ├── tinymce-small.woff │ │ │ │ ├── tinymce.eot │ │ │ │ ├── tinymce.svg │ │ │ │ ├── tinymce.ttf │ │ │ │ └── tinymce.woff │ │ │ │ ├── img │ │ │ │ ├── anchor.gif │ │ │ │ ├── loader.gif │ │ │ │ ├── object.gif │ │ │ │ └── trans.gif │ │ │ │ ├── skin.min.css │ │ │ │ └── skin.mobile.min.css │ │ │ ├── themes │ │ │ ├── inlite │ │ │ │ ├── index.js │ │ │ │ ├── theme.js │ │ │ │ └── theme.min.js │ │ │ ├── mobile │ │ │ │ ├── index.js │ │ │ │ ├── theme.js │ │ │ │ └── theme.min.js │ │ │ └── modern │ │ │ │ ├── index.js │ │ │ │ ├── theme.js │ │ │ │ └── theme.min.js │ │ │ └── vendor.js │ └── default │ │ ├── css │ │ ├── app.css │ │ └── app.css.map │ │ └── js │ │ ├── app.js │ │ ├── app.js.map │ │ ├── manifest.js │ │ ├── manifest.js.map │ │ ├── vendor.js │ │ └── vendor.js.map ├── uploads │ ├── .gitignore │ ├── avatars │ │ └── .gitignore │ ├── promotions │ │ └── .gitignore │ ├── sample01_600x600.jpg │ ├── sample02_600x600.jpg │ └── sample03_600x600.jpg └── vendor │ └── laravel-filemanager │ ├── css │ ├── cropper.min.css │ ├── dropzone.min.css │ ├── lfm.css │ ├── mfb.css │ └── mime-icons.min.css │ ├── files │ ├── .gitkeep │ ├── adobe.pdf │ ├── folder-1 │ │ └── sleeping-dog.jpg │ └── word.docx │ ├── images │ ├── .gitkeep │ └── test-folder │ │ ├── sleeping-dog.jpg │ │ └── thumbs │ │ └── sleeping-dog.jpg │ ├── img │ ├── 152px color.png │ ├── 72px color.png │ ├── 92px color.png │ ├── Logomark color.png │ ├── folder.png │ └── loader.svg │ └── js │ ├── cropper.min.js │ ├── dropzone.min.js │ ├── jquery.form.min.js │ ├── lfm.js │ ├── mfb.js │ ├── script.js │ └── stand-alone-button.js ├── resources ├── lang │ └── en │ │ ├── auth.php │ │ ├── messages.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ └── validation.php └── views │ ├── errors │ ├── 404.blade.php │ └── 503.blade.php │ └── vendor │ └── .gitkeep ├── routes ├── admin.authorized.php ├── admin.guest.php ├── api.php ├── auth.authorized.php ├── auth.guest.php ├── auth.php ├── auth.socialite.php ├── channels.php ├── console.php ├── public.authorized.php └── public.php ├── server.php ├── storage ├── app │ └── .gitignore ├── debugbar │ └── .gitignore ├── framework │ ├── .gitignore │ ├── cache │ │ ├── .gitignore │ │ └── data │ │ │ └── .gitignore │ ├── sessions │ │ └── .gitignore │ └── views │ │ └── .gitignore ├── laravel-analytics │ └── .gitignore └── logs │ └── .gitignore ├── tests ├── Browser │ ├── AdminTest.php │ ├── ExampleTest.php │ ├── Pages │ │ ├── HomePage.php │ │ └── Page.php │ ├── console │ │ └── .gitignore │ └── screenshots │ │ └── .gitignore ├── CreatesApplication.php ├── DuskTestCase.php ├── Feature │ └── ExampleTest.php ├── TestCase.php └── Unit │ └── ExampleTest.php ├── webpack.mix.js └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | insert_final_newline = true 7 | indent_style = space 8 | indent_size = 4 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | 14 | [*.yml] 15 | indent_size = 2 16 | -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | APP_NAME=Numencode 2 | APP_ENV=local 3 | APP_KEY= 4 | APP_DEBUG=true 5 | APP_URL= 6 | 7 | LOG_CHANNEL=stack 8 | 9 | DB_CONNECTION=mysql 10 | DB_HOST=127.0.0.1 11 | DB_PORT=3306 12 | DB_DATABASE=homestead 13 | DB_USERNAME=homestead 14 | DB_PASSWORD=secret 15 | 16 | BROADCAST_DRIVER=log 17 | CACHE_DRIVER=file 18 | QUEUE_CONNECTION=sync 19 | SESSION_DRIVER=file 20 | SESSION_LIFETIME=120 21 | 22 | REDIS_HOST=127.0.0.1 23 | REDIS_PASSWORD=null 24 | REDIS_PORT=6379 25 | 26 | MAIL_DRIVER=smtp 27 | MAIL_HOST=smtp.mailtrap.io 28 | MAIL_PORT=2525 29 | MAIL_USERNAME=null 30 | MAIL_PASSWORD=null 31 | MAIL_ENCRYPTION=null 32 | MAIL_FROM_ADDRESS= 33 | MAIL_FROM_NAME= 34 | 35 | AWS_ACCESS_KEY_ID= 36 | AWS_SECRET_ACCESS_KEY= 37 | AWS_DEFAULT_REGION=us-east-1 38 | AWS_BUCKET= 39 | 40 | PUSHER_APP_ID= 41 | PUSHER_APP_KEY= 42 | PUSHER_APP_SECRET= 43 | PUSHER_APP_CLUSTER=mt1 44 | 45 | MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" 46 | MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" 47 | 48 | SPARKPOST_SECRET= 49 | 50 | GITHUB_CLIENT_ID= 51 | GITHUB_CLIENT_SECRET= 52 | 53 | FACEBOOK_CLIENT_ID= 54 | FACEBOOK_CLIENT_SECRET= 55 | 56 | TWITTER_CLIENT_ID= 57 | TWITTER_CLIENT_SECRET= 58 | 59 | GOOGLE_CLIENT_ID= 60 | GOOGLE_CLIENT_SECRET= 61 | 62 | GOOGLE_ANALYTICS= 63 | ANALYTICS_VIEW_ID= 64 | ANALYTICS_CREDENTIALS= -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | *.css linguist-vendored 3 | *.scss linguist-vendored 4 | *.js linguist-vendored 5 | CHANGELOG.md export-ignore 6 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Smartphone (please complete the following information):** 32 | - Device: [e.g. iPhone6] 33 | - OS: [e.g. iOS8.1] 34 | - Browser [e.g. stock browser, safari] 35 | - Version [e.g. 22] 36 | 37 | **Additional context** 38 | Add any other context about the problem here. 39 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | /public/hot 3 | /public/storage 4 | /storage/*.key 5 | /vendor 6 | /.idea 7 | .env 8 | .phpunit.result.cache 9 | Homestead.json 10 | Homestead.yaml 11 | npm-debug.log 12 | yarn-error.log 13 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Coding Guidelines 2 | 3 | * Numencode follows the [coding guidelines](https://github.com/laravel/framework/blob/master/CONTRIBUTING.md#coding-guidelines) used by Laravel. 4 | * Pull requests for the latest major release MUST be sent to the master branch. 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2015-2019 Blaž Oražem 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Supported Versions 4 | 5 | This package has no LTS releases - this means that we will only support the latest minor release with feature updates. 6 | 7 | We will do our best to fix security issues and inform all users about possible issues. 8 | 9 | ## Reporting a Vulnerability 10 | 11 | Because security vulnerabilities could harm users we please you to don't use the public issue tracker to report them. 12 | Please write an email to [info@numencode.com](mailto:info@numencode.com). 13 | Depending on the kind of issue we will create a public issue/security alert or fix it and inform afterwards. 14 | -------------------------------------------------------------------------------- /app/Console/Commands/Admin/Bower.php: -------------------------------------------------------------------------------- 1 | run(); 34 | 35 | $this->comment($process->getOutput()); 36 | 37 | if ($process->isSuccessful()) { 38 | $this->info('Bower update for the admin theme executed successfully.' . PHP_EOL); 39 | } else { 40 | $this->error('Error executing Bower update for the admin theme.' . PHP_EOL); 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /app/Console/Commands/Admin/Npm.php: -------------------------------------------------------------------------------- 1 | run(); 34 | 35 | $this->comment($process->getOutput()); 36 | 37 | if ($process->isSuccessful()) { 38 | $this->info('NPM update for the admin theme executed successfully.' . PHP_EOL); 39 | } else { 40 | $this->error('Error executing NPM update for the admin theme.' . PHP_EOL); 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /app/Console/Commands/Admin/Yarn.php: -------------------------------------------------------------------------------- 1 | run(); 34 | 35 | $this->comment($process->getOutput()); 36 | 37 | if ($process->isSuccessful()) { 38 | $this->info('Yarn update for the admin theme executed successfully.' . PHP_EOL); 39 | } else { 40 | $this->error('Error executing Yarn update for the admin theme.' . PHP_EOL); 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /app/Console/Commands/Dictionary/LangClean.php: -------------------------------------------------------------------------------- 1 | option('locale')) { 32 | Dictionary::where('locale', $locale)->delete(); 33 | } else { 34 | $this->call('db:truncate', ['table_name' => 'dictionary', '--force' => true]); 35 | } 36 | 37 | $this->info('Translations are deleted from the database.' . PHP_EOL); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /app/Console/Kernel.php: -------------------------------------------------------------------------------- 1 | command('inspire') 29 | // ->hourly(); 30 | } 31 | 32 | /** 33 | * Register the commands for the application. 34 | * 35 | * @return void 36 | */ 37 | protected function commands() 38 | { 39 | $this->load(__DIR__.'/Commands'); 40 | 41 | require base_path('routes/console.php'); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /app/Http/Controller.php: -------------------------------------------------------------------------------- 1 | auth = $auth; 25 | } 26 | 27 | /** 28 | * Handle an incoming request. 29 | * 30 | * @param \Illuminate\Http\Request $request Request 31 | * @param \Closure $next Closure 32 | * 33 | * @return mixed 34 | */ 35 | public function handle($request, Closure $next) 36 | { 37 | if ($this->auth->guest()) { 38 | if ($request->ajax()) { 39 | return response('Unauthorized.', 401); 40 | } else { 41 | return redirect()->guest('auth/login'); 42 | } 43 | } 44 | 45 | return $next($request); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /app/Http/Middleware/CheckForMaintenanceMode.php: -------------------------------------------------------------------------------- 1 | call([$this, $method], compact('attribute', 'value', 'parameters')); 42 | }); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /app/Models/Content/Menu.php: -------------------------------------------------------------------------------- 1 | hasMany(Page::class, 'menu', 'code'); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Models/Content/Plugin.php: -------------------------------------------------------------------------------- 1 | 'object']; 33 | 34 | /** 35 | * The attributes that are mass assignable. 36 | * 37 | * @var array 38 | */ 39 | protected $fillable = ['title', 'description', 'action', 'params', 'sort_order', 'is_hidden']; 40 | } 41 | -------------------------------------------------------------------------------- /app/Models/Page/Attributes.php: -------------------------------------------------------------------------------- 1 | url ? $this->url->uri : ''; 17 | } 18 | 19 | /** 20 | * Return page menu title. 21 | * 22 | * @return string 23 | */ 24 | public function getMenuTitleAttribute() 25 | { 26 | return Menu::where('code', $this->menu)->first()->title; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/Models/Page/Helpers.php: -------------------------------------------------------------------------------- 1 | whereNull('page_id')->get(); 19 | 20 | return $generalContents->merge($this->contents()->where('position', $position)->get())->sortBy('sort_order'); 21 | } 22 | 23 | /** 24 | * Build tree structure for pages. 25 | * 26 | * @param string $menu Menu type 27 | * 28 | * @return \Illuminate\Support\Collection 29 | */ 30 | protected function tree($menu = null) 31 | { 32 | if ($menu) { 33 | $items = static::where('menu', $menu)->get()->groupBy('parent_id'); 34 | } else { 35 | $items = static::get()->groupBy('parent_id'); 36 | } 37 | 38 | if ($items->count()) { 39 | $items['root'] = $items['']; 40 | unset($items['']); 41 | } else { 42 | $items = collect(['root' => collect()]); 43 | } 44 | 45 | return $items; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /app/Models/Page/Page.php: -------------------------------------------------------------------------------- 1 | belongsTo(Url::class, 'route_id'); 18 | } 19 | 20 | /** 21 | * Page has many contents. 22 | * 23 | * @return \Illuminate\Database\Eloquent\Relations\HasMany 24 | */ 25 | public function contents() 26 | { 27 | return $this->hasMany(Content::class); 28 | } 29 | 30 | /** 31 | * Page can have many sub pages. 32 | * 33 | * @return \Illuminate\Database\Eloquent\Relations\HasMany 34 | */ 35 | public function items() 36 | { 37 | return $this->hasMany(static::class, 'parent_id'); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /app/Models/Promotion/PromotionCategory.php: -------------------------------------------------------------------------------- 1 | hasMany(PromotionItem::class); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Models/Promotion/PromotionItem.php: -------------------------------------------------------------------------------- 1 | belongsTo(PromotionCategory::class, 'promotion_category_id'); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /app/Models/System/Dictionary.php: -------------------------------------------------------------------------------- 1 | scopeApplied = true; 29 | 30 | $builder->getQuery()->orderBy($model->getSortOrderColumn()); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/Models/System/Traits/HiddenFilter.php: -------------------------------------------------------------------------------- 1 | route() && !in_array('is_admin', request()->route()->middleware())) { 15 | static::addGlobalScope('hidden', function ($builder) { 16 | $table = $builder->getModel()->getTable(); 17 | $builder->whereNull($table . '.is_hidden'); 18 | }); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/Models/System/Url.php: -------------------------------------------------------------------------------- 1 | 'object']; 32 | 33 | /** 34 | * Disable timestamps for this table. 35 | * 36 | * @var bool 37 | */ 38 | public $timestamps = false; 39 | 40 | /** 41 | * Foreign key for translatable table. 42 | * 43 | * @return string 44 | */ 45 | public function getForeignKey() 46 | { 47 | return 'route_id'; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /app/Models/Task.php: -------------------------------------------------------------------------------- 1 | 'boolean']; 31 | 32 | /** 33 | * Get all tasks 34 | * 35 | * @return \Illuminate\Database\Eloquent\Collection 36 | */ 37 | public static function getTaskSelection() 38 | { 39 | return static::orderBy('title')->get()->pluck('title', 'id'); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /app/Models/User/Manager.php: -------------------------------------------------------------------------------- 1 | 'object']; 41 | } 42 | -------------------------------------------------------------------------------- /app/Models/User/Permission.php: -------------------------------------------------------------------------------- 1 | belongsToMany(Role::class, 'role_permission'); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/Models/User/Traits/ManagerRoles.php: -------------------------------------------------------------------------------- 1 | belongsToMany(Role::class, 'role_manager'); 17 | } 18 | 19 | /** 20 | * Assign a role to the entity. 21 | * 22 | * @param string $role Role name 23 | * 24 | * @return mixed 25 | */ 26 | public function assignRole($role) 27 | { 28 | return $this->roles()->save( 29 | Role::where($role)->firstOrFail() 30 | ); 31 | } 32 | 33 | /** 34 | * Determine if the entity has a given role. 35 | * 36 | * @param string|object $role Role name 37 | * 38 | * @return bool 39 | */ 40 | public function hasRole($role) 41 | { 42 | if (is_string($role)) { 43 | return $this->roles->contains('name', $role); 44 | } 45 | 46 | return !!$role->intersect($this->roles)->count(); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /app/Models/User/Traits/UserHelpers.php: -------------------------------------------------------------------------------- 1 | is_verified = true; 17 | $this->token = null; 18 | 19 | $this->save(); 20 | } 21 | 22 | /** 23 | * Get avatar 24 | * 25 | * @param int $width Avatar width 26 | * @param null $height Avatar height 27 | * 28 | * @return \Intervention\Image\Image|null 29 | */ 30 | public function avatar($width = 100, $height = null) 31 | { 32 | $height = $height ?: $width; 33 | 34 | if (!$this->avatar) { 35 | return; 36 | } 37 | 38 | return AvatarController::getAvatarImageUrl($this->avatar, $width, $height); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /app/Providers/AuthServiceProvider.php: -------------------------------------------------------------------------------- 1 | 'Numencode\Policies\ModelPolicy', 18 | ]; 19 | 20 | /** 21 | * Register any authentication / authorization services. 22 | * 23 | * @return void 24 | */ 25 | public function boot() 26 | { 27 | $this->registerPolicies(); 28 | 29 | foreach ($this->getPermissions() as $permission) { 30 | Gate::define($permission->name, function ($user) use ($permission) { 31 | return $user->hasRole($permission->roles); 32 | }); 33 | } 34 | } 35 | 36 | /** 37 | * Get all the permissions. 38 | * 39 | * @return array 40 | */ 41 | protected function getPermissions() 42 | { 43 | if (app()->runningInConsole()) { 44 | return []; 45 | } 46 | 47 | return Permission::with('roles')->get(); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /app/Providers/BroadcastServiceProvider.php: -------------------------------------------------------------------------------- 1 | '; 24 | }); 25 | } 26 | 27 | /** 28 | * Register the application services. 29 | * 30 | * @return void 31 | */ 32 | public function register() 33 | { 34 | // 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Providers/EventServiceProvider.php: -------------------------------------------------------------------------------- 1 | [ 20 | SendEmailVerificationNotification::class, 21 | ], 22 | ]; 23 | 24 | /** 25 | * Register any events for your application. 26 | * 27 | * @return void 28 | */ 29 | public function boot() 30 | { 31 | parent::boot(); 32 | 33 | Event::listen( 34 | 'user.reset_password', 35 | 'Numencode\Listeners\UserEventListener@onPasswordReset' 36 | ); 37 | 38 | Event::listen( 39 | 'user.update_profile', 40 | 'Numencode\Listeners\UserEventListener@onProfileUpdate' 41 | ); 42 | 43 | Event::listen('dictionary.update', function ($group) { 44 | Artisan::call('lang:export', ['--group' => $group]); 45 | }); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /bootstrap/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /config/javascript.php: -------------------------------------------------------------------------------- 1 | 'admin::footer', 19 | 20 | /* 21 | |-------------------------------------------------------------------------- 22 | | JavaScript Namespace 23 | |-------------------------------------------------------------------------- 24 | | 25 | | By default, we'll add variables to the global window object. However, 26 | | it's recommended that you change this to some namespace - anything. 27 | | That way, you can access vars, like "SomeNamespace.someVariable." 28 | | 29 | */ 30 | 31 | 'js_namespace' => 'vars', 32 | 33 | ]; 34 | -------------------------------------------------------------------------------- /config/translatable.php: -------------------------------------------------------------------------------- 1 | [ 17 | 'table_suffix' => '_i18n', 18 | 'locale_field' => 'locale', 19 | ], 20 | 21 | /* 22 | |----------------------------------------------------------- 23 | | Default query behavior 24 | |----------------------------------------------------------- 25 | | 26 | | When fetching records, you have an option to only select 27 | | translated results or even fallback to another locale. 28 | | You may configure the default query behavior below. 29 | | 30 | */ 31 | 32 | 'defaults' => [ 33 | 'only_translated' => false, 34 | 'with_fallback' => true, 35 | ], 36 | 37 | ]; 38 | -------------------------------------------------------------------------------- /config/view.php: -------------------------------------------------------------------------------- 1 | [ 17 | resource_path('views'), 18 | ], 19 | 20 | /* 21 | |-------------------------------------------------------------------------- 22 | | Compiled View Path 23 | |-------------------------------------------------------------------------- 24 | | 25 | | This option determines where all the compiled Blade templates will be 26 | | stored for your application. Typically, this is within the storage 27 | | directory. However, as usual, you are free to change this value. 28 | | 29 | */ 30 | 31 | 'compiled' => env( 32 | 'VIEW_COMPILED_PATH', 33 | realpath(storage_path('framework/views')) 34 | ), 35 | 36 | ]; 37 | -------------------------------------------------------------------------------- /database/.gitignore: -------------------------------------------------------------------------------- 1 | *.sqlite 2 | -------------------------------------------------------------------------------- /database/factories/ManagerFactory.php: -------------------------------------------------------------------------------- 1 | define(Manager::class, function (Faker $faker) { 8 | static $password; 9 | 10 | return [ 11 | 'name' => $faker->name, 12 | 'email' => $faker->email, 13 | 'password' => $password ?: $password = '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password 14 | 'phone' => $faker->phoneNumber, 15 | 'avatar' => '/uploads/sample0' . rand(1, 3) . '_600x600.jpg', 16 | 'tasks' => null, 17 | 'remember_token' => Str::random(10), 18 | ]; 19 | }); 20 | -------------------------------------------------------------------------------- /database/factories/TaskFactory.php: -------------------------------------------------------------------------------- 1 | define(Task::class, function (Faker $faker) { 7 | return [ 8 | 'title' => $faker->sentence(4), 9 | 'body' => $faker->paragraph, 10 | ]; 11 | }); 12 | -------------------------------------------------------------------------------- /database/factories/UserFactory.php: -------------------------------------------------------------------------------- 1 | define(User::class, function (Faker $faker) { 8 | static $password; 9 | 10 | return [ 11 | 'name' => $faker->name, 12 | 'nickname' => $faker->name, 13 | 'email' => $faker->email, 14 | 'password' => $password ?: $password = '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password 15 | 'avatar' => '/uploads/sample0' . rand(1, 3) . '_600x600.jpg', 16 | 'is_verified' => true, 17 | 'token' => Str::random(30), 18 | 'remember_token' => Str::random(10), 19 | ]; 20 | }); 21 | -------------------------------------------------------------------------------- /database/migrations/2014_10_12_000000_create_users_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 17 | $table->string('name')->nullable(); 18 | $table->string('nickname')->nullable()->unique(); 19 | $table->string('email')->unique(); 20 | $table->string('password'); 21 | $table->string('avatar', 255)->nullable(); 22 | $table->boolean('is_verified')->nullable()->default(NULL); 23 | $table->string('token', 30)->nullable(); 24 | $table->string('social_provider_type', 100)->nullable(); 25 | $table->string('social_provider_id')->nullable(); 26 | $table->rememberToken(); 27 | $table->timestamps(); 28 | }); 29 | } 30 | 31 | /** 32 | * Reverse the migrations. 33 | * 34 | * @return void 35 | */ 36 | public function down() 37 | { 38 | Schema::dropIfExists('users'); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /database/migrations/2014_10_12_100000_create_password_resets_table.php: -------------------------------------------------------------------------------- 1 | string('email')->index(); 17 | $table->string('token')->index(); 18 | $table->timestamp('created_at'); 19 | }); 20 | } 21 | 22 | /** 23 | * Reverse the migrations. 24 | * 25 | * @return void 26 | */ 27 | public function down() 28 | { 29 | Schema::dropIfExists('password_resets'); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2015_01_15_000000_create_managers_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 17 | $table->string('name')->unique(); 18 | $table->string('email')->unique(); 19 | $table->string('password', 60); 20 | $table->string('phone')->nullable(); 21 | $table->string('avatar', 255)->nullable(); 22 | $table->text('tasks')->nullable(); 23 | $table->rememberToken(); 24 | $table->timestamps(); 25 | $table->softDeletes(); 26 | }); 27 | } 28 | 29 | /** 30 | * Reverse the migrations. 31 | * 32 | * @return void 33 | */ 34 | public function down() 35 | { 36 | Schema::dropIfExists('managers'); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /database/migrations/2016_02_18_000000_create_tasks_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 18 | $table->boolean('completed')->nullable()->default(NULL); 19 | $table->timestamps(); 20 | }); 21 | 22 | Schema::create('tasks_i18n', function(Blueprint $table) 23 | { 24 | $table->integer('task_id')->unsigned(); 25 | $table->string('locale', 6); 26 | $table->string('title'); 27 | $table->text('body'); 28 | 29 | $table->primary(['task_id', 'locale']); 30 | }); 31 | } 32 | 33 | /** 34 | * Reverse the migrations. 35 | * 36 | * @return void 37 | */ 38 | public function down() 39 | { 40 | Schema::dropIfExists('tasks'); 41 | Schema::dropIfExists('tasks_i18n'); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /database/migrations/2016_10_02_000000_create_plugins_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 18 | $table->string('title'); 19 | $table->string('description')->nullable(); 20 | $table->string('action')->nullable(); 21 | $table->text('params')->nullable(); 22 | $table->integer('sort_order')->default(0); 23 | $table->boolean('is_hidden')->nullable()->default(NULL); 24 | }); 25 | } 26 | 27 | /** 28 | * Reverse the migrations. 29 | * 30 | * @return void 31 | */ 32 | public function down() 33 | { 34 | Schema::dropIfExists('plugins'); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /database/migrations/2016_10_10_000000_create_routes_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 18 | $table->string('action'); 19 | }); 20 | 21 | Schema::create('routes_i18n', function(Blueprint $table) 22 | { 23 | $table->integer('route_id')->unsigned(); 24 | $table->string('locale', 6); 25 | $table->string('uri')->unique(); 26 | $table->text('params')->nullable(); 27 | 28 | $table->primary(['route_id', 'locale']); 29 | }); 30 | } 31 | 32 | /** 33 | * Reverse the migrations. 34 | * 35 | * @return void 36 | */ 37 | public function down() 38 | { 39 | Schema::dropIfExists('routes'); 40 | Schema::dropIfExists('routes_i18n'); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /database/migrations/2016_10_18_000000_create_codelist_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 18 | $table->string('code')->unique()->index(); 19 | $table->string('title'); 20 | $table->integer('sort_order')->default(0); 21 | }); 22 | 23 | Schema::create('codelist_item', function(Blueprint $table) 24 | { 25 | $table->increments('id'); 26 | $table->integer('codelist_group_id')->unsigned()->index(); 27 | $table->string('code'); 28 | $table->string('title'); 29 | $table->integer('sort_order')->default(0); 30 | }); 31 | } 32 | 33 | /** 34 | * Reverse the migrations. 35 | * 36 | * @return void 37 | */ 38 | public function down() 39 | { 40 | Schema::dropIfExists('codelist_group'); 41 | Schema::dropIfExists('codelist_item'); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /database/migrations/2016_10_18_000000_create_menus_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 18 | $table->string('code')->unique(); 19 | $table->string('title'); 20 | $table->integer('sort_order')->default(0); 21 | }); 22 | } 23 | 24 | /** 25 | * Reverse the migrations. 26 | * 27 | * @return void 28 | */ 29 | public function down() 30 | { 31 | Schema::dropIfExists('menus'); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /database/migrations/2017_04_11_000000_create_dictionary_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 18 | $table->string('locale', 6); 19 | $table->string('group')->nullable(); 20 | $table->string('key'); 21 | $table->text('value')->nullable(); 22 | $table->timestamps(); 23 | }); 24 | } 25 | 26 | /** 27 | * Reverse the migrations. 28 | * 29 | * @return void 30 | */ 31 | public function down() 32 | { 33 | Schema::dropIfExists('dictionary'); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /database/migrations/2017_04_19_000000_create_languages_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 18 | $table->string('locale', 6); 19 | $table->string('label'); 20 | $table->boolean('is_default')->nullable()->default(NULL); 21 | $table->integer('sort_order')->default(0); 22 | $table->boolean('is_hidden')->nullable()->default(NULL); 23 | }); 24 | } 25 | 26 | /** 27 | * Reverse the migrations. 28 | * 29 | * @return void 30 | */ 31 | public function down() 32 | { 33 | Schema::dropIfExists('languages'); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /database/seeds/LanguagesTableSeeder.php: -------------------------------------------------------------------------------- 1 | '1', 12 | 'locale' => 'en', 13 | 'label' => 'English', 14 | 'is_default' => true, 15 | 'sort_order' => 10, 16 | 'is_hidden' => null, 17 | ], 18 | [ 19 | 'id' => '2', 20 | 'locale' => 'sl', 21 | 'label' => 'Slovenščina', 22 | 'is_default' => null, 23 | 'sort_order' => 20, 24 | 'is_hidden' => null, 25 | ], 26 | ]; 27 | 28 | DB::table('languages')->insert($items); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /database/seeds/MenusTableSeeder.php: -------------------------------------------------------------------------------- 1 | 1, 12 | 'code' => 'main', 13 | 'title' => 'Main Menu', 14 | 'sort_order' => '10', 15 | ], 16 | [ 17 | 'id' => 2, 18 | 'code' => 'sidebar', 19 | 'title' => 'Sidebar Menu', 20 | 'sort_order' => '20', 21 | ], 22 | ]; 23 | 24 | DB::table('menus')->insert($items); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /database/seeds/RoleManagerTableSeeder.php: -------------------------------------------------------------------------------- 1 | '1', 'manager_id' => '1'], 11 | ['role_id' => '2', 'manager_id' => '2'], 12 | ]; 13 | 14 | DB::table('role_manager')->insert($items); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /database/seeds/RoleUserTableSeeder.php: -------------------------------------------------------------------------------- 1 | '3', 'user_id' => '4'], 11 | ['role_id' => '3', 'user_id' => '3'], 12 | ['role_id' => '4', 'user_id' => '2'], 13 | ['role_id' => '4', 'user_id' => '1'], 14 | ]; 15 | 16 | DB::table('role_user')->insert($items); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /database/seeds/TasksTableSeeder.php: -------------------------------------------------------------------------------- 1 | create(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /modules/Admin/Http/BaseController.php: -------------------------------------------------------------------------------- 1 | user(); 27 | } 28 | 29 | /** 30 | * Delete the given model entity. 31 | * 32 | * @param Model $model Model to be deleted. 33 | * @param string $msg Message for a successful delete. 34 | * @param string $title Title for a successful delete. 35 | * 36 | * @return array 37 | * 38 | * @throws \Exception 39 | */ 40 | protected function deleteThe(Model $model, $msg = 'messages.deleted', $title = 'messages.success') 41 | { 42 | if ($model->delete()) { 43 | return [ 44 | 'title' => trans("admin::$title"), 45 | 'msg' => trans("admin::$msg"), 46 | ]; 47 | } 48 | 49 | return report_error(); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /modules/Admin/Http/Middleware/IsAdmin.php: -------------------------------------------------------------------------------- 1 | guard)->check()) { 29 | return redirect()->route('admin.login', ['ref' => $request->path()]); 30 | } 31 | 32 | return $next($request); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /modules/Admin/Http/Middleware/Translation.php: -------------------------------------------------------------------------------- 1 | setLocale(Session::get('locale')); 26 | 27 | return $next($request); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /modules/Admin/Resources/assets/js/init.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | 3 | PreLoader.init(); 4 | 5 | Responsive.init(); 6 | 7 | MetisMenu.init(); 8 | 9 | JsTree.init(); 10 | 11 | DataTables.init(); 12 | 13 | ScrollBar.init(); 14 | 15 | WavesEffect.init(); 16 | 17 | MenuSearchBar.init(); 18 | 19 | DropDownMenu.init(); 20 | 21 | FullScreenMode.init(); 22 | 23 | Form.init(); 24 | 25 | ContentBlock.init(); 26 | 27 | FormComponents.init(); 28 | 29 | Notifications.init(); 30 | 31 | TimeDisplay.init(); 32 | 33 | Tooltips.init(); 34 | 35 | Popover.init(); 36 | 37 | Collapse.init(); 38 | 39 | SidePanel.init(); 40 | 41 | MenuToggle.init(); 42 | 43 | Nestable.init(); 44 | 45 | Editable.init(); 46 | 47 | Wysiwyg.init(); 48 | 49 | }); -------------------------------------------------------------------------------- /modules/Admin/Resources/assets/jstree/custom.less: -------------------------------------------------------------------------------- 1 | .jt { 2 | display: inline-block; 3 | font: normal normal normal 14px/1 Arial; 4 | font-size: inherit; 5 | text-rendering: auto; 6 | } 7 | .jt:before { 8 | content: ""; 9 | display: block; 10 | width: 16px; 11 | height: 16px; 12 | margin: 4px; 13 | } 14 | .jt-page:before { 15 | 16 | background-image: url("@{image-path}page.png"); 17 | } 18 | .jt-folder:before { 19 | background-image: url("@{image-path}folder.png"); 20 | } 21 | .jt-new:before { 22 | background-image: url("@{image-path}new.png"); 23 | } -------------------------------------------------------------------------------- /modules/Admin/Resources/assets/jstree/images/32px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/modules/Admin/Resources/assets/jstree/images/32px.png -------------------------------------------------------------------------------- /modules/Admin/Resources/assets/jstree/images/folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/modules/Admin/Resources/assets/jstree/images/folder.png -------------------------------------------------------------------------------- /modules/Admin/Resources/assets/jstree/images/new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/modules/Admin/Resources/assets/jstree/images/new.png -------------------------------------------------------------------------------- /modules/Admin/Resources/assets/jstree/images/page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/modules/Admin/Resources/assets/jstree/images/page.png -------------------------------------------------------------------------------- /modules/Admin/Resources/assets/jstree/images/throbber.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/modules/Admin/Resources/assets/jstree/images/throbber.gif -------------------------------------------------------------------------------- /modules/Admin/Resources/assets/jstree/style.less: -------------------------------------------------------------------------------- 1 | @theme-name: default; 2 | @hovered-bg-color: #e7f4f9; 3 | @hovered-shadow-color: #cccccc; 4 | @disabled-color: #666666; 5 | @disabled-bg-color: #efefef; 6 | @clicked-bg-color: #beebff; 7 | @clicked-shadow-color: #999999; 8 | @clicked-gradient-color-1: #beebff; 9 | @clicked-gradient-color-2: #a8e4ff; 10 | @search-result-color: #8b0000; 11 | @mobile-wholerow-bg-color: #ebebeb; 12 | @mobile-wholerow-shadow: #666666; 13 | @mobile-wholerow-bordert: rgba(255,255,255,0.7); 14 | @mobile-wholerow-borderb: rgba(64,64,64,0.2); 15 | @responsive: true; 16 | @image-path: "/themes/admin/images/jstree/"; 17 | @base-height: 40px; 18 | 19 | @import "mixins.less"; 20 | @import "base.less"; 21 | @import "main.less"; 22 | @import "custom.less"; -------------------------------------------------------------------------------- /modules/Admin/Resources/assets/sass/_custom.scss: -------------------------------------------------------------------------------- 1 | #cropModal { 2 | .crop-tool { 3 | max-width: 100%; 4 | } 5 | .crop-tool img { 6 | width: 100%; 7 | } 8 | .crop-preview { 9 | height: 415px; 10 | vertical-align: middle; 11 | display: table-cell; 12 | background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC); 13 | } 14 | } -------------------------------------------------------------------------------- /modules/Admin/Resources/assets/sass/_typography.scss: -------------------------------------------------------------------------------- 1 | h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 { 2 | text-transform: uppercase; 3 | font-weight: 500; 4 | } 5 | 6 | h1, .h1{ 7 | font-size: 36px; 8 | } 9 | 10 | h2, .h2{ 11 | font-size: 30px; 12 | } 13 | 14 | h3, .h3{ 15 | font-size: 24px; 16 | } 17 | 18 | h4, .h4{ 19 | font-size: 18px; 20 | } 21 | 22 | h5, .h5{ 23 | font-size: 15px; 24 | } 25 | 26 | h6, .h6{ 27 | font-size: 12px; 28 | } 29 | 30 | .text-primary{ 31 | color: $primary-color; 32 | } 33 | 34 | .text-success{ 35 | color: $success-color; 36 | } 37 | 38 | .text-warning{ 39 | color: $warning-color; 40 | } 41 | 42 | .text-info{ 43 | color: $info-color; 44 | } 45 | 46 | .text-danger{ 47 | color: $danger-color; 48 | } 49 | -------------------------------------------------------------------------------- /modules/Admin/Resources/assets/sass/style.scss: -------------------------------------------------------------------------------- 1 | /* Google fonts */ 2 | @import url(https://fonts.googleapis.com/css?family=Roboto:400,300,100,500,700,900); 3 | 4 | /* Custom CSS */ 5 | @import "variables"; 6 | @import "mixins"; 7 | @import "base"; 8 | @import "preloader"; 9 | @import "typography"; 10 | @import "menu"; 11 | @import "components"; 12 | @import "elements"; 13 | @import "skins"; 14 | @import "media"; 15 | @import "custom"; 16 | -------------------------------------------------------------------------------- /modules/Admin/Resources/assets/vendor/.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules -------------------------------------------------------------------------------- /modules/Admin/Resources/assets/vendor/fonts/Material-Design-Iconic-Font.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/modules/Admin/Resources/assets/vendor/fonts/Material-Design-Iconic-Font.eot -------------------------------------------------------------------------------- /modules/Admin/Resources/assets/vendor/fonts/Material-Design-Iconic-Font.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/modules/Admin/Resources/assets/vendor/fonts/Material-Design-Iconic-Font.ttf -------------------------------------------------------------------------------- /modules/Admin/Resources/assets/vendor/fonts/Material-Design-Iconic-Font.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/modules/Admin/Resources/assets/vendor/fonts/Material-Design-Iconic-Font.woff -------------------------------------------------------------------------------- /modules/Admin/Resources/assets/vendor/fonts/Material-Design-Iconic-Font.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/modules/Admin/Resources/assets/vendor/fonts/Material-Design-Iconic-Font.woff2 -------------------------------------------------------------------------------- /modules/Admin/Resources/assets/vendor/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/modules/Admin/Resources/assets/vendor/images/favicon.ico -------------------------------------------------------------------------------- /modules/Admin/Resources/assets/vendor/images/sort_asc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/modules/Admin/Resources/assets/vendor/images/sort_asc.png -------------------------------------------------------------------------------- /modules/Admin/Resources/assets/vendor/images/sort_asc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/modules/Admin/Resources/assets/vendor/images/sort_asc_disabled.png -------------------------------------------------------------------------------- /modules/Admin/Resources/assets/vendor/images/sort_both.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/modules/Admin/Resources/assets/vendor/images/sort_both.png -------------------------------------------------------------------------------- /modules/Admin/Resources/assets/vendor/images/sort_desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/modules/Admin/Resources/assets/vendor/images/sort_desc.png -------------------------------------------------------------------------------- /modules/Admin/Resources/assets/vendor/images/sort_desc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/modules/Admin/Resources/assets/vendor/images/sort_desc_disabled.png -------------------------------------------------------------------------------- /modules/Admin/Resources/assets/vendor/mix-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "/../../../../../public/themes/admin/css/jstree.css": "/../../../../../public/themes/admin/css/jstree.css", 3 | "/../../../../../public/themes/admin/css/app.css": "/../../../../../public/themes/admin/css/app.css", 4 | "/mix.js.map": "/mix.js.map", 5 | "/E:/WWW/projects/numencode/public/themes/admin/js/app.js": "/E:/WWW/projects/numencode/public/themes/admin/js/app.js", 6 | "/E:/WWW/projects/numencode/public/themes/admin/css/vendor.css": "/E:/WWW/projects/numencode/public/themes/admin/css/vendor.css", 7 | "/E:/WWW/projects/numencode/public/themes/admin/js/vendor.js": "/E:/WWW/projects/numencode/public/themes/admin/js/vendor.js" 8 | } 9 | -------------------------------------------------------------------------------- /modules/Admin/Resources/lang/en/admin.php: -------------------------------------------------------------------------------- 1 | 'This is a successful Admin language translation.', 6 | 7 | ]; 8 | -------------------------------------------------------------------------------- /modules/Admin/Resources/lang/en/codelist.php: -------------------------------------------------------------------------------- 1 | 'Codelist Management', 6 | 7 | 'placeholder' => [ 8 | 'group_title' => 'Enter group title', 9 | 'group_code' => 'Enter group code', 10 | 'item_title' => 'Enter title', 11 | 'item_code' => 'Enter code', 12 | ], 13 | 14 | 'groups' => 'Codelist groups', 15 | 16 | 'new_group' => 'Create new codelist group', 17 | 'update_group' => 'Update group :', 18 | 19 | 'index' => 'Back to Codelist', 20 | 'index_group' => 'Back to Codelist group', 21 | 22 | 'group_create' => 'Create new group', 23 | 'group_created' => 'Codelist group :name created.', 24 | 25 | 'group_update' => 'Update group', 26 | 'group_updated' => 'Codelist group :name updated.', 27 | 28 | 'group_deleted' => 'Codelist group has been successfully deleted.', 29 | 30 | 'items' => 'Codelist items', 31 | 32 | 'new_item' => 'Add new item to :', 33 | 34 | 'item_create' => 'Create new item', 35 | 'item_created' => 'Codelist item :name created.', 36 | 37 | 'item_update' => 'Update codelist item', 38 | 'item_updated' => 'Codelist item :name updated.', 39 | 40 | 'item_deleted' => 'Codelist item has been successfully deleted.', 41 | 42 | ]; 43 | -------------------------------------------------------------------------------- /modules/Admin/Resources/lang/en/contents.php: -------------------------------------------------------------------------------- 1 | 'Always displayed contents', 6 | 7 | 'position' => 'Select placement', 8 | 9 | 'placeholder' => [ 10 | 'title' => 'Enter title', 11 | 'lead' => 'Enter short lead text', 12 | 'body' => 'Enter description', 13 | 'plugin' => '- select a plugin -', 14 | 'page' => '- all pages -', 15 | ], 16 | 17 | 'plugin' => 'Custom plugin', 18 | 19 | 'page' => 'Display on', 20 | 21 | 'update' => 'Update content', 22 | 23 | 'index' => 'Back to Contents list', 24 | 25 | 'create' => 'Create new content', 26 | 'created' => 'Content successfully created.', 27 | 28 | 'update' => 'Update content', 29 | 'updated' => 'Content successfully updated.', 30 | 31 | 'deleted' => 'Content has been successfully deleted.', 32 | 33 | ]; 34 | -------------------------------------------------------------------------------- /modules/Admin/Resources/lang/en/dictionary.php: -------------------------------------------------------------------------------- 1 | 'Dictionary Management', 6 | 7 | 'group' => 'Group', 8 | 9 | 'add' => 'Add new', 10 | 11 | 'create' => 'Create new dictionary item', 12 | 'created' => 'Dictionary item for key :name created.', 13 | 14 | 'placeholder' => [ 15 | 'key' => 'Enter the key for the dictionary item', 16 | 'value' => 'Enter the value for the :lang translation', 17 | ], 18 | 19 | ]; 20 | -------------------------------------------------------------------------------- /modules/Admin/Resources/lang/en/flash.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'title' => 'Are you sure?', 7 | 'notice' => 'This action is irreversible.', 8 | 'confirm_button' => 'Yes, delete it.', 9 | 'cancel_button' => 'Cancel', 10 | ], 11 | 12 | 'logout' => [ 13 | 'title' => 'Are you sure?', 14 | 'notice' => 'You will be logged out of CMS.', 15 | 'confirm_button' => 'Yes, log me out.', 16 | 'cancel_button' => 'Cancel', 17 | ], 18 | 19 | ]; 20 | -------------------------------------------------------------------------------- /modules/Admin/Resources/lang/en/forms.php: -------------------------------------------------------------------------------- 1 | 'Name', 6 | 'title' => 'Title', 7 | 'lead' => 'Lead', 8 | 'label' => 'Label', 9 | 'code' => 'Code', 10 | 'key' => 'Key', 11 | 'value' => 'Value', 12 | 'action' => 'Action', 13 | 'description' => 'Description', 14 | 'url' => 'URL', 15 | 'redirect' => 'Redirect URL', 16 | 'picture' => 'Picture', 17 | 'file' => 'File', 18 | 'select' => '- select one -', 19 | 20 | 'order' => 'Order', 21 | 'order_label' => 'Order', 22 | 'order_placeholder' => 'Set sort order', 23 | 24 | 'submit' => 'Submit', 25 | 26 | 'open_all' => 'Open all', 27 | 'close_all' => 'Close all', 28 | 29 | 'buttons' => [ 30 | 'save' => 'Save', 31 | 'return' => 'Save and return', 32 | 'cancel' => 'Cancel', 33 | ], 34 | 35 | ]; 36 | -------------------------------------------------------------------------------- /modules/Admin/Resources/lang/en/languages.php: -------------------------------------------------------------------------------- 1 | 'Language Management', 6 | 7 | 'add' => 'Add new', 8 | 9 | 'create' => 'Create new language', 10 | 'created' => 'Language :name created.', 11 | 12 | 'update' => 'Update language', 13 | 'updated' => 'Language :name updated.', 14 | 15 | 'delete' => 'Delete language', 16 | 'deleted' => 'Language deleted.', 17 | 18 | 'locale' => 'Locale', 19 | 'label' => 'Label', 20 | 21 | 'placeholder' => [ 22 | 'locale' => 'Enter the 2-letter locale', 23 | 'label' => 'Enter the language title', 24 | ], 25 | 26 | ]; 27 | -------------------------------------------------------------------------------- /modules/Admin/Resources/lang/en/menus.php: -------------------------------------------------------------------------------- 1 | 'Menu Management', 6 | 7 | 'types' => 'Menu Types', 8 | 9 | 'create' => 'Create new menu type', 10 | 'created' => 'Menu type :name created.', 11 | 12 | 'update' => 'Update menu type', 13 | 'updated' => 'Menu type :name updated.', 14 | 15 | 'deleted' => 'Menu type has been successfully deleted.', 16 | 17 | 'index' => 'Back to menu type list', 18 | 19 | 'placeholder' => [ 20 | 'code' => 'Enter menu type code', 21 | 'title' => 'Enter menu type title', 22 | ], 23 | 24 | ]; 25 | -------------------------------------------------------------------------------- /modules/Admin/Resources/lang/en/messages.php: -------------------------------------------------------------------------------- 1 | 'Success', 6 | 'deleted' => 'The item has been deleted.', 7 | 'error' => 'Error', 8 | 'error_notice' => 'An unexpected error occurred while performing this action.', 9 | 'error_auth' => 'You are not authorized to perform this action.', 10 | 11 | 'tasks' => [ 12 | 'submit_create' => 'Submit', 13 | 'submit_update' => 'Update a task', 14 | 'created' => 'Task has been successfully created!', 15 | 'updated' => 'Task has been successfully updated!', 16 | 'deleted' => 'Task has been successfully deleted!', 17 | ], 18 | 19 | ]; 20 | -------------------------------------------------------------------------------- /modules/Admin/Resources/lang/en/pages.php: -------------------------------------------------------------------------------- 1 | 'Page Structure', 6 | 'title' => 'Page Management', 7 | 8 | 'add' => 'Add new page', 9 | 'create' => [ 10 | 'menu' => 'Create new page on', 11 | 'page' => 'Create new sub page for', 12 | ], 13 | 'created' => 'Page :name created.', 14 | 'update' => 'Update page', 15 | 'updated' => 'Page :name updated.', 16 | 'deleted' => 'Page has been successfully deleted.', 17 | 18 | 'empty' => 'Menu type has no elements.', 19 | 20 | 'index' => 'Back to list', 21 | 22 | 'parent' => 'Parent page', 23 | 'menu' => 'Menu', 24 | 'layout' => 'Page layout', 25 | 'name' => 'Title', 26 | 'lead' => 'Lead', 27 | 'body' => 'Content', 28 | 29 | 'placeholder' => [ 30 | 'parent' => 'Select parent page', 31 | 'menu' => 'Select menu type', 32 | 'title' => 'Enter page title', 33 | 'lead' => 'Enter short description', 34 | 'body' => 'Enter page content', 35 | ], 36 | 37 | 'contents' => 'Page Contents', 38 | 39 | ]; 40 | -------------------------------------------------------------------------------- /modules/Admin/Resources/lang/en/permissions.php: -------------------------------------------------------------------------------- 1 | 'Permissions Management', 6 | 7 | 'permissions' => 'Permissions', 8 | 9 | 'create' => 'Create new permission', 10 | 'created' => 'Permission :name created.', 11 | 12 | 'update' => 'Update permission', 13 | 'updated' => 'Permission :name updated.', 14 | 15 | 'deleted' => 'Permission has been successfully deleted.', 16 | 17 | 'index' => 'Back to permissions', 18 | 19 | 'placeholder' => [ 20 | 'name' => 'Enter permission name', 21 | 'label' => 'Enter permission label', 22 | ], 23 | 24 | ]; 25 | -------------------------------------------------------------------------------- /modules/Admin/Resources/lang/en/plugins.php: -------------------------------------------------------------------------------- 1 | 'Plugin Management', 6 | 7 | 'plugins' => 'Plugins', 8 | 9 | 'create' => 'Create new plugin', 10 | 'created' => 'Plugin :name created.', 11 | 12 | 'update' => 'Update plugin', 13 | 'updated' => 'Plugin :name updated.', 14 | 15 | 'deleted' => 'Plugin has been successfully deleted.', 16 | 17 | 'index' => 'Back to plugin list', 18 | 19 | 'placeholder' => [ 20 | 'code' => 'Enter plugin code', 21 | 'title' => 'Enter plugin title', 22 | 'action' => 'Enter action', 23 | 'description' => 'Enter description', 24 | ], 25 | 26 | ]; 27 | -------------------------------------------------------------------------------- /modules/Admin/Resources/lang/en/roles.php: -------------------------------------------------------------------------------- 1 | 'Roles Management', 6 | 7 | 'roles' => 'Roles', 8 | 9 | 'create' => 'Create new role', 10 | 'created' => 'Role :name created.', 11 | 12 | 'update' => 'Update role', 13 | 'updated' => 'Role :name updated.', 14 | 15 | 'deleted' => 'Role has been successfully deleted.', 16 | 17 | 'index' => 'Back to roles', 18 | 'manage' => 'Manage roles', 19 | 20 | 'placeholder' => [ 21 | 'name' => 'Enter role name', 22 | 'label' => 'Enter role label', 23 | ], 24 | 25 | ]; 26 | -------------------------------------------------------------------------------- /modules/Admin/Resources/lang/en/tables.php: -------------------------------------------------------------------------------- 1 | 'Code', 6 | 'name' => 'Name', 7 | 'label' => 'Label', 8 | 'title' => 'Title', 9 | 'order' => 'Order', 10 | 'action' => 'Action', 11 | 'description' => 'Description', 12 | 13 | 'user' => 'User', 14 | 'picture' => 'Picture', 15 | 'email' => 'E-mail', 16 | 'phone' => 'Phone', 17 | 'nickname' => 'Nickname', 18 | 19 | 'new' => 'New', 20 | 'edit' => 'Edit', 21 | 'show' => 'View', 22 | 'publish' => 'Publish', 23 | 'active' => 'Active', 24 | 'manage' => 'Manage', 25 | 'delete' => 'Delete', 26 | 27 | 'date' => 'Date', 28 | 'created' => 'Created at', 29 | 'updated' => 'Updated at', 30 | 31 | ]; 32 | -------------------------------------------------------------------------------- /modules/Admin/Resources/lang/en/tasks.php: -------------------------------------------------------------------------------- 1 | 'Task Management', 6 | 7 | 'create' => 'Create new task', 8 | 'created' => 'Task :name created.', 9 | 10 | 'update' => 'Update task', 11 | 'updated' => 'Task :name updated.', 12 | 13 | 'deleted' => 'Task has been successfully deleted.', 14 | 15 | 'index' => 'Back to list', 16 | 17 | 'name' => 'Title', 18 | 'body' => 'Description', 19 | 'completed' => 'Completed', 20 | 21 | 'placeholder' => [ 22 | 'title' => 'Enter task title', 23 | 'body' => 'Enter task description', 24 | ], 25 | 26 | ]; 27 | -------------------------------------------------------------------------------- /modules/Admin/Resources/lang/en/users.php: -------------------------------------------------------------------------------- 1 | 'User Management', 6 | 7 | 'create' => 'Create new user', 8 | 'created' => 'User :name created.', 9 | 10 | 'update' => 'Update user', 11 | 'updated' => 'User :name updated.', 12 | 13 | 'deleted' => 'User has been successfully deleted.', 14 | 15 | 'index' => 'Back to user list', 16 | 17 | 'name' => 'Name', 18 | 'nickname' => 'Nickname', 19 | 'email' => 'E-mail', 20 | 'password' => 'Password', 21 | 'avatar' => 'Avatar', 22 | 'is_verified' => 'Verified', 23 | 24 | 'placeholder' => [ 25 | 'name' => 'Enter the name of the user', 26 | 'nickname' => 'Nickname of the user', 27 | 'email' => 'Enter the e-mail of the user', 28 | 'password' => 'Enter the password for the user', 29 | 'password-help' => 'If this field is empty, password will not be changed.', 30 | 'avatar-help' => 'If no file is selected, avatar will not be changed.', 31 | ], 32 | 33 | ]; 34 | -------------------------------------------------------------------------------- /modules/Admin/Resources/views/components/button/delete.blade.php: -------------------------------------------------------------------------------- 1 |
2 | {{ csrf_field() }} 3 | {{ method_field('DELETE') }} 4 | 7 |
-------------------------------------------------------------------------------- /modules/Admin/Resources/views/components/button/edit.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /modules/Admin/Resources/views/components/button/new.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /modules/Admin/Resources/views/components/form/checkbox.blade.php: -------------------------------------------------------------------------------- 1 | @php($inline = isset($inline)) 2 | @php($checked = isset($checked)) 3 | @php($fieldId = Str::camel($field) . '-' . Str::random(10)) 4 | 5 |
6 | 7 | @if(isset($label)) 8 | 11 | @endif 12 | 13 | @if(!$inline) 14 |
15 | @endif 16 | 17 |
18 | 22 |
23 | 24 | @if(!$inline) 25 |
26 | @endif 27 | 28 |
-------------------------------------------------------------------------------- /modules/Admin/Resources/views/components/form/order.blade.php: -------------------------------------------------------------------------------- 1 | @php($inline = isset($inline)) 2 | @php($fieldId = 'sort_order-' . Str::random(10)) 3 | 4 |
5 | 6 | @if($inline) 7 |
8 | @endif 9 | 10 | 13 | 14 | @if(!$inline) 15 |
16 |
17 | @endif 18 | 19 | 26 | 27 |
28 | 29 | {{ $errors->first('sort_order', ':message') }} 30 | 31 | 32 | @if(!$inline) 33 |
34 | @endif 35 | 36 |
-------------------------------------------------------------------------------- /modules/Admin/Resources/views/components/form/save.blade.php: -------------------------------------------------------------------------------- 1 | @php($inline = isset($inline)) 2 | 3 |
4 | 5 | @if(!$inline) 6 |
7 | @endif 8 | 9 | 12 | 15 | 16 | @lang('admin::forms.buttons.cancel') 17 | 18 | 19 | @if($inline) 20 | 21 | @else 22 |
23 | @endif 24 | 25 |
-------------------------------------------------------------------------------- /modules/Admin/Resources/views/components/form/submit.blade.php: -------------------------------------------------------------------------------- 1 | @php($inline = isset($inline)) 2 | 3 |
4 | 5 | @if(!$inline) 6 |
7 | @endif 8 | 9 | 17 | 18 | @if($inline) 19 | 20 | @else 21 |
22 | @endif 23 | 24 |
-------------------------------------------------------------------------------- /modules/Admin/Resources/views/components/form/textarea.blade.php: -------------------------------------------------------------------------------- 1 | @php($inline = isset($inline)) 2 | @php($fieldId = Str::camel($field) . '-' . Str::random(10)) 3 | 4 |
5 | 6 | @if(isset($label)) 7 | 10 | @endif 11 | 12 | @if(!$inline) 13 |
14 | @endif 15 | 16 | 22 | 23 | 24 | {!! isset($help) ? $help . '
' : '' !!} 25 | {{ $errors->first($field, ':message') }} 26 |
27 | 28 | @if(!$inline) 29 |
30 | @endif 31 | 32 |
-------------------------------------------------------------------------------- /modules/Admin/Resources/views/footer.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | @include('admin::flash') 5 | 6 | @yield('scripts') 7 | -------------------------------------------------------------------------------- /modules/Admin/Resources/views/menus/item.blade.php: -------------------------------------------------------------------------------- 1 |
  • 2 | {{ $item->title }} 3 | @if(isset($menu[$item->id])) 4 | @include('admin::menus.list', ['collection' => $menu[$item->id]]) 5 | @endif 6 |
  • -------------------------------------------------------------------------------- /modules/Admin/Resources/views/menus/list.blade.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /modules/Admin/Resources/views/pages/tree/option-item.blade.php: -------------------------------------------------------------------------------- 1 | 8 | 9 | @if(isset($pageStructure[$pageElement->id])) 10 | @include('admin::pages.tree.option-list', [ 11 | 'pageCollection' => $pageStructure[$pageElement->id], 12 | 'level' => ++$level, 13 | ]) 14 | @endif -------------------------------------------------------------------------------- /modules/Admin/Resources/views/pages/tree/option-list.blade.php: -------------------------------------------------------------------------------- 1 | @foreach($pageCollection as $pageElement) 2 | @if(config('numencode.page.max_depth')+1 >= $level) 3 | @include('admin::pages.tree.option-item') 4 | @endif 5 | @endforeach -------------------------------------------------------------------------------- /modules/Admin/Resources/views/pages/tree/structure-list.blade.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /modules/Admin/Resources/views/tasks/show.blade.php: -------------------------------------------------------------------------------- 1 | @extends('admin::layout') 2 | 3 | @section('title') 4 | @lang('admin::tasks.title') 5 | @endsection 6 | 7 | @section('content') 8 | 9 |
    10 | 11 |
    12 |
    13 |
    14 |
    {{ $task->title }}
    15 |
    16 | 17 | 18 |
    19 |
    20 |
    21 |

    {{ $task->body }}

    22 |
    23 |
    24 |
    25 | 26 |
    27 | 28 | @endsection -------------------------------------------------------------------------------- /modules/Cms/Http/Auth/LoginWithThrottleController.php: -------------------------------------------------------------------------------- 1 | updateUser(auth()->user(), $request); 32 | 33 | flash()->success(trans('messages.success'), trans('messages.user_profile.profile_success')); 34 | 35 | return redirect()->back(); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /modules/Cms/Http/BaseController.php: -------------------------------------------------------------------------------- 1 | user(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /modules/Cms/Http/HomeController.php: -------------------------------------------------------------------------------- 1 | items; 17 | 18 | return view('theme::pages.home', compact('promotions')); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /modules/Cms/Http/Middleware/IsAuthenticated.php: -------------------------------------------------------------------------------- 1 | auth = $auth; 26 | } 27 | 28 | /** 29 | * Check if user is authenticated or else display login screen. 30 | * 31 | * @param Request $request 32 | * @param callable $next 33 | * 34 | * @return mixed 35 | */ 36 | public function handle(Request $request, Closure $next) 37 | { 38 | if (!$this->auth->check()) { 39 | return redirect(get_route('login') . '?ref=profile'); 40 | } 41 | 42 | return $next($request); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /modules/Cms/Http/Middleware/IsGuest.php: -------------------------------------------------------------------------------- 1 | auth = $auth; 26 | } 27 | 28 | /** 29 | * Check if user is guest or else redirect to a homepage. 30 | * 31 | * @param Request $request 32 | * @param callable $next 33 | * @return mixed 34 | */ 35 | public function handle(Request $request, Closure $next) 36 | { 37 | if ($this->auth->check()) { 38 | return redirect('/'); 39 | } 40 | 41 | return $next($request); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /modules/Cms/Http/Middleware/Localization.php: -------------------------------------------------------------------------------- 1 | getLocaleFromRequest($request); 21 | app()->setLocale($locale ?: config('app.fallback_locale')); 22 | 23 | return $next($request); 24 | } 25 | 26 | /** 27 | * Return locale based on requested URI. 28 | * 29 | * @param Request $request 30 | * @return null|string 31 | */ 32 | public function getLocaleFromRequest(Request $request) 33 | { 34 | $locales = Language::getAllLocales()->keys()->toArray(); 35 | $locale = $request->segment(1); 36 | 37 | return in_array($locale, $locales) ? $locale : null; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /modules/Cms/Http/PageController.php: -------------------------------------------------------------------------------- 1 | 'required|max:255', 21 | 'nickname' => $this->nickname == $user->nickname ? '' : 'max:255|unique:users', 22 | 'email' => $this->email == $user->email ? '' : 'required|email|max:255|unique:users', 23 | 'password' => empty($this->password) ? '' : 'required|confirmed|min:6', 24 | 'avatar' => 'mimes:jpg,jpeg,png,gif,bmp', 25 | ]; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /modules/Cms/Http/TaskController.php: -------------------------------------------------------------------------------- 1 | get(); 17 | 18 | return view('theme::tasks.list', compact('tasks')); 19 | } 20 | 21 | /** 22 | * Display a random task. 23 | * 24 | * @return \Illuminate\View\View 25 | */ 26 | public function random() 27 | { 28 | $task = Task::inRandomOrder()->first(); 29 | 30 | return view('theme::tasks.show', compact('task')); 31 | } 32 | 33 | /** 34 | * Display a specific task. 35 | * 36 | * @param object $params Data parameters 37 | * 38 | * @return \Illuminate\View\View 39 | */ 40 | public function show($params) 41 | { 42 | return view('theme::tasks.show', [ 43 | 'data' => $params, 44 | 'task' => Task::find($params->task_id), 45 | ]); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /modules/Cms/Http/ViewComposers/PageComposer.php: -------------------------------------------------------------------------------- 1 | with('signedIn', Auth::guard()->check()); 20 | 21 | $view->with('user', Auth::guard()->user()); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /modules/Cms/Mail/EmailVerification.php: -------------------------------------------------------------------------------- 1 | user = $user; 25 | } 26 | 27 | /** 28 | * Build the message. 29 | * 30 | * @return $this 31 | */ 32 | public function build() 33 | { 34 | return $this->view('theme::emails.verification') 35 | ->subject('Please, verify your e-mail') 36 | ->with(['data' => $this->user]); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /modules/Cms/Mail/PasswordReset.php: -------------------------------------------------------------------------------- 1 | token = $token; 25 | } 26 | 27 | /** 28 | * Build the message. 29 | * 30 | * @return $this 31 | */ 32 | public function build() 33 | { 34 | return $this->view('theme::emails.password') 35 | ->subject('Password reset request') 36 | ->with(['token' => $this->token]); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /modules/Cms/Resources/assets/images/flags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/modules/Cms/Resources/assets/images/flags.png -------------------------------------------------------------------------------- /modules/Cms/Resources/assets/js/components/ExampleComponent.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 24 | -------------------------------------------------------------------------------- /modules/Cms/Resources/assets/sass/_components.scss: -------------------------------------------------------------------------------- 1 | // User 2 | .user-avatar-small { 3 | margin-top: 5px; 4 | border-radius: 10px; 5 | } 6 | .user-avatar-big { 7 | margin: 0 auto; 8 | border-radius: 10px; 9 | } 10 | .user-avatar-update { 11 | margin-bottom: 10px; 12 | border-radius: 4px; 13 | } 14 | 15 | // Panels 16 | .bottom { 17 | .panel { 18 | .panel-body { 19 | hr { 20 | display: none; 21 | } 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /modules/Cms/Resources/assets/sass/_variables.scss: -------------------------------------------------------------------------------- 1 | 2 | // Body 3 | $body-bg: #fff; 4 | 5 | // Borders 6 | $laravel-border-color: darken($body-bg, 10%); 7 | $list-group-border: $laravel-border-color; 8 | $navbar-default-border: $laravel-border-color; 9 | $panel-default-border: $laravel-border-color; 10 | $panel-inner-border: $laravel-border-color; 11 | 12 | // Brands 13 | $brand-primary: #3097D1; 14 | $brand-info: #8eb4cb; 15 | $brand-success: #2ab27b; 16 | $brand-warning: #cbb956; 17 | $brand-danger: #bf5329; 18 | 19 | // Typography 20 | $font-family-sans-serif: "Raleway", sans-serif; 21 | $font-size-base: 14px; 22 | $line-height-base: 1.6; 23 | $text-color: #636b6f; 24 | 25 | // Navbar 26 | $navbar-default-bg: #fff; 27 | 28 | // Buttons 29 | $btn-default-color: $text-color; 30 | 31 | // Inputs 32 | $input-border: lighten($text-color, 40%); 33 | $input-border-focus: lighten($brand-primary, 25%); 34 | $input-color-placeholder: lighten($text-color, 30%); 35 | 36 | // Panels 37 | $panel-default-heading-bg: #fff; 38 | 39 | // Fonts 40 | $icon-font-path: "~bootstrap-sass/assets/fonts/bootstrap/"; 41 | $fa-font-path: "~font-awesome/fonts"; -------------------------------------------------------------------------------- /modules/Cms/Resources/assets/sass/app.scss: -------------------------------------------------------------------------------- 1 | // Variables 2 | @import "variables"; 3 | 4 | // Bootstrap 5 | @import "node_modules/bootstrap-sass/assets/stylesheets/bootstrap"; 6 | 7 | // Awesome Bootstrap Checkbox 8 | @import "node_modules/awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.scss"; 9 | 10 | // Sweet Alert 2 11 | @import "node_modules/sweetalert2/src/sweetalert2.scss"; 12 | 13 | // Font Awesome 14 | @import "node_modules/font-awesome/scss/font-awesome.scss"; 15 | 16 | // Login and Register Form 17 | @import "login-register-form"; 18 | 19 | // Flags 20 | @import "flags"; 21 | 22 | // Components 23 | @import "components"; 24 | 25 | // Navbar 26 | @import "navbar"; 27 | 28 | html { 29 | position: relative; 30 | min-height: 100%; 31 | } 32 | 33 | body { 34 | padding-top: 40px; 35 | margin-bottom: 60px; 36 | } 37 | 38 | .jumbotron { 39 | text-align: center; 40 | } 41 | 42 | .footer { 43 | position: absolute; 44 | bottom: 0; 45 | width: 100%; 46 | height: 60px; 47 | background-color: #f5f5f5; 48 | p { 49 | padding-top: 20px; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /modules/Cms/Resources/lang/en/blog.php: -------------------------------------------------------------------------------- 1 | 'Posted on', 5 | 'leave_comment' => 'Leave a Comment', 6 | 'submit_comment' => 'Submit comment', 7 | 'comments' => 'Comments', 8 | 'search' => 'Blog Search', 9 | 'entries' => 'Blog Entries', 10 | 'leave_feedback' => 'Leave feedback!', 11 | 'feedback_text' => 'We would really appreciate your feedback on this article. Please login and leave us a comment! Thank you!', 12 | ); 13 | -------------------------------------------------------------------------------- /modules/Cms/Resources/lang/en/contact.php: -------------------------------------------------------------------------------- 1 | 'Your name', 5 | 'email' => 'Your email', 6 | 'phone' => 'Your phone', 7 | 'message' => 'Message', 8 | 'submit' => 'Send message', 9 | ); 10 | -------------------------------------------------------------------------------- /modules/Cms/Resources/lang/en/content.php: -------------------------------------------------------------------------------- 1 | 'Author', 5 | ); 6 | -------------------------------------------------------------------------------- /modules/Cms/Resources/lang/en/general.php: -------------------------------------------------------------------------------- 1 | 'Home', 5 | 'sidebar_menu' => 'Sidebar Menu', 6 | 'login' => 'Login', 7 | 'logout' => 'Logout', 8 | ); 9 | -------------------------------------------------------------------------------- /modules/Cms/Resources/lang/en/home.php: -------------------------------------------------------------------------------- 1 | 'Numencode CMS Demo Template', 5 | 'read_more' => 'Read more', 6 | ); 7 | -------------------------------------------------------------------------------- /modules/Cms/Resources/lang/en/messages.php: -------------------------------------------------------------------------------- 1 | 'Success', 5 | 'error' => 'Error', 6 | 'password_reset_title' => 'Password reset', 7 | 'password_reset_forgotten' => 'Forgotten password', 8 | 'password_reset_link_sent' => 'Password reset link was sent to your email address :email.', 9 | 'password_reset_success' => 'Your password was successfully updated.', 10 | 'password_reset_invalid_user' => 'There is no user registered with that email address.', 11 | ); 12 | -------------------------------------------------------------------------------- /modules/Cms/Resources/lang/sl/blog.php: -------------------------------------------------------------------------------- 1 | 'Objavljeno dne', 5 | 'leave_comment' => 'Napišite komentar', 6 | 'submit_comment' => 'Pošlji komentar', 7 | 'comments' => 'Komentarji', 8 | 'search' => 'Iskanje po blogu', 9 | 'entries' => 'Blog zapisi', 10 | 'leave_feedback' => 'Kakšno je vaše mnenje?', 11 | 'feedback_text' => 'Zanima nas vaše mnenje o članku. Prosimo, prijavite se in nam sporočite vaše mnenje! Hvala!', 12 | ); 13 | -------------------------------------------------------------------------------- /modules/Cms/Resources/lang/sl/contact.php: -------------------------------------------------------------------------------- 1 | 'Vaše ime', 5 | 'email' => 'Vaš email', 6 | 'phone' => 'Vaš telefon', 7 | 'message' => 'Sporočilo', 8 | 'submit' => 'Pošlji sporočilo', 9 | ); 10 | -------------------------------------------------------------------------------- /modules/Cms/Resources/lang/sl/content.php: -------------------------------------------------------------------------------- 1 | 'Avtor', 5 | ); 6 | -------------------------------------------------------------------------------- /modules/Cms/Resources/lang/sl/general.php: -------------------------------------------------------------------------------- 1 | 'Domov', 5 | 'sidebar_menu' => 'Stranski Meni', 6 | 'login' => 'Prijava', 7 | 'logout' => 'Odjava', 8 | ); 9 | -------------------------------------------------------------------------------- /modules/Cms/Resources/lang/sl/home.php: -------------------------------------------------------------------------------- 1 | 'Numencode CMS Demo Predloga', 5 | 'read_more' => 'Preberite več', 6 | ); 7 | -------------------------------------------------------------------------------- /modules/Cms/Resources/lang/sl/messages.php: -------------------------------------------------------------------------------- 1 | 'Uspešno', 5 | 'error' => 'Napaka', 6 | 'password_reset_title' => 'Ponastavitev gesla', 7 | 'password_reset_forgotten' => 'Pozabljeno geslo', 8 | 'password_reset_link_sent' => 'Povezava za ponastavitev gesla je bila poslana na vaš e-mail :email.', 9 | 'password_reset_success' => 'Vaše geslo je bilo uspešno posodobljeno.', 10 | 'password_reset_invalid_user' => 'Uporabnik s tem e-mailom ne obstaja.', 11 | ); 12 | -------------------------------------------------------------------------------- /modules/Cms/Resources/views/blog/category.blade.php: -------------------------------------------------------------------------------- 1 |
    2 |
    3 | 4 | @foreach($blogCategory->items as $blogItem) 5 | 6 |

    7 | {{ $blogItem->title }} 8 |

    9 | 10 | @if($blogItem->lead) 11 |

    {{ $blogItem->lead }}

    12 | @endif 13 | 14 |

    @lang('theme::blog.posted_on') {{ $blogItem->created_at->format(config('numencode.dates.date')) }}

    15 | 16 |
    17 | 18 | {{----}} 19 | 20 | {{--
    --}} 21 | 22 |

    {!! Str::limit($blogItem->body, 200) !!}

    23 | 24 | @lang('theme::home.read_more') 25 | 26 | @if(!$loop->last) 27 |
    28 | @endif 29 | 30 | @endforeach 31 | 32 |
    33 |
    -------------------------------------------------------------------------------- /modules/Cms/Resources/views/blog/random.blade.php: -------------------------------------------------------------------------------- 1 | @if($randomBlog) 2 |
    3 |
    4 |

    {{ $randomBlog->title }} ({{ $randomBlog->created_at->format(config('numencode.dates.date')) }})

    5 |
    6 |
    7 |

    {!! Str::limit($randomBlog->body, 200) !!}

    8 |
    9 | 14 |
    15 | @endif -------------------------------------------------------------------------------- /modules/Cms/Resources/views/emails/password.blade.php: -------------------------------------------------------------------------------- 1 | @extends('theme::emails.partials.layout', [ 2 | 'action' => [ 3 | 'title' => 'Reset Password', 4 | 'url' => route("password", compact("token")), 5 | 'color' => 'blue', 6 | ], 7 | ]) 8 | 9 | @section('title') 10 | Reset Your Password 11 | @endsection 12 | 13 | @section('intro') 14 | Click here to reset your password: 15 | @endsection 16 | 17 | @section('outro') 18 | If you haven't requested password reset, please ignore this email. 19 | @endsection 20 | -------------------------------------------------------------------------------- /modules/Cms/Resources/views/emails/verification.blade.php: -------------------------------------------------------------------------------- 1 | @extends('theme::emails.partials.layout', [ 2 | 'action' => [ 3 | 'title' => 'Verify My Email Address', 4 | 'url' => route("register.verify", ['token' => $data->token]), 5 | 'color' => 'green', 6 | ], 7 | ]) 8 | 9 | @section('title') 10 | Verify Your E-mail Address 11 | @endsection 12 | 13 | @section('intro') 14 | We just need you to verify your email address real quick! 15 | @endsection 16 | 17 | @section('outro') 18 | Thanks, have a lovely day. 19 | @endsection 20 | -------------------------------------------------------------------------------- /modules/Cms/Resources/views/flash.blade.php: -------------------------------------------------------------------------------- 1 | @if (session()->has('flash_message')) 2 | 11 | @endif 12 | 13 | @if (session()->has('flash_message_overlay')) 14 | 22 | @endif -------------------------------------------------------------------------------- /modules/Cms/Resources/views/footer.blade.php: -------------------------------------------------------------------------------- 1 | 8 | 9 | 10 | 11 | 12 | 13 | @include('theme::flash') -------------------------------------------------------------------------------- /modules/Cms/Resources/views/layouts/map.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | @hasSection('title') 12 | @yield('title') 13 | @else 14 | Numencode Demo Website 15 | @endif 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | @menu('sidebar') 25 | 26 | @menu('main') 27 | 28 |
    29 | @hasSection('title') 30 |
    31 |

    @yield('title')

    32 |
    33 | @endif 34 | 35 | @hasSection('content') 36 | @yield('content') 37 | @endif 38 |
    39 | 40 | @include('theme::footer') 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /modules/Cms/Resources/views/menus/sidebar.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /modules/Cms/Resources/views/pages/content.blade.php: -------------------------------------------------------------------------------- 1 |
    2 | 3 | @if($content->title) 4 |

    {{ $content->title }}

    5 | @endif 6 | 7 | @if($content->lead) 8 |

    {{ $content->lead }}

    9 | @endif 10 | 11 | @if($content->body) 12 | {!! $content->body !!} 13 | @endif 14 | 15 | @if($content->plugin_id) 16 | {!! $content->renderPlugin() !!} 17 | @endif 18 | 19 |
    -------------------------------------------------------------------------------- /modules/Cms/Resources/views/pages/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('theme::layouts.' . $page->layout) 2 | 3 | @section('title') 4 | @if($page->title) 5 | {{ $page->title }} 6 | @endif 7 | @endsection 8 | 9 | @section('content') 10 | 11 | @if($page->lead) 12 |

    {{ $page->lead }}

    13 | @endif 14 | 15 | @if($page->body) 16 | {!! $page->body !!} 17 | @endif 18 | 19 | @endsection 20 | 21 | @section('plugins_center') 22 | @each('theme::pages.content', $page->getContents('center'), 'content') 23 | @endsection 24 | 25 | @section('plugins_bottom') 26 | @each('theme::pages.content', $page->getContents('bottom'), 'content') 27 | @endsection -------------------------------------------------------------------------------- /modules/Cms/Resources/views/tasks/show.blade.php: -------------------------------------------------------------------------------- 1 |
    2 |
    3 |

    {{ $task->title }}

    4 |
    5 |
    6 | 7 |
    8 |
    9 |

    {!! $task->body !!}

    10 | @if(isset($data) && ($data->first_name || $data->last_name)) 11 |
    @lang('theme::content.author'): {{ $data->first_name }} {{ $data->last_name }}
    12 | @endif 13 |
    14 |
    -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "dev": "npm run development", 5 | "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", 6 | "watch": "npm run development -- --watch", 7 | "watch-poll": "npm run watch -- --watch-poll", 8 | "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", 9 | "prod": "npm run production", 10 | "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" 11 | }, 12 | "devDependencies": { 13 | "awesome-bootstrap-checkbox": "^0.3.7", 14 | "axios": "^0.19", 15 | "bootstrap-sass": "^3.4.1", 16 | "cross-env": "^6.0.3", 17 | "font-awesome": "^4.7.0", 18 | "jquery": "^3.4.1", 19 | "laravel-mix": "^5.0.0", 20 | "lodash": "^4.17.15", 21 | "popper.js": "^1.16.0", 22 | "resolve-url-loader": "^3.1.0", 23 | "sass": "^1.23.0", 24 | "sass-loader": "^8.0.0", 25 | "sweetalert2": "^7.33.1", 26 | "vue": "^2.6.10", 27 | "vue-template-compiler": "^2.6.10" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | ./tests/Unit 14 | 15 | 16 | 17 | ./tests/Feature 18 | 19 | 20 | 21 | 22 | ./app 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /public/.gitignore: -------------------------------------------------------------------------------- 1 | phpmyadmin 2 | -------------------------------------------------------------------------------- /public/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | 3 | Options -MultiViews -Indexes 4 | 5 | 6 | RewriteEngine On 7 | 8 | # Handle Authorization Header 9 | RewriteCond %{HTTP:Authorization} . 10 | RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 11 | 12 | # Redirect Trailing Slashes If Not A Folder... 13 | RewriteCond %{REQUEST_FILENAME} !-d 14 | RewriteCond %{REQUEST_URI} (.+)/$ 15 | RewriteRule ^ %1 [L,R=301] 16 | 17 | # Handle Front Controller... 18 | RewriteCond %{REQUEST_FILENAME} !-d 19 | RewriteCond %{REQUEST_FILENAME} !-f 20 | RewriteRule ^ index.php [L] 21 | 22 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/favicon.ico -------------------------------------------------------------------------------- /public/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /public/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /public/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /public/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /public/fonts/vendor/bootstrap-sass/bootstrap/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/fonts/vendor/bootstrap-sass/bootstrap/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /public/fonts/vendor/bootstrap-sass/bootstrap/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/fonts/vendor/bootstrap-sass/bootstrap/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /public/fonts/vendor/bootstrap-sass/bootstrap/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/fonts/vendor/bootstrap-sass/bootstrap/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /public/fonts/vendor/bootstrap-sass/bootstrap/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/fonts/vendor/bootstrap-sass/bootstrap/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /public/fonts/vendor/font-awesome/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/fonts/vendor/font-awesome/fontawesome-webfont.eot -------------------------------------------------------------------------------- /public/fonts/vendor/font-awesome/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/fonts/vendor/font-awesome/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /public/fonts/vendor/font-awesome/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/fonts/vendor/font-awesome/fontawesome-webfont.woff -------------------------------------------------------------------------------- /public/fonts/vendor/font-awesome/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/fonts/vendor/font-awesome/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /public/images/flags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/images/flags.png -------------------------------------------------------------------------------- /public/mix-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "/themes/default/js/app.js": "/themes/default/js/app.js?id=07a1012b9f034304297e", 3 | "/themes/default/css/app.css": "/themes/default/css/app.css?id=84ce50a993c6c425f8ce", 4 | "/themes/default/js/app.js.map": "/themes/default/js/app.js.map?id=f5651602f6f185e3cf7c", 5 | "/themes/default/css/app.css.map": "/themes/default/css/app.css.map?id=fdfc885913be555044bf", 6 | "/themes/default/js/manifest.js": "/themes/default/js/manifest.js?id=e53c90130454c7fbe101", 7 | "/themes/default/js/manifest.js.map": "/themes/default/js/manifest.js.map?id=06fb1844fc969d96d364", 8 | "/themes/default/js/vendor.js": "/themes/default/js/vendor.js?id=498f29601a0351ea5c47", 9 | "/themes/default/js/vendor.js.map": "/themes/default/js/vendor.js.map?id=9aad226246226bcc8b98" 10 | } 11 | -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /public/themes/admin/fonts/Material-Design-Iconic-Font.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/fonts/Material-Design-Iconic-Font.eot -------------------------------------------------------------------------------- /public/themes/admin/fonts/Material-Design-Iconic-Font.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/fonts/Material-Design-Iconic-Font.ttf -------------------------------------------------------------------------------- /public/themes/admin/fonts/Material-Design-Iconic-Font.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/fonts/Material-Design-Iconic-Font.woff -------------------------------------------------------------------------------- /public/themes/admin/fonts/Material-Design-Iconic-Font.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/fonts/Material-Design-Iconic-Font.woff2 -------------------------------------------------------------------------------- /public/themes/admin/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /public/themes/admin/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /public/themes/admin/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /public/themes/admin/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /public/themes/admin/images/Sorting icons.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/images/Sorting icons.psd -------------------------------------------------------------------------------- /public/themes/admin/images/background/autumn.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/images/background/autumn.jpg -------------------------------------------------------------------------------- /public/themes/admin/images/background/spring.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/images/background/spring.jpg -------------------------------------------------------------------------------- /public/themes/admin/images/background/summer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/images/background/summer.jpg -------------------------------------------------------------------------------- /public/themes/admin/images/background/winter.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/images/background/winter.jpg -------------------------------------------------------------------------------- /public/themes/admin/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/images/favicon.ico -------------------------------------------------------------------------------- /public/themes/admin/images/icon_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/images/icon_logo.png -------------------------------------------------------------------------------- /public/themes/admin/images/jstree/32px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/images/jstree/32px.png -------------------------------------------------------------------------------- /public/themes/admin/images/jstree/folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/images/jstree/folder.png -------------------------------------------------------------------------------- /public/themes/admin/images/jstree/new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/images/jstree/new.png -------------------------------------------------------------------------------- /public/themes/admin/images/jstree/page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/images/jstree/page.png -------------------------------------------------------------------------------- /public/themes/admin/images/jstree/throbber.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/images/jstree/throbber.gif -------------------------------------------------------------------------------- /public/themes/admin/images/marker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/images/marker.png -------------------------------------------------------------------------------- /public/themes/admin/images/mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/images/mask.png -------------------------------------------------------------------------------- /public/themes/admin/images/play-btn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/images/play-btn.png -------------------------------------------------------------------------------- /public/themes/admin/images/quote-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/images/quote-left.png -------------------------------------------------------------------------------- /public/themes/admin/images/quote-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/images/quote-right.png -------------------------------------------------------------------------------- /public/themes/admin/images/sort_asc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/images/sort_asc.png -------------------------------------------------------------------------------- /public/themes/admin/images/sort_asc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/images/sort_asc_disabled.png -------------------------------------------------------------------------------- /public/themes/admin/images/sort_both.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/images/sort_both.png -------------------------------------------------------------------------------- /public/themes/admin/images/sort_desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/images/sort_desc.png -------------------------------------------------------------------------------- /public/themes/admin/images/sort_desc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/images/sort_desc_disabled.png -------------------------------------------------------------------------------- /public/themes/admin/images/wheel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/images/wheel.png -------------------------------------------------------------------------------- /public/themes/admin/img/clear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/img/clear.png -------------------------------------------------------------------------------- /public/themes/admin/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/img/loading.gif -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/advlist/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "advlist" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/advlist') 5 | // ES2015: 6 | // import 'tinymce/plugins/advlist' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/anchor/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "anchor" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/anchor') 5 | // ES2015: 6 | // import 'tinymce/plugins/anchor' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/autolink/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "autolink" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/autolink') 5 | // ES2015: 6 | // import 'tinymce/plugins/autolink' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/autoresize/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "autoresize" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/autoresize') 5 | // ES2015: 6 | // import 'tinymce/plugins/autoresize' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/autosave/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "autosave" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/autosave') 5 | // ES2015: 6 | // import 'tinymce/plugins/autosave' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/bbcode/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "bbcode" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/bbcode') 5 | // ES2015: 6 | // import 'tinymce/plugins/bbcode' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/charmap/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "charmap" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/charmap') 5 | // ES2015: 6 | // import 'tinymce/plugins/charmap' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/code/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "code" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/code') 5 | // ES2015: 6 | // import 'tinymce/plugins/code' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/code/plugin.min.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),o=function(t){return t.getParam("code_dialog_width",600)},i=function(t){return t.getParam("code_dialog_height",Math.min(n.DOM.getViewPort().h-200,500))},c=function(t,n){t.focus(),t.undoManager.transact(function(){t.setContent(n)}),t.selection.setCursorLocation(),t.nodeChanged()},d=function(t){return t.getContent({source_view:!0})},e=function(n){var t=o(n),e=i(n);n.windowManager.open({title:"Source code",body:{type:"textbox",name:"code",multiline:!0,minWidth:t,minHeight:e,spellcheck:!1,style:"direction: ltr; text-align: left"},onSubmit:function(t){c(n,t.data.code)}}).find("#code").value(d(n))},u=function(t){t.addCommand("mceCodeEditor",function(){e(t)})},a=function(t){t.addButton("code",{icon:"code",tooltip:"Source code",onclick:function(){e(t)}}),t.addMenuItem("code",{icon:"code",text:"Source code",onclick:function(){e(t)}})};t.add("code",function(t){return u(t),a(t),{}})}(); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/codesample/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "codesample" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/codesample') 5 | // ES2015: 6 | // import 'tinymce/plugins/codesample' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/colorpicker/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "colorpicker" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/colorpicker') 5 | // ES2015: 6 | // import 'tinymce/plugins/colorpicker' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/colorpicker/plugin.min.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),l=tinymce.util.Tools.resolve("tinymce.util.Color"),a=function(e,n){e.find("#preview")[0].getEl().style.background=n},o=function(e,n){var i=l(n),t=i.toRgb();e.fromJSON({r:t.r,g:t.g,b:t.b,hex:i.toHex().substr(1)}),a(e,i.toHex())},t=function(e,n,i){var t=e.windowManager.open({title:"Color",items:{type:"container",layout:"flex",direction:"row",align:"stretch",padding:5,spacing:10,items:[{type:"colorpicker",value:i,onchange:function(){var e=this.rgb();t&&(t.find("#r").value(e.r),t.find("#g").value(e.g),t.find("#b").value(e.b),t.find("#hex").value(this.value().substr(1)),a(t,this.value()))}},{type:"form",padding:0,labelGap:5,defaults:{type:"textbox",size:7,value:"0",flex:1,spellcheck:!1,onchange:function(){var e,n,i=t.find("colorpicker")[0];if(e=this.name(),n=this.value(),"hex"===e)return o(t,n="#"+n),void i.value(n);n={r:t.find("#r").value(),g:t.find("#g").value(),b:t.find("#b").value()},i.value(n),o(t,n)}},items:[{name:"r",label:"R",autofocus:1},{name:"g",label:"G"},{name:"b",label:"B"},{name:"hex",label:"#",value:"000000"},{name:"preview",type:"container",border:1}]}]},onSubmit:function(){n("#"+t.toJSON().hex)}});o(t,i)};e.add("colorpicker",function(i){i.settings.color_picker_callback||(i.settings.color_picker_callback=function(e,n){t(i,e,n)})})}(); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/contextmenu/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "contextmenu" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/contextmenu') 5 | // ES2015: 6 | // import 'tinymce/plugins/contextmenu' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/directionality/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "directionality" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/directionality') 5 | // ES2015: 6 | // import 'tinymce/plugins/directionality' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/directionality/plugin.min.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),c=tinymce.util.Tools.resolve("tinymce.util.Tools"),e=function(t,e){var i,n=t.dom,o=t.selection.getSelectedBlocks();o.length&&(i=n.getAttrib(o[0],"dir"),c.each(o,function(t){n.getParent(t.parentNode,'*[dir="'+e+'"]',n.getRoot())||n.setAttrib(t,"dir",i!==e?e:null)}),t.nodeChanged())},i=function(t){t.addCommand("mceDirectionLTR",function(){e(t,"ltr")}),t.addCommand("mceDirectionRTL",function(){e(t,"rtl")})},n=function(e){var i=[];return c.each("h1 h2 h3 h4 h5 h6 div p".split(" "),function(t){i.push(t+"[dir="+e+"]")}),i.join(",")},o=function(t){t.addButton("ltr",{title:"Left to right",cmd:"mceDirectionLTR",stateSelector:n("ltr")}),t.addButton("rtl",{title:"Right to left",cmd:"mceDirectionRTL",stateSelector:n("rtl")})};t.add("directionality",function(t){i(t),o(t)})}(); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/emoticons/img/smiley-cool.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/js/plugins/emoticons/img/smiley-cool.gif -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/emoticons/img/smiley-cry.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/js/plugins/emoticons/img/smiley-cry.gif -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/emoticons/img/smiley-embarassed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/js/plugins/emoticons/img/smiley-embarassed.gif -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/emoticons/img/smiley-foot-in-mouth.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/js/plugins/emoticons/img/smiley-foot-in-mouth.gif -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/emoticons/img/smiley-frown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/js/plugins/emoticons/img/smiley-frown.gif -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/emoticons/img/smiley-innocent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/js/plugins/emoticons/img/smiley-innocent.gif -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/emoticons/img/smiley-kiss.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/js/plugins/emoticons/img/smiley-kiss.gif -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/emoticons/img/smiley-laughing.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/js/plugins/emoticons/img/smiley-laughing.gif -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/emoticons/img/smiley-money-mouth.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/js/plugins/emoticons/img/smiley-money-mouth.gif -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/emoticons/img/smiley-sealed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/js/plugins/emoticons/img/smiley-sealed.gif -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/emoticons/img/smiley-smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/js/plugins/emoticons/img/smiley-smile.gif -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/emoticons/img/smiley-surprised.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/js/plugins/emoticons/img/smiley-surprised.gif -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/emoticons/img/smiley-tongue-out.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/js/plugins/emoticons/img/smiley-tongue-out.gif -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/emoticons/img/smiley-undecided.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/js/plugins/emoticons/img/smiley-undecided.gif -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/emoticons/img/smiley-wink.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/js/plugins/emoticons/img/smiley-wink.gif -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/emoticons/img/smiley-yell.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/js/plugins/emoticons/img/smiley-yell.gif -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/emoticons/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "emoticons" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/emoticons') 5 | // ES2015: 6 | // import 'tinymce/plugins/emoticons' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/emoticons/plugin.min.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),e=tinymce.util.Tools.resolve("tinymce.util.Tools"),n=[["cool","cry","embarassed","foot-in-mouth"],["frown","innocent","kiss","laughing"],["money-mouth","sealed","smile","surprised"],["tongue-out","undecided","wink","yell"]],i=function(i){var o;return o='',e.each(n,function(t){o+="",e.each(t,function(t){var e=i+"/img/smiley-"+t+".gif";o+=''}),o+=""}),o+="
    "},o=function(a,t){var e=i(t);a.addButton("emoticons",{type:"panelbutton",panel:{role:"application",autohide:!0,html:e,onclick:function(t){var e,i,o,n=a.dom.getParent(t.target,"a");n&&(e=a,i=n.getAttribute("data-mce-url"),o=n.getAttribute("data-mce-alt"),e.insertContent(e.dom.createHTML("img",{src:i,alt:o})),this.hide())}},tooltip:"Emoticons"})};t.add("emoticons",function(t,e){o(t,e)})}(); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/fullpage/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "fullpage" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/fullpage') 5 | // ES2015: 6 | // import 'tinymce/plugins/fullpage' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/fullscreen/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "fullscreen" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/fullscreen') 5 | // ES2015: 6 | // import 'tinymce/plugins/fullscreen' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/help/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/public/themes/admin/js/plugins/help/img/logo.png -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/help/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "help" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/help') 5 | // ES2015: 6 | // import 'tinymce/plugins/help' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/hr/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "hr" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/hr') 5 | // ES2015: 6 | // import 'tinymce/plugins/hr' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/hr/plugin.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | var hr = (function () { 3 | 'use strict'; 4 | 5 | var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); 6 | 7 | var register = function (editor) { 8 | editor.addCommand('InsertHorizontalRule', function () { 9 | editor.execCommand('mceInsertContent', false, '
    '); 10 | }); 11 | }; 12 | var Commands = { register: register }; 13 | 14 | var register$1 = function (editor) { 15 | editor.addButton('hr', { 16 | icon: 'hr', 17 | tooltip: 'Horizontal line', 18 | cmd: 'InsertHorizontalRule' 19 | }); 20 | editor.addMenuItem('hr', { 21 | icon: 'hr', 22 | text: 'Horizontal line', 23 | cmd: 'InsertHorizontalRule', 24 | context: 'insert' 25 | }); 26 | }; 27 | var Buttons = { register: register$1 }; 28 | 29 | global.add('hr', function (editor) { 30 | Commands.register(editor); 31 | Buttons.register(editor); 32 | }); 33 | function Plugin () { 34 | } 35 | 36 | return Plugin; 37 | 38 | }()); 39 | })(); 40 | -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/hr/plugin.min.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var n=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=function(n){n.addCommand("InsertHorizontalRule",function(){n.execCommand("mceInsertContent",!1,"
    ")})},o=function(n){n.addButton("hr",{icon:"hr",tooltip:"Horizontal line",cmd:"InsertHorizontalRule"}),n.addMenuItem("hr",{icon:"hr",text:"Horizontal line",cmd:"InsertHorizontalRule",context:"insert"})};n.add("hr",function(n){t(n),o(n)})}(); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/image/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "image" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/image') 5 | // ES2015: 6 | // import 'tinymce/plugins/image' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/imagetools/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "imagetools" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/imagetools') 5 | // ES2015: 6 | // import 'tinymce/plugins/imagetools' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/importcss/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "importcss" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/importcss') 5 | // ES2015: 6 | // import 'tinymce/plugins/importcss' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/insertdatetime/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "insertdatetime" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/insertdatetime') 5 | // ES2015: 6 | // import 'tinymce/plugins/insertdatetime' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/legacyoutput/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "legacyoutput" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/legacyoutput') 5 | // ES2015: 6 | // import 'tinymce/plugins/legacyoutput' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/link/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "link" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/link') 5 | // ES2015: 6 | // import 'tinymce/plugins/link' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/lists/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "lists" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/lists') 5 | // ES2015: 6 | // import 'tinymce/plugins/lists' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/media/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "media" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/media') 5 | // ES2015: 6 | // import 'tinymce/plugins/media' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/nonbreaking/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "nonbreaking" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/nonbreaking') 5 | // ES2015: 6 | // import 'tinymce/plugins/nonbreaking' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /public/themes/admin/js/plugins/nonbreaking/plugin.min.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var n=tinymce.util.Tools.resolve("tinymce.PluginManager"),i=function(n,e){var t,i=(t=n).plugins.visualchars&&t.plugins.visualchars.isEnabled()?' ':" ";n.insertContent(function(n,e){for(var t="",i=0;i').css('height', '5rem').attr('src', item.thumb_url) 26 | ); 27 | }); 28 | 29 | // trigger change event 30 | target_preview.trigger('change'); 31 | }; 32 | return false; 33 | }); 34 | } 35 | 36 | })(jQuery); 37 | -------------------------------------------------------------------------------- /resources/lang/en/auth.php: -------------------------------------------------------------------------------- 1 | 'These credentials do not match our records.', 17 | 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', 18 | 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/en/pagination.php: -------------------------------------------------------------------------------- 1 | '« Previous', 17 | 'next' => 'Next »', 18 | 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/en/passwords.php: -------------------------------------------------------------------------------- 1 | 'Passwords must be at least six characters and match the confirmation.', 17 | 'reset' => 'Your password has been reset!', 18 | 'sent' => 'We have e-mailed your password reset link!', 19 | 'token' => 'This password reset token is invalid.', 20 | 'user' => "We can't find a user with that e-mail address.", 21 | 22 | ]; 23 | -------------------------------------------------------------------------------- /resources/views/errors/404.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Content not found. 5 | 6 | 7 | 8 | 39 | 40 | 41 |
    42 |
    43 |
    Error 404 - Content not found.
    44 |
    45 |
    46 | 47 | 48 | -------------------------------------------------------------------------------- /resources/views/errors/503.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Be right back. 5 | 6 | 7 | 8 | 39 | 40 | 41 |
    42 |
    43 |
    Be right back.
    44 |
    45 |
    46 | 47 | 48 | -------------------------------------------------------------------------------- /resources/views/vendor/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlazOrazem/numencode/9e03e040ec543ec1623e7491364aacefbc705966/resources/views/vendor/.gitkeep -------------------------------------------------------------------------------- /routes/admin.guest.php: -------------------------------------------------------------------------------- 1 | name('admin.login'); 11 | Route::post('login', 'LoginController@postLogin')->name('admin.login.post'); 12 | -------------------------------------------------------------------------------- /routes/api.php: -------------------------------------------------------------------------------- 1 | get('/user', function (Request $request) { 17 | return $request->user(); 18 | }); 19 | -------------------------------------------------------------------------------- /routes/auth.authorized.php: -------------------------------------------------------------------------------- 1 | name('logout'); 13 | 14 | // User profile 15 | Route::get('profile', 'ProfileController@showProfileUpdateForm')->name('profile'); 16 | Route::post('profile/update', 'ProfileController@update')->name('profile.update'); 17 | -------------------------------------------------------------------------------- /routes/auth.guest.php: -------------------------------------------------------------------------------- 1 | name('en:login'); 13 | Route::get('sl/prijava', $loginController . '@showLoginForm')->name('sl:login'); 14 | Route::post('login', $loginController . '@login')->name('login.post'); 15 | 16 | // Registration 17 | Route::get('register', 'RegisterController@showRegistrationForm')->name('en:register'); 18 | Route::get('sl/registracija', 'RegisterController@showRegistrationForm')->name('sl:register'); 19 | Route::post('register', 'RegisterController@register')->name('register.post'); 20 | 21 | // Password reset 22 | Route::get('password/email', 'ForgotPasswordController@showLinkRequestForm')->name('password.forget'); 23 | Route::post('password/email', 'ForgotPasswordController@sendResetLinkEmail')->name('password.send'); 24 | Route::get('password/reset/{token}', 'ResetPasswordController@showResetForm')->name('password'); 25 | Route::post('password/reset', 'ResetPasswordController@reset')->name('password.reset'); 26 | -------------------------------------------------------------------------------- /routes/auth.php: -------------------------------------------------------------------------------- 1 | name('register.verify'); -------------------------------------------------------------------------------- /routes/auth.socialite.php: -------------------------------------------------------------------------------- 1 | name('login.socialite'); 10 | -------------------------------------------------------------------------------- /routes/channels.php: -------------------------------------------------------------------------------- 1 | id === (int) $id; 16 | }); 17 | -------------------------------------------------------------------------------- /routes/console.php: -------------------------------------------------------------------------------- 1 | comment(Inspiring::quote()); 18 | })->describe('Display an inspiring quote'); 19 | -------------------------------------------------------------------------------- /routes/public.authorized.php: -------------------------------------------------------------------------------- 1 | name('blog.comment')->middleware('allowance:write_comments'); 11 | -------------------------------------------------------------------------------- /routes/public.php: -------------------------------------------------------------------------------- 1 | name('en:home'); 11 | Route::get('sl/', 'HomeController@index')->name('sl:home'); 12 | 13 | // Pages 14 | Route::get('page/{id}', 'PageController@index'); 15 | Route::get('sl/stran/{id}', 'PageController@index'); 16 | 17 | // Contact form 18 | Route::post('contact', 'PageController@contact')->name('contact'); 19 | -------------------------------------------------------------------------------- /server.php: -------------------------------------------------------------------------------- 1 | 8 | */ 9 | 10 | $uri = urldecode( 11 | parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) 12 | ); 13 | 14 | // This file allows us to emulate Apache's "mod_rewrite" functionality from the 15 | // built-in PHP web server. This provides a convenient way to test a Laravel 16 | // application without having installed a "real" web server software here. 17 | if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) { 18 | return false; 19 | } 20 | 21 | require_once __DIR__.'/public/index.php'; 22 | -------------------------------------------------------------------------------- /storage/app/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /storage/debugbar/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /storage/framework/.gitignore: -------------------------------------------------------------------------------- 1 | config.php 2 | routes.php 3 | compiled.php 4 | services.json 5 | events.scanned.php 6 | routes.scanned.php 7 | down 8 | -------------------------------------------------------------------------------- /storage/framework/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !data/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /storage/framework/cache/data/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /storage/framework/sessions/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/views/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/laravel-analytics/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /storage/logs/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /tests/Browser/AdminTest.php: -------------------------------------------------------------------------------- 1 | browse(function (Browser $browser) { 17 | $browser->visit(route('admin.dashboard')) 18 | ->pause(2000) 19 | ->press('Login') 20 | ->assertSee('The email field is required') 21 | ->assertSee('The password field is required') 22 | ->type('email', 'info@numencode.com') 23 | ->type('password', 'q1w2e3') 24 | ->press('Login') 25 | ->assertSee('Dashboard') 26 | ->screenshot('login-success'); 27 | }); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /tests/Browser/ExampleTest.php: -------------------------------------------------------------------------------- 1 | browse(function (Browser $browser) { 19 | $browser->visit('/') 20 | ->assertSee('Numencode'); 21 | }); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /tests/Browser/Pages/HomePage.php: -------------------------------------------------------------------------------- 1 | '#selector', 39 | ]; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /tests/Browser/Pages/Page.php: -------------------------------------------------------------------------------- 1 | '#selector', 18 | ]; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /tests/Browser/console/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /tests/Browser/screenshots/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /tests/CreatesApplication.php: -------------------------------------------------------------------------------- 1 | make(Kernel::class)->bootstrap(); 19 | 20 | return $app; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /tests/DuskTestCase.php: -------------------------------------------------------------------------------- 1 | addArguments([ 33 | '--disable-gpu', 34 | '--headless' 35 | ]); 36 | 37 | return RemoteWebDriver::create( 38 | 'http://localhost:9515', DesiredCapabilities::chrome()->setCapability( 39 | ChromeOptions::CAPABILITY, $options 40 | ) 41 | ); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /tests/Feature/ExampleTest.php: -------------------------------------------------------------------------------- 1 | get('/'); 18 | 19 | $response->assertStatus(200); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /tests/TestCase.php: -------------------------------------------------------------------------------- 1 | assertTrue(true); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /webpack.mix.js: -------------------------------------------------------------------------------- 1 | const mix = require('laravel-mix'); 2 | 3 | /* 4 | |-------------------------------------------------------------------------- 5 | | Mix Asset Management 6 | |-------------------------------------------------------------------------- 7 | | 8 | | Mix provides a clean, fluent API for defining some Webpack build steps 9 | | for your Laravel application. By default, we are compiling the Sass 10 | | file for the application as well as bundling up all the JS files. 11 | | 12 | */ 13 | 14 | let resources = 'modules/Cms/Resources/assets'; 15 | let publicPath = 'public/themes/default'; 16 | let productionSourceMaps = true; 17 | 18 | mix.sass(resources + '/sass/app.scss', publicPath + '/css') 19 | .js(resources + '/js/app.js', publicPath + '/js') 20 | .extract(['sweetalert2', 'vue']) 21 | .sourceMaps(productionSourceMaps, 'source-map') 22 | .version(); 23 | --------------------------------------------------------------------------------