camaleon_cms_rails6 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README.md +202 -0
- data/Rakefile +32 -0
- data/app/apps/plugins/attack/admin_controller.rb +17 -0
- data/app/apps/plugins/attack/attack_helper.rb +94 -0
- data/app/apps/plugins/attack/config/config.json +31 -0
- data/app/apps/plugins/attack/config/custom_models.rb +8 -0
- data/app/apps/plugins/attack/config/locales/readme.txt +1 -0
- data/app/apps/plugins/attack/config/locales/translation.yml +129 -0
- data/app/apps/plugins/attack/config/routes_admin.txt +2 -0
- data/app/apps/plugins/attack/models/attack.rb +3 -0
- data/app/apps/plugins/attack/views/admin/settings.html.erb +49 -0
- data/app/apps/plugins/authoring_post/authoring_post_helper.rb +51 -0
- data/app/apps/plugins/authoring_post/config/config.json +24 -0
- data/app/apps/plugins/front_cache/admin_controller.rb +29 -0
- data/app/apps/plugins/front_cache/config/config.json +21 -0
- data/app/apps/plugins/front_cache/config/initializer.rb +7 -0
- data/app/apps/plugins/front_cache/config/locales/readme.txt +1 -0
- data/app/apps/plugins/front_cache/config/locales/translation.yml +149 -0
- data/app/apps/plugins/front_cache/config/routes_admin.txt +3 -0
- data/app/apps/plugins/front_cache/front_cache_helper.rb +137 -0
- data/app/apps/plugins/front_cache/views/admin/settings.html.erb +81 -0
- data/app/apps/plugins/visibility_post/assets/js/form.js +30 -0
- data/app/apps/plugins/visibility_post/config/config.json +24 -0
- data/app/apps/plugins/visibility_post/visibility_post_helper.rb +124 -0
- data/app/apps/themes/camaleon_first/assets/css/magnific-ver.css +394 -0
- data/app/apps/themes/camaleon_first/assets/css/main.css +16 -0
- data/app/apps/themes/camaleon_first/assets/css/style-ver.css.scss +251 -0
- data/app/apps/themes/camaleon_first/assets/css/wpbase.css +1 -0
- data/app/apps/themes/camaleon_first/assets/images/empe.jpg +0 -0
- data/app/apps/themes/camaleon_first/assets/images/image.png +0 -0
- data/app/apps/themes/camaleon_first/assets/images/loader.gif +0 -0
- data/app/apps/themes/camaleon_first/assets/images/zoom.png +0 -0
- data/app/apps/themes/camaleon_first/assets/js/hover.zoom.js +67 -0
- data/app/apps/themes/camaleon_first/assets/js/magnific.min.js +3 -0
- data/app/apps/themes/camaleon_first/assets/js/main-ver.js +46 -0
- data/app/apps/themes/camaleon_first/assets/js/main.js +18 -0
- data/app/apps/themes/camaleon_first/assets/js/modernizr.custom.js +4 -0
- data/app/apps/themes/camaleon_first/config/config.json +14 -0
- data/app/apps/themes/camaleon_first/main_helper.rb +33 -0
- data/app/apps/themes/camaleon_first/views/index.html.erb +28 -0
- data/app/apps/themes/camaleon_first/views/layouts/camaleon_cms/mailer.html.erb +22 -0
- data/app/apps/themes/camaleon_first/views/layouts/index.html.erb +84 -0
- data/app/apps/themes/camaleon_first/views/mailer.html.erb +4 -0
- data/app/apps/themes/camaleon_first/views/partials/readme.txt +1 -0
- data/app/apps/themes/camaleon_first/views/template_sample_page.html.erb +6 -0
- data/app/apps/themes/default/assets/css/main.css +13 -0
- data/app/apps/themes/default/assets/css/style.css.scss +3398 -0
- data/app/apps/themes/default/assets/css/styles.css.scss +175 -0
- data/app/apps/themes/default/assets/genericons/COPYING.txt +9 -0
- data/app/apps/themes/default/assets/genericons/Genericons-Regular.otf +0 -0
- data/app/apps/themes/default/assets/genericons/LICENSE.txt +339 -0
- data/app/apps/themes/default/assets/genericons/README.txt +123 -0
- data/app/apps/themes/default/assets/genericons/font/genericons-regular-webfont.eot +0 -0
- data/app/apps/themes/default/assets/genericons/font/genericons-regular-webfont.svg +135 -0
- data/app/apps/themes/default/assets/genericons/font/genericons-regular-webfont.ttf +0 -0
- data/app/apps/themes/default/assets/genericons/font/genericons-regular-webfont.woff +0 -0
- data/app/apps/themes/default/assets/genericons/genericons.css +197 -0
- data/app/apps/themes/default/assets/images/circle.png +0 -0
- data/app/apps/themes/default/assets/images/dotted-line-2x.png +0 -0
- data/app/apps/themes/default/assets/images/dotted-line-light-2x.png +0 -0
- data/app/apps/themes/default/assets/images/dotted-line-light.png +0 -0
- data/app/apps/themes/default/assets/images/dotted-line.png +0 -0
- data/app/apps/themes/default/assets/images/headers/circle-thumbnail.png +0 -0
- data/app/apps/themes/default/assets/images/headers/circle.png +0 -0
- data/app/apps/themes/default/assets/images/headers/diamond-thumbnail.png +0 -0
- data/app/apps/themes/default/assets/images/headers/diamond.png +0 -0
- data/app/apps/themes/default/assets/images/headers/star-thumbnail.png +0 -0
- data/app/apps/themes/default/assets/images/headers/star.png +0 -0
- data/app/apps/themes/default/assets/images/image.png +0 -0
- data/app/apps/themes/default/assets/images/search-icon-2x.png +0 -0
- data/app/apps/themes/default/assets/images/search-icon.png +0 -0
- data/app/apps/themes/default/assets/js/main.js +13 -0
- data/app/apps/themes/default/config/config.json +19 -0
- data/app/apps/themes/default/default_helper.rb +28 -0
- data/app/apps/themes/default/views/admin/settings.html.erb +0 -0
- data/app/apps/themes/default/views/category.html.erb +16 -0
- data/app/apps/themes/default/views/index.html.erb +35 -0
- data/app/apps/themes/default/views/layouts/index.html.erb +84 -0
- data/app/apps/themes/default/views/page.html.erb +14 -0
- data/app/apps/themes/default/views/partials/_breadcrumb.html.erb +10 -0
- data/app/apps/themes/default/views/partials/_categories_list.html.erb +23 -0
- data/app/apps/themes/default/views/partials/_comments.html.erb +40 -0
- data/app/apps/themes/default/views/partials/_comments_list.html.erb +20 -0
- data/app/apps/themes/default/views/partials/_flash_messages.html.erb +26 -0
- data/app/apps/themes/default/views/partials/_forms.html.erb +19 -0
- data/app/apps/themes/default/views/partials/_post_list_item.html.erb +34 -0
- data/app/apps/themes/default/views/partials/_search_form.html.erb +8 -0
- data/app/apps/themes/default/views/partials/_sidebar.html.erb +50 -0
- data/app/apps/themes/default/views/post.html.erb +14 -0
- data/app/apps/themes/default/views/post_tag.html.erb +14 -0
- data/app/apps/themes/default/views/post_type.html.erb +33 -0
- data/app/apps/themes/default/views/search.html.erb +17 -0
- data/app/apps/themes/new/assets/css/main.css +14 -0
- data/app/apps/themes/new/assets/css/styles.css.scss +175 -0
- data/app/apps/themes/new/assets/images/image.png +0 -0
- data/app/apps/themes/new/assets/js/main.js +14 -0
- data/app/apps/themes/new/config/config.json +26 -0
- data/app/apps/themes/new/custom_helper.rb +31 -0
- data/app/apps/themes/new/image.png +0 -0
- data/app/apps/themes/new/views/admin/settings.html.erb +1 -0
- data/app/apps/themes/new/views/category.html.erb +33 -0
- data/app/apps/themes/new/views/index.html.erb +71 -0
- data/app/apps/themes/new/views/layouts/_footer.html.erb +17 -0
- data/app/apps/themes/new/views/layouts/_header.html.erb +38 -0
- data/app/apps/themes/new/views/layouts/index.html.erb +32 -0
- data/app/apps/themes/new/views/page.html.erb +16 -0
- data/app/apps/themes/new/views/post.html.erb +20 -0
- data/app/apps/themes/new/views/post_tag.html.erb +22 -0
- data/app/apps/themes/new/views/post_type.html.erb +33 -0
- data/app/apps/themes/new/views/search.html.erb +18 -0
- data/app/assets/config/camaleon-cms.js +7 -0
- data/app/assets/fonts/camaleon_cms/glyphicons-halflings-regular.eot +0 -0
- data/app/assets/fonts/camaleon_cms/glyphicons-halflings-regular.svg +288 -0
- data/app/assets/fonts/camaleon_cms/glyphicons-halflings-regular.ttf +0 -0
- data/app/assets/fonts/camaleon_cms/glyphicons-halflings-regular.woff +0 -0
- data/app/assets/fonts/camaleon_cms/glyphicons-halflings-regular.woff2 +0 -0
- data/app/assets/images/camaleon.png +0 -0
- data/app/assets/images/camaleon_cms/admin/admin_spinner.gif +0 -0
- data/app/assets/images/camaleon_cms/admin/glyphicons-halflings.png +0 -0
- data/app/assets/images/camaleon_cms/admin/intro/menus.png +0 -0
- data/app/assets/images/camaleon_cms/admin/no_image.jpg +0 -0
- data/app/assets/images/camaleon_cms/bg-tree.jpeg +0 -0
- data/app/assets/images/camaleon_cms/camaleon-dark.png +0 -0
- data/app/assets/images/camaleon_cms/camaleon.png +0 -0
- data/app/assets/images/camaleon_cms/category-icon.png +0 -0
- data/app/assets/images/camaleon_cms/favicon.ico +0 -0
- data/app/assets/images/camaleon_cms/image-not-found.png +0 -0
- data/app/assets/images/camaleon_cms/language/de.png +0 -0
- data/app/assets/images/camaleon_cms/language/en.png +0 -0
- data/app/assets/images/camaleon_cms/language/es.png +0 -0
- data/app/assets/images/camaleon_cms/language/fr.png +0 -0
- data/app/assets/images/camaleon_cms/language/it.png +0 -0
- data/app/assets/images/camaleon_cms/language/nl.png +0 -0
- data/app/assets/images/camaleon_cms/language/pl.png +0 -0
- data/app/assets/images/camaleon_cms/language/pt-BR.png +0 -0
- data/app/assets/images/camaleon_cms/language/pt.png +0 -0
- data/app/assets/images/camaleon_cms/language/ru.png +0 -0
- data/app/assets/images/camaleon_cms/language/uk.png +0 -0
- data/app/assets/images/camaleon_cms/language/zh-CN.png +0 -0
- data/app/assets/images/camaleon_cms/loader.gif +0 -0
- data/app/assets/images/camaleon_cms/users/no-image.jpg +0 -0
- data/app/assets/javascripts/camaleon_cms/admin/_actions.js +91 -0
- data/app/assets/javascripts/camaleon_cms/admin/_bootstrap-datepicker.js +2558 -0
- data/app/assets/javascripts/camaleon_cms/admin/_bootstrap-select.js +7 -0
- data/app/assets/javascripts/camaleon_cms/admin/_custom_fields.js +273 -0
- data/app/assets/javascripts/camaleon_cms/admin/_data.js +69 -0
- data/app/assets/javascripts/camaleon_cms/admin/_i18n.js +32 -0
- data/app/assets/javascripts/camaleon_cms/admin/_jquery-ui.min.js +10 -0
- data/app/assets/javascripts/camaleon_cms/admin/_jquery.slugify.js +67 -0
- data/app/assets/javascripts/camaleon_cms/admin/_jquery.tagsinput.min.js +1 -0
- data/app/assets/javascripts/camaleon_cms/admin/_libraries.js +136 -0
- data/app/assets/javascripts/camaleon_cms/admin/_modal.js +156 -0
- data/app/assets/javascripts/camaleon_cms/admin/_post.js +317 -0
- data/app/assets/javascripts/camaleon_cms/admin/_posttype.js.coffee +27 -0
- data/app/assets/javascripts/camaleon_cms/admin/_translator.js +123 -0
- data/app/assets/javascripts/camaleon_cms/admin/_underscore.js +1536 -0
- data/app/assets/javascripts/camaleon_cms/admin/_user_profile.js +28 -0
- data/app/assets/javascripts/camaleon_cms/admin/admin-basic-manifest.js +3 -0
- data/app/assets/javascripts/camaleon_cms/admin/admin-manifest.js +55 -0
- data/app/assets/javascripts/camaleon_cms/admin/bootstrap-colorpicker.js +540 -0
- data/app/assets/javascripts/camaleon_cms/admin/custom_fields_form.js +94 -0
- data/app/assets/javascripts/camaleon_cms/admin/introjs/_intro.min.js +1317 -0
- data/app/assets/javascripts/camaleon_cms/admin/jquery-sieve.js +6 -0
- data/app/assets/javascripts/camaleon_cms/admin/jquery.nestable.js +485 -0
- data/app/assets/javascripts/camaleon_cms/admin/jquery.validate.js +123 -0
- data/app/assets/javascripts/camaleon_cms/admin/jquery_validate/de.js +20 -0
- data/app/assets/javascripts/camaleon_cms/admin/jquery_validate/es.js +27 -0
- data/app/assets/javascripts/camaleon_cms/admin/jquery_validate/fr.js +49 -0
- data/app/assets/javascripts/camaleon_cms/admin/jquery_validate/it.js +23 -0
- data/app/assets/javascripts/camaleon_cms/admin/jquery_validate/nl.js +33 -0
- data/app/assets/javascripts/camaleon_cms/admin/jquery_validate/pt-BR.js +74 -0
- data/app/assets/javascripts/camaleon_cms/admin/jquery_validate/ru.js +19 -0
- data/app/assets/javascripts/camaleon_cms/admin/jquery_validate/uk.js +23 -0
- data/app/assets/javascripts/camaleon_cms/admin/jquery_validate/zh-CN.js +23 -0
- data/app/assets/javascripts/camaleon_cms/admin/lte/app.js +758 -0
- data/app/assets/javascripts/camaleon_cms/admin/momentjs/_moment.js +3606 -0
- data/app/assets/javascripts/camaleon_cms/admin/momentjs/ar.js +136 -0
- data/app/assets/javascripts/camaleon_cms/admin/momentjs/ca.js +79 -0
- data/app/assets/javascripts/camaleon_cms/admin/momentjs/de.js +76 -0
- data/app/assets/javascripts/camaleon_cms/admin/momentjs/es.js +79 -0
- data/app/assets/javascripts/camaleon_cms/admin/momentjs/fr.js +62 -0
- data/app/assets/javascripts/camaleon_cms/admin/momentjs/it.js +70 -0
- data/app/assets/javascripts/camaleon_cms/admin/momentjs/ja.js +65 -0
- data/app/assets/javascripts/camaleon_cms/admin/momentjs/nl.js +71 -0
- data/app/assets/javascripts/camaleon_cms/admin/momentjs/pl.js +105 -0
- data/app/assets/javascripts/camaleon_cms/admin/momentjs/pt-BR.js +60 -0
- data/app/assets/javascripts/camaleon_cms/admin/momentjs/pt.js +64 -0
- data/app/assets/javascripts/camaleon_cms/admin/momentjs/ru.js +166 -0
- data/app/assets/javascripts/camaleon_cms/admin/momentjs/uk.js +151 -0
- data/app/assets/javascripts/camaleon_cms/admin/momentjs/zh-CN.js +127 -0
- data/app/assets/javascripts/camaleon_cms/admin/nav_menu.js.coffee +139 -0
- data/app/assets/javascripts/camaleon_cms/admin/tageditor/_jquery.caret.min.js +2 -0
- data/app/assets/javascripts/camaleon_cms/admin/tageditor/_jquery.tag-editor.js +352 -0
- data/app/assets/javascripts/camaleon_cms/admin/tinymce/langs/de.js +219 -0
- data/app/assets/javascripts/camaleon_cms/admin/tinymce/langs/en.js +179 -0
- data/app/assets/javascripts/camaleon_cms/admin/tinymce/langs/es.js +177 -0
- data/app/assets/javascripts/camaleon_cms/admin/tinymce/langs/fr.js +219 -0
- data/app/assets/javascripts/camaleon_cms/admin/tinymce/langs/it.js +219 -0
- data/app/assets/javascripts/camaleon_cms/admin/tinymce/langs/nl.js +219 -0
- data/app/assets/javascripts/camaleon_cms/admin/tinymce/langs/pt-BR.js +219 -0
- data/app/assets/javascripts/camaleon_cms/admin/tinymce/langs/readme.md +3 -0
- data/app/assets/javascripts/camaleon_cms/admin/tinymce/langs/ru.js +219 -0
- data/app/assets/javascripts/camaleon_cms/admin/tinymce/langs/uk.js +219 -0
- data/app/assets/javascripts/camaleon_cms/admin/tinymce/langs/zh-CN.js +228 -0
- data/app/assets/javascripts/camaleon_cms/admin/tinymce/plugins/filemanager/plugin.min.js +30 -0
- data/app/assets/javascripts/camaleon_cms/admin/uploader/_cropper.min.js +3003 -0
- data/app/assets/javascripts/camaleon_cms/admin/uploader/_jquery.form.js +1277 -0
- data/app/assets/javascripts/camaleon_cms/admin/uploader/_jquery.uploadfile.min.js +8 -0
- data/app/assets/javascripts/camaleon_cms/admin/uploader/_media_manager.js.coffee +455 -0
- data/app/assets/javascripts/camaleon_cms/admin/uploader/uploader_manifest.js +5 -0
- data/app/assets/javascripts/camaleon_cms/bootstrap.min.js +7 -0
- data/app/assets/stylesheets/camaleon_cms/admin/_bootstrap-datepicker.css.scss +373 -0
- data/app/assets/stylesheets/camaleon_cms/admin/_bootstrap-select.css +7 -0
- data/app/assets/stylesheets/camaleon_cms/admin/_custom_admin.css.scss +359 -0
- data/app/assets/stylesheets/camaleon_cms/admin/_jquery.tagsinput.css +72 -0
- data/app/assets/stylesheets/camaleon_cms/admin/admin-basic-manifest.css +16 -0
- data/app/assets/stylesheets/camaleon_cms/admin/admin-manifest.css +28 -0
- data/app/assets/stylesheets/camaleon_cms/admin/colorpicker.css.scss +96 -0
- data/app/assets/stylesheets/camaleon_cms/admin/img/bg.png +0 -0
- data/app/assets/stylesheets/camaleon_cms/admin/img/colorpicker/alpha.png +0 -0
- data/app/assets/stylesheets/camaleon_cms/admin/img/colorpicker/hue.png +0 -0
- data/app/assets/stylesheets/camaleon_cms/admin/img/colorpicker/saturation.png +0 -0
- data/app/assets/stylesheets/camaleon_cms/admin/img/girls-1.jpg +0 -0
- data/app/assets/stylesheets/camaleon_cms/admin/img/jquery/resize-icon.png +0 -0
- data/app/assets/stylesheets/camaleon_cms/admin/img/loading.gif +1 -0
- data/app/assets/stylesheets/camaleon_cms/admin/img/logo-small.png +0 -0
- data/app/assets/stylesheets/camaleon_cms/admin/img/logo.png +0 -0
- data/app/assets/stylesheets/camaleon_cms/admin/img/no_image.jpg +0 -0
- data/app/assets/stylesheets/camaleon_cms/admin/img/rormeleon-white.png +0 -0
- data/app/assets/stylesheets/camaleon_cms/admin/img/thumb_no_found.jpg +0 -0
- data/app/assets/stylesheets/camaleon_cms/admin/introjs/_introjs.min.css +1 -0
- data/app/assets/stylesheets/camaleon_cms/admin/jquery/_jquery-ui.scss +1226 -0
- data/app/assets/stylesheets/camaleon_cms/admin/jquery/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/app/assets/stylesheets/camaleon_cms/admin/jquery/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/app/assets/stylesheets/camaleon_cms/admin/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/app/assets/stylesheets/camaleon_cms/admin/jquery/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/app/assets/stylesheets/camaleon_cms/admin/jquery/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/app/assets/stylesheets/camaleon_cms/admin/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/app/assets/stylesheets/camaleon_cms/admin/jquery/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/app/assets/stylesheets/camaleon_cms/admin/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/app/assets/stylesheets/camaleon_cms/admin/jquery/images/ui-icons_222222_256x240.png +0 -0
- data/app/assets/stylesheets/camaleon_cms/admin/jquery/images/ui-icons_2e83ff_256x240.png +0 -0
- data/app/assets/stylesheets/camaleon_cms/admin/jquery/images/ui-icons_454545_256x240.png +0 -0
- data/app/assets/stylesheets/camaleon_cms/admin/jquery/images/ui-icons_888888_256x240.png +0 -0
- data/app/assets/stylesheets/camaleon_cms/admin/jquery/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/app/assets/stylesheets/camaleon_cms/admin/lte/_admin.css.scss +4561 -0
- data/app/assets/stylesheets/camaleon_cms/admin/lte/skins/skin-black-light.css +176 -0
- data/app/assets/stylesheets/camaleon_cms/admin/lte/skins/skin-black.css +154 -0
- data/app/assets/stylesheets/camaleon_cms/admin/lte/skins/skin-blue-light.css +167 -0
- data/app/assets/stylesheets/camaleon_cms/admin/lte/skins/skin-blue.css +142 -0
- data/app/assets/stylesheets/camaleon_cms/admin/lte/skins/skin-green-light.css +156 -0
- data/app/assets/stylesheets/camaleon_cms/admin/lte/skins/skin-green.css +134 -0
- data/app/assets/stylesheets/camaleon_cms/admin/lte/skins/skin-purple-light.css +156 -0
- data/app/assets/stylesheets/camaleon_cms/admin/lte/skins/skin-purple.css +135 -0
- data/app/assets/stylesheets/camaleon_cms/admin/lte/skins/skin-red-light.css +156 -0
- data/app/assets/stylesheets/camaleon_cms/admin/lte/skins/skin-red.css +134 -0
- data/app/assets/stylesheets/camaleon_cms/admin/lte/skins/skin-yellow-light.css +156 -0
- data/app/assets/stylesheets/camaleon_cms/admin/lte/skins/skin-yellow.css +134 -0
- data/app/assets/stylesheets/camaleon_cms/admin/nestable/jquery.nestable.css +103 -0
- data/app/assets/stylesheets/camaleon_cms/admin/tageditor/_jquery.tag-editor.css.scss +49 -0
- data/app/assets/stylesheets/camaleon_cms/admin/uploader/_cropper.min.css +9 -0
- data/app/assets/stylesheets/camaleon_cms/admin/uploader/_uploadfile.css.scss +256 -0
- data/app/assets/stylesheets/camaleon_cms/admin/uploader/uploader_manifest.css +4 -0
- data/app/assets/stylesheets/camaleon_cms/admin/widgets.css.scss +26 -0
- data/app/assets/stylesheets/camaleon_cms/bootstrap.min.css.scss +6799 -0
- data/app/controllers/camaleon_cms/admin/appearances/nav_menus_controller.rb +129 -0
- data/app/controllers/camaleon_cms/admin/appearances/themes_controller.rb +29 -0
- data/app/controllers/camaleon_cms/admin/appearances/widgets/assign_controller.rb +41 -0
- data/app/controllers/camaleon_cms/admin/appearances/widgets/main_controller.rb +55 -0
- data/app/controllers/camaleon_cms/admin/appearances/widgets/sidebar_controller.rb +56 -0
- data/app/controllers/camaleon_cms/admin/categories_controller.rb +80 -0
- data/app/controllers/camaleon_cms/admin/comments_controller.rb +90 -0
- data/app/controllers/camaleon_cms/admin/installers_controller.rb +32 -0
- data/app/controllers/camaleon_cms/admin/media_controller.rb +109 -0
- data/app/controllers/camaleon_cms/admin/plugins_controller.rb +46 -0
- data/app/controllers/camaleon_cms/admin/post_tags_controller.rb +81 -0
- data/app/controllers/camaleon_cms/admin/posts/drafts_controller.rb +58 -0
- data/app/controllers/camaleon_cms/admin/posts_controller.rb +212 -0
- data/app/controllers/camaleon_cms/admin/sessions_controller.rb +172 -0
- data/app/controllers/camaleon_cms/admin/settings/custom_fields_controller.rb +108 -0
- data/app/controllers/camaleon_cms/admin/settings/post_types_controller.rb +63 -0
- data/app/controllers/camaleon_cms/admin/settings/sites_controller.rb +87 -0
- data/app/controllers/camaleon_cms/admin/settings_controller.rb +86 -0
- data/app/controllers/camaleon_cms/admin/user_roles_controller.rb +74 -0
- data/app/controllers/camaleon_cms/admin/users_controller.rb +124 -0
- data/app/controllers/camaleon_cms/admin_controller.rb +82 -0
- data/app/controllers/camaleon_cms/apps/plugins_admin_controller.rb +19 -0
- data/app/controllers/camaleon_cms/apps/plugins_front_controller.rb +19 -0
- data/app/controllers/camaleon_cms/apps/themes_admin_controller.rb +12 -0
- data/app/controllers/camaleon_cms/apps/themes_front_controller.rb +12 -0
- data/app/controllers/camaleon_cms/camaleon_controller.rb +139 -0
- data/app/controllers/camaleon_cms/frontend_controller.rb +277 -0
- data/app/controllers/concerns/camaleon_cms/frontend_concern.rb +66 -0
- data/app/decorators/camaleon_cms/application_decorator.rb +54 -0
- data/app/decorators/camaleon_cms/category_decorator.rb +58 -0
- data/app/decorators/camaleon_cms/custom_field_decorator.rb +11 -0
- data/app/decorators/camaleon_cms/custom_fields_concern.rb +81 -0
- data/app/decorators/camaleon_cms/metas_decorator_methods.rb +11 -0
- data/app/decorators/camaleon_cms/nav_menu_item_decorator.rb +4 -0
- data/app/decorators/camaleon_cms/plugin_decorator.rb +3 -0
- data/app/decorators/camaleon_cms/post_comment_decorator.rb +39 -0
- data/app/decorators/camaleon_cms/post_decorator.rb +251 -0
- data/app/decorators/camaleon_cms/post_tag_decorator.rb +45 -0
- data/app/decorators/camaleon_cms/post_type_decorator.rb +87 -0
- data/app/decorators/camaleon_cms/site_decorator.rb +200 -0
- data/app/decorators/camaleon_cms/term_taxonomy_decorator.rb +93 -0
- data/app/decorators/camaleon_cms/theme_decorator.rb +18 -0
- data/app/decorators/camaleon_cms/user_decorator.rb +73 -0
- data/app/decorators/camaleon_cms/user_role_decorator.rb +12 -0
- data/app/decorators/camaleon_cms/widget_decorator.rb +4 -0
- data/app/helpers/camaleon_cms/admin/application_helper.rb +36 -0
- data/app/helpers/camaleon_cms/admin/breadcrumb_helper.rb +15 -0
- data/app/helpers/camaleon_cms/admin/category_helper.rb +24 -0
- data/app/helpers/camaleon_cms/admin/custom_fields_helper.rb +354 -0
- data/app/helpers/camaleon_cms/admin/menus_helper.rb +182 -0
- data/app/helpers/camaleon_cms/admin/post_type_helper.rb +67 -0
- data/app/helpers/camaleon_cms/camaleon_helper.rb +88 -0
- data/app/helpers/camaleon_cms/captcha_helper.rb +93 -0
- data/app/helpers/camaleon_cms/comment_helper.rb +48 -0
- data/app/helpers/camaleon_cms/content_helper.rb +29 -0
- data/app/helpers/camaleon_cms/email_helper.rb +56 -0
- data/app/helpers/camaleon_cms/frontend/application_helper.rb +36 -0
- data/app/helpers/camaleon_cms/frontend/content_select_helper.rb +161 -0
- data/app/helpers/camaleon_cms/frontend/nav_menu_helper.rb +237 -0
- data/app/helpers/camaleon_cms/frontend/seo_helper.rb +86 -0
- data/app/helpers/camaleon_cms/frontend/site_helper.rb +70 -0
- data/app/helpers/camaleon_cms/hooks_helper.rb +57 -0
- data/app/helpers/camaleon_cms/html_helper.rb +134 -0
- data/app/helpers/camaleon_cms/plugins_helper.rb +173 -0
- data/app/helpers/camaleon_cms/session_helper.rb +161 -0
- data/app/helpers/camaleon_cms/short_code_helper.rb +283 -0
- data/app/helpers/camaleon_cms/site_helper.rb +103 -0
- data/app/helpers/camaleon_cms/theme_helper.rb +95 -0
- data/app/helpers/camaleon_cms/uploader_helper.rb +329 -0
- data/app/helpers/camaleon_cms/user_roles_helper.rb +13 -0
- data/app/mailers/camaleon_cms/html_mailer.rb +87 -0
- data/app/models/camaleon_cms/ability.rb +109 -0
- data/app/models/camaleon_cms/category.rb +52 -0
- data/app/models/camaleon_cms/custom_field.rb +35 -0
- data/app/models/camaleon_cms/custom_field_group.rb +136 -0
- data/app/models/camaleon_cms/custom_fields_relationship.rb +27 -0
- data/app/models/camaleon_cms/media.rb +54 -0
- data/app/models/camaleon_cms/meta.rb +4 -0
- data/app/models/camaleon_cms/nav_menu.rb +29 -0
- data/app/models/camaleon_cms/nav_menu_item.rb +64 -0
- data/app/models/camaleon_cms/plugin.rb +76 -0
- data/app/models/camaleon_cms/post.rb +265 -0
- data/app/models/camaleon_cms/post_comment.rb +44 -0
- data/app/models/camaleon_cms/post_default.rb +78 -0
- data/app/models/camaleon_cms/post_relationship.rb +20 -0
- data/app/models/camaleon_cms/post_tag.rb +7 -0
- data/app/models/camaleon_cms/post_type.rb +189 -0
- data/app/models/camaleon_cms/site.rb +242 -0
- data/app/models/camaleon_cms/term_relationship.rb +18 -0
- data/app/models/camaleon_cms/term_taxonomy.rb +61 -0
- data/app/models/camaleon_cms/theme.rb +31 -0
- data/app/models/camaleon_cms/user.rb +18 -0
- data/app/models/camaleon_cms/user_role.rb +138 -0
- data/app/models/camaleon_cms/widget.rb +5 -0
- data/app/models/camaleon_cms/widget/assigned.rb +27 -0
- data/app/models/camaleon_cms/widget/main.rb +44 -0
- data/app/models/camaleon_cms/widget/sidebar.rb +20 -0
- data/app/models/concerns/camaleon_cms/categories_tags_for_posts.rb +132 -0
- data/app/models/concerns/camaleon_cms/custom_fields_read.rb +310 -0
- data/app/models/concerns/camaleon_cms/metas.rb +138 -0
- data/app/models/concerns/camaleon_cms/site_default_settings.rb +87 -0
- data/app/models/concerns/camaleon_cms/user_methods.rb +133 -0
- data/app/models/plugins.rb +5 -0
- data/app/models/themes.rb +5 -0
- data/app/uploaders/camaleon_cms_aws_uploader.rb +132 -0
- data/app/uploaders/camaleon_cms_local_uploader.rb +108 -0
- data/app/uploaders/camaleon_cms_uploader.rb +164 -0
- data/app/views/camaleon_cms/404.html.erb +4 -0
- data/app/views/camaleon_cms/500.html.erb +4 -0
- data/app/views/camaleon_cms/_flash_messages.html.erb +39 -0
- data/app/views/camaleon_cms/admin/appearances/nav_menus/_custom_fields.html.erb +6 -0
- data/app/views/camaleon_cms/admin/appearances/nav_menus/_custom_menus.html.erb +42 -0
- data/app/views/camaleon_cms/admin/appearances/nav_menus/_external_menu.html.erb +23 -0
- data/app/views/camaleon_cms/admin/appearances/nav_menus/_form.html.erb +13 -0
- data/app/views/camaleon_cms/admin/appearances/nav_menus/_left_menu_items.html.erb +77 -0
- data/app/views/camaleon_cms/admin/appearances/nav_menus/_menu_items.html.erb +19 -0
- data/app/views/camaleon_cms/admin/appearances/nav_menus/_menu_items_list.html.erb +12 -0
- data/app/views/camaleon_cms/admin/appearances/nav_menus/_menu_options.html.erb +21 -0
- data/app/views/camaleon_cms/admin/appearances/nav_menus/index.html.erb +14 -0
- data/app/views/camaleon_cms/admin/appearances/themes/index.html.erb +70 -0
- data/app/views/camaleon_cms/admin/appearances/themes/preview.html.erb +1 -0
- data/app/views/camaleon_cms/admin/appearances/themes/theme_load_data.html.erb +40 -0
- data/app/views/camaleon_cms/admin/appearances/widgets/assign/_form.html.erb +35 -0
- data/app/views/camaleon_cms/admin/appearances/widgets/main/_sidebar.html.erb +29 -0
- data/app/views/camaleon_cms/admin/appearances/widgets/main/form.html.erb +27 -0
- data/app/views/camaleon_cms/admin/appearances/widgets/main/index.html.erb +41 -0
- data/app/views/camaleon_cms/admin/appearances/widgets/sidebar/form.html.erb +23 -0
- data/app/views/camaleon_cms/admin/categories/_form.html.erb +34 -0
- data/app/views/camaleon_cms/admin/categories/edit.html.erb +14 -0
- data/app/views/camaleon_cms/admin/categories/index.html.erb +68 -0
- data/app/views/camaleon_cms/admin/comments/form.html.erb +12 -0
- data/app/views/camaleon_cms/admin/comments/form_answer.html.erb +12 -0
- data/app/views/camaleon_cms/admin/comments/index.html.erb +21 -0
- data/app/views/camaleon_cms/admin/comments/list.html.erb +36 -0
- data/app/views/camaleon_cms/admin/dashboard.html.erb +25 -0
- data/app/views/camaleon_cms/admin/installers/form.html.erb +19 -0
- data/app/views/camaleon_cms/admin/installers/welcome.html.erb +8 -0
- data/app/views/camaleon_cms/admin/media/_render_file_item.html.erb +57 -0
- data/app/views/camaleon_cms/admin/media/index.html.erb +70 -0
- data/app/views/camaleon_cms/admin/plugins/_plugins_list.html.erb +43 -0
- data/app/views/camaleon_cms/admin/plugins/index.html.erb +43 -0
- data/app/views/camaleon_cms/admin/post_tags/_form.html.erb +26 -0
- data/app/views/camaleon_cms/admin/post_tags/edit.html.erb +14 -0
- data/app/views/camaleon_cms/admin/post_tags/index.html.erb +59 -0
- data/app/views/camaleon_cms/admin/posts/_filter_posts.html.erb +5 -0
- data/app/views/camaleon_cms/admin/posts/_sidebar.html.erb +156 -0
- data/app/views/camaleon_cms/admin/posts/form.html.erb +96 -0
- data/app/views/camaleon_cms/admin/posts/index.html.erb +112 -0
- data/app/views/camaleon_cms/admin/posts/show.html.erb +20 -0
- data/app/views/camaleon_cms/admin/search.html.erb +73 -0
- data/app/views/camaleon_cms/admin/sessions/forgot.html.erb +44 -0
- data/app/views/camaleon_cms/admin/sessions/login.html.erb +47 -0
- data/app/views/camaleon_cms/admin/sessions/register.html.erb +63 -0
- data/app/views/camaleon_cms/admin/settings/_configuration_settings.html.erb +75 -0
- data/app/views/camaleon_cms/admin/settings/_email_settings.html.erb +58 -0
- data/app/views/camaleon_cms/admin/settings/_file_system_settings.html.erb +32 -0
- data/app/views/camaleon_cms/admin/settings/_media_settings.html.erb +14 -0
- data/app/views/camaleon_cms/admin/settings/_seo_settings.html.erb +22 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/_get_items.html.erb +185 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/_meta_data.html.erb +93 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/_render.html.erb +50 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/_render_category_simple.html.erb +25 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_audio.html.erb +4 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_categories.html.erb +11 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_checkbox.html.erb +8 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_checkboxes.html.erb +5 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_colorpicker.html.erb +7 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_date.html.erb +6 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_editor.html.erb +3 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_email.html.erb +3 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_field_attrs.html.erb +8 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_file.html.erb +4 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_image.html.erb +16 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_numeric.html.erb +4 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_phone.html.erb +3 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_post_types.html.erb +8 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_posts.html.erb +14 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_private_file.html.erb +4 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_radio.html.erb +5 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_select.html.erb +7 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_select_eval.html.erb +3 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_text_area.html.erb +3 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_text_box.html.erb +3 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_url.html.erb +3 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_users.html.erb +8 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_video.html.erb +4 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/form.html.erb +167 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/index.html.erb +111 -0
- data/app/views/camaleon_cms/admin/settings/languages.html.erb +60 -0
- data/app/views/camaleon_cms/admin/settings/post_types/_form.html.erb +171 -0
- data/app/views/camaleon_cms/admin/settings/post_types/edit.html.erb +14 -0
- data/app/views/camaleon_cms/admin/settings/post_types/index.html.erb +55 -0
- data/app/views/camaleon_cms/admin/settings/shortcodes.html.erb +37 -0
- data/app/views/camaleon_cms/admin/settings/site.html.erb +98 -0
- data/app/views/camaleon_cms/admin/settings/sites/form.html.erb +35 -0
- data/app/views/camaleon_cms/admin/settings/sites/index.html.erb +60 -0
- data/app/views/camaleon_cms/admin/settings/theme.html.erb +20 -0
- data/app/views/camaleon_cms/admin/user_roles/form.html.erb +156 -0
- data/app/views/camaleon_cms/admin/user_roles/index.html.erb +57 -0
- data/app/views/camaleon_cms/admin/users/form.html.erb +161 -0
- data/app/views/camaleon_cms/admin/users/index.html.erb +63 -0
- data/app/views/camaleon_cms/admin/users/profile.html.erb +1 -0
- data/app/views/camaleon_cms/admin/users/profile/_activity.html.erb +180 -0
- data/app/views/camaleon_cms/admin/users/profile/_settings.html.erb +15 -0
- data/app/views/camaleon_cms/default_theme/category.html.erb +26 -0
- data/app/views/camaleon_cms/default_theme/category.json.jbuilder +15 -0
- data/app/views/camaleon_cms/default_theme/category.rss.builder +23 -0
- data/app/views/camaleon_cms/default_theme/custom_fields/audio.html.erb +3 -0
- data/app/views/camaleon_cms/default_theme/custom_fields/checkbox.html.erb +3 -0
- data/app/views/camaleon_cms/default_theme/custom_fields/checkboxes.html.erb +3 -0
- data/app/views/camaleon_cms/default_theme/custom_fields/colorpicker.html.erb +3 -0
- data/app/views/camaleon_cms/default_theme/custom_fields/date.html.erb +3 -0
- data/app/views/camaleon_cms/default_theme/custom_fields/editor.html.erb +3 -0
- data/app/views/camaleon_cms/default_theme/custom_fields/email.html.erb +3 -0
- data/app/views/camaleon_cms/default_theme/custom_fields/field_attrs.html.erb +3 -0
- data/app/views/camaleon_cms/default_theme/custom_fields/file.html.erb +3 -0
- data/app/views/camaleon_cms/default_theme/custom_fields/image.html.erb +3 -0
- data/app/views/camaleon_cms/default_theme/custom_fields/numeric.html.erb +3 -0
- data/app/views/camaleon_cms/default_theme/custom_fields/phone.html.erb +3 -0
- data/app/views/camaleon_cms/default_theme/custom_fields/posts.html.erb +3 -0
- data/app/views/camaleon_cms/default_theme/custom_fields/radio.html.erb +3 -0
- data/app/views/camaleon_cms/default_theme/custom_fields/select.html.erb +3 -0
- data/app/views/camaleon_cms/default_theme/custom_fields/select_eval.html.erb +3 -0
- data/app/views/camaleon_cms/default_theme/custom_fields/text_area.html.erb +3 -0
- data/app/views/camaleon_cms/default_theme/custom_fields/text_box.html.erb +3 -0
- data/app/views/camaleon_cms/default_theme/custom_fields/url.html.erb +3 -0
- data/app/views/camaleon_cms/default_theme/custom_fields/users.html.erb +3 -0
- data/app/views/camaleon_cms/default_theme/custom_fields/video.html.erb +3 -0
- data/app/views/camaleon_cms/default_theme/index.html.erb +70 -0
- data/app/views/camaleon_cms/default_theme/index.json.jbuilder +14 -0
- data/app/views/camaleon_cms/default_theme/partials/_breadcrumb.html.erb +10 -0
- data/app/views/camaleon_cms/default_theme/partials/_cama_category_entry.json.jbuilder +6 -0
- data/app/views/camaleon_cms/default_theme/partials/_cama_comments_entry.json.jbuilder +6 -0
- data/app/views/camaleon_cms/default_theme/partials/_cama_post_entry.json.jbuilder +6 -0
- data/app/views/camaleon_cms/default_theme/partials/_cama_post_type_entry.json.jbuilder +6 -0
- data/app/views/camaleon_cms/default_theme/partials/_cama_posts_entries.json.jbuilder +8 -0
- data/app/views/camaleon_cms/default_theme/partials/_cama_tag_entry.json.jbuilder +5 -0
- data/app/views/camaleon_cms/default_theme/partials/_cama_user_entry.json.jbuilder +5 -0
- data/app/views/camaleon_cms/default_theme/partials/_categories_list.html.erb +23 -0
- data/app/views/camaleon_cms/default_theme/partials/_comments.html.erb +48 -0
- data/app/views/camaleon_cms/default_theme/partials/_comments_list.html.erb +21 -0
- data/app/views/camaleon_cms/default_theme/partials/_comments_list2.html.erb +24 -0
- data/app/views/camaleon_cms/default_theme/partials/_flash_messages.html.erb +26 -0
- data/app/views/camaleon_cms/default_theme/partials/_forms.html.erb +19 -0
- data/app/views/camaleon_cms/default_theme/partials/_post_list_item.html.erb +13 -0
- data/app/views/camaleon_cms/default_theme/partials/_render_custom_field.html.erb +55 -0
- data/app/views/camaleon_cms/default_theme/partials/_search_form.html.erb +8 -0
- data/app/views/camaleon_cms/default_theme/partials/_sidebar.html.erb +66 -0
- data/app/views/camaleon_cms/default_theme/post_tag.html.erb +18 -0
- data/app/views/camaleon_cms/default_theme/post_tag.json.jbuilder +10 -0
- data/app/views/camaleon_cms/default_theme/post_tag.rss.builder +22 -0
- data/app/views/camaleon_cms/default_theme/post_type.html.erb +25 -0
- data/app/views/camaleon_cms/default_theme/post_type.json.jbuilder +13 -0
- data/app/views/camaleon_cms/default_theme/post_type.rss.builder +22 -0
- data/app/views/camaleon_cms/default_theme/profile.html.erb +18 -0
- data/app/views/camaleon_cms/default_theme/profile.json.jbuilder +4 -0
- data/app/views/camaleon_cms/default_theme/robots.text.erb +1 -0
- data/app/views/camaleon_cms/default_theme/rss.rss.builder +21 -0
- data/app/views/camaleon_cms/default_theme/search.html.erb +13 -0
- data/app/views/camaleon_cms/default_theme/search.json.jbuilder +1 -0
- data/app/views/camaleon_cms/default_theme/single.html.erb +32 -0
- data/app/views/camaleon_cms/default_theme/single.json.jbuilder +21 -0
- data/app/views/camaleon_cms/default_theme/single.rss.builder +12 -0
- data/app/views/camaleon_cms/default_theme/sitemap.html.erb +23 -0
- data/app/views/camaleon_cms/default_theme/sitemap.xml.builder +60 -0
- data/app/views/camaleon_cms/html_mailer/confirm_email.html.erb +3 -0
- data/app/views/camaleon_cms/html_mailer/mailer.html.erb +4 -0
- data/app/views/camaleon_cms/html_mailer/password_reset.html.erb +3 -0
- data/app/views/camaleon_cms/shortcode_templates/widget.html.erb +11 -0
- data/app/views/layouts/camaleon_cms/admin.html.erb +54 -0
- data/app/views/layouts/camaleon_cms/admin/_ajax.html.erb +8 -0
- data/app/views/layouts/camaleon_cms/admin/_flash_messages.html.erb +43 -0
- data/app/views/layouts/camaleon_cms/admin/_footer.html.erb +13 -0
- data/app/views/layouts/camaleon_cms/admin/_form_error.html.erb +10 -0
- data/app/views/layouts/camaleon_cms/admin/_header.html.erb +51 -0
- data/app/views/layouts/camaleon_cms/admin/_sidebar.html.erb +19 -0
- data/app/views/layouts/camaleon_cms/admin/installer.html.erb +35 -0
- data/app/views/layouts/camaleon_cms/application.html.erb +15 -0
- data/app/views/layouts/camaleon_cms/login.html.erb +22 -0
- data/app/views/layouts/camaleon_cms/mailer.html.erb +22 -0
- data/config/initializers/action_view.rb +56 -0
- data/config/initializers/active_record_extension.rb +104 -0
- data/config/initializers/assets.rb +27 -0
- data/config/initializers/custom_initializers.rb +10 -0
- data/config/initializers/mobu.rb +24 -0
- data/config/initializers/model_alias.rb +18 -0
- data/config/initializers/sass.rb +52 -0
- data/config/locales/ar.yml +275 -0
- data/config/locales/camaleon_cms/admin/ar.yml +683 -0
- data/config/locales/camaleon_cms/admin/de.yml +682 -0
- data/config/locales/camaleon_cms/admin/en.yml +682 -0
- data/config/locales/camaleon_cms/admin/es.yml +654 -0
- data/config/locales/camaleon_cms/admin/fr.yml +663 -0
- data/config/locales/camaleon_cms/admin/it.yml +633 -0
- data/config/locales/camaleon_cms/admin/js.yml +435 -0
- data/config/locales/camaleon_cms/admin/nl.yml +659 -0
- data/config/locales/camaleon_cms/admin/pt-BR.yml +643 -0
- data/config/locales/camaleon_cms/admin/pt.yml +641 -0
- data/config/locales/camaleon_cms/admin/ru.yml +670 -0
- data/config/locales/camaleon_cms/admin/uk.yml +670 -0
- data/config/locales/camaleon_cms/admin/zh-CH.yml +703 -0
- data/config/locales/camaleon_cms/common.yml +784 -0
- data/config/locales/camaleon_cms/languages.yml +167 -0
- data/config/locales/camaleon_cms/routes.yml +71 -0
- data/config/locales/de.yml +210 -0
- data/config/locales/en.yml +207 -0
- data/config/locales/es.yml +198 -0
- data/config/locales/fr.yml +207 -0
- data/config/locales/it.yml +205 -0
- data/config/locales/nl.yml +209 -0
- data/config/locales/pl.yml +237 -0
- data/config/locales/pt-BR.yml +203 -0
- data/config/locales/pt.yml +201 -0
- data/config/locales/ru.yml +207 -0
- data/config/locales/uk.yml +257 -0
- data/config/locales/zh-CH.yml +194 -0
- data/config/routes.rb +11 -0
- data/config/routes/admin.rb +148 -0
- data/config/routes/frontend.rb +96 -0
- data/config/system.json +19 -0
- data/db/migrate/20150611161134_post_table_into_utf8.rb +124 -0
- data/db/migrate/20150926095310_rename_column_posts.rb +18 -0
- data/db/migrate/20151212095328_add_confirm_token_to_users.rb +7 -0
- data/db/migrate/20160504155652_add_feature_to_posts.rb +5 -0
- data/db/migrate/20160504155653_move_first_name_of_users.rb +9 -0
- data/db/migrate/20160606135421_improve_menus_structure.rb +7 -0
- data/db/migrate/20160609121449_add_group_to_custom_field_values.rb +5 -0
- data/db/migrate/20161206211917_install_migrated_seo_plugin.rb +8 -0
- data/db/migrate/20161215202255_drop_user_relationship_table.rb +5 -0
- data/db/migrate/20180124132318_create_media.rb +17 -0
- data/db/migrate/20180704211100_adjust_field_length.rb +10 -0
- data/lib/camaleon_cms.rb +5 -0
- data/lib/camaleon_cms/engine.rb +84 -0
- data/lib/camaleon_cms/version.rb +3 -0
- data/lib/captcha/bumpyroad.ttf +0 -0
- data/lib/captcha/captcha_0.jpg +0 -0
- data/lib/captcha/captcha_1.jpg +0 -0
- data/lib/captcha/captcha_10.jpg +0 -0
- data/lib/captcha/captcha_11.jpg +0 -0
- data/lib/captcha/captcha_2.jpg +0 -0
- data/lib/captcha/captcha_3.jpg +0 -0
- data/lib/captcha/captcha_4.jpg +0 -0
- data/lib/captcha/captcha_5.jpg +0 -0
- data/lib/captcha/captcha_6.jpg +0 -0
- data/lib/captcha/captcha_7.jpg +0 -0
- data/lib/captcha/captcha_8.jpg +0 -0
- data/lib/captcha/captcha_9.jpg +0 -0
- data/lib/ext/array.rb +59 -0
- data/lib/ext/hash.rb +41 -0
- data/lib/ext/string.rb +162 -0
- data/lib/ext/translator.rb +84 -0
- data/lib/generators/camaleon_cms/gem_plugin_generator.rb +140 -0
- data/lib/generators/camaleon_cms/gem_plugin_template/app/controllers/plugins/my_plugin/admin_controller.rb +18 -0
- data/lib/generators/camaleon_cms/gem_plugin_template/app/controllers/plugins/my_plugin/front_controller.rb +8 -0
- data/lib/generators/camaleon_cms/gem_plugin_template/app/helpers/plugins/my_plugin/main_helper.rb +29 -0
- data/lib/generators/camaleon_cms/gem_plugin_template/app/models/plugins/my_plugin/my_plugin.rb +6 -0
- data/lib/generators/camaleon_cms/gem_plugin_template/app/views/plugins/my_plugin/admin/index.html.erb +9 -0
- data/lib/generators/camaleon_cms/gem_plugin_template/app/views/plugins/my_plugin/admin/settings.html.erb +21 -0
- data/lib/generators/camaleon_cms/gem_plugin_template/app/views/plugins/my_plugin/front/index.html.erb +2 -0
- data/lib/generators/camaleon_cms/gem_plugin_template/app/views/plugins/my_plugin/layouts/readme.txt +2 -0
- data/lib/generators/camaleon_cms/gem_plugin_template/config/camaleon_plugin.json +14 -0
- data/lib/generators/camaleon_cms/gem_plugin_template/config/initializers/custom_models.rb +5 -0
- data/lib/generators/camaleon_cms/install_generator.rb +43 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/readme.txt +0 -0
- data/lib/generators/camaleon_cms/install_template/plugin_routes.rb +22 -0
- data/lib/generators/camaleon_cms/install_template/system.json +11 -0
- data/lib/generators/camaleon_cms/theme_generator.rb +66 -0
- data/lib/generators/camaleon_cms/theme_template/assets/css/main.css +13 -0
- data/lib/generators/camaleon_cms/theme_template/assets/images/image.png +0 -0
- data/lib/generators/camaleon_cms/theme_template/assets/js/main.js +14 -0
- data/lib/generators/camaleon_cms/theme_template/config/config.json +14 -0
- data/lib/generators/camaleon_cms/theme_template/main_helper.rb +27 -0
- data/lib/generators/camaleon_cms/theme_template/views/admin/settings.html.erb +2 -0
- data/lib/generators/camaleon_cms/theme_template/views/index.html.erb +1 -0
- data/lib/generators/camaleon_cms/theme_template/views/layouts/index.html.erb +69 -0
- data/lib/generators/camaleon_cms/theme_template/views/partials/readme.txt +1 -0
- data/lib/plugin_routes.rb +439 -0
- data/lib/tasks/camaleon_cms/camaleon_tasks.rake +30 -0
- data/lib/tasks/camaleon_cms/rspec_test.rake +20 -0
- data/spec/dummy/README.rdoc +28 -0
- data/spec/dummy/Rakefile +6 -0
- data/spec/dummy/app/assets/config/manifest.js +8 -0
- data/spec/dummy/app/assets/javascripts/application.js +13 -0
- data/spec/dummy/app/assets/stylesheets/application.css +15 -0
- data/spec/dummy/app/controllers/application_controller.rb +5 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/bin/bundle +3 -0
- data/spec/dummy/bin/rails +4 -0
- data/spec/dummy/bin/rake +4 -0
- data/spec/dummy/bin/setup +36 -0
- data/spec/dummy/bin/update +31 -0
- data/spec/dummy/bin/yarn +11 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +27 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +41 -0
- data/spec/dummy/config/environments/production.rb +79 -0
- data/spec/dummy/config/environments/test.rb +44 -0
- data/spec/dummy/config/initializers/assets.rb +11 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/mime_types.rb +4 -0
- data/spec/dummy/config/initializers/session_store.rb +3 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +23 -0
- data/spec/dummy/config/routes.rb +4 -0
- data/spec/dummy/config/secrets.yml +22 -0
- data/spec/dummy/db/schema.rb +186 -0
- data/spec/factories/post.rb +44 -0
- data/spec/factories/post_type.rb +9 -0
- data/spec/factories/site.rb +18 -0
- data/spec/factories/user.rb +19 -0
- data/spec/features/admin/categories_spec.rb +25 -0
- data/spec/features/admin/comments_spec.rb +52 -0
- data/spec/features/admin/contact_form_spec.rb +60 -0
- data/spec/features/admin/content_groups_spec.rb +53 -0
- data/spec/features/admin/custom_fields_spec.rb +49 -0
- data/spec/features/admin/languages_spec.rb +37 -0
- data/spec/features/admin/media_spec.rb +50 -0
- data/spec/features/admin/menus_spec.rb +50 -0
- data/spec/features/admin/pages_spec.rb +35 -0
- data/spec/features/admin/plugins_spec.rb +29 -0
- data/spec/features/admin/posts_spec.rb +37 -0
- data/spec/features/admin/session_spec.rb +102 -0
- data/spec/features/admin/settings_spec.rb +17 -0
- data/spec/features/admin/shortcodes_spec.rb +11 -0
- data/spec/features/admin/sites_spec.rb +53 -0
- data/spec/features/admin/tags_spec.rb +34 -0
- data/spec/features/admin/themes_spec.rb +18 -0
- data/spec/features/admin/user_roles_spec.rb +66 -0
- data/spec/features/admin/users_spec.rb +81 -0
- data/spec/features/admin/widgets_spec.rb +59 -0
- data/spec/features/frontend/pages_spec.rb +136 -0
- data/spec/features/frontend/post_type_spec.rb +16 -0
- data/spec/helpers/email_helper_spec.rb +16 -0
- data/spec/helpers/short_code_helper_spec.rb +64 -0
- data/spec/helpers/uploader_helper_spec.rb +56 -0
- data/spec/mailers/send_mail_spec.rb +37 -0
- data/spec/models/post_spec.rb +50 -0
- data/spec/models/user_spec.rb +12 -0
- data/spec/rails_helper.rb +50 -0
- data/spec/routing/post_type_routes_spec.rb +12 -0
- data/spec/spec_helper.rb +167 -0
- data/spec/support/capybara_normalize_whitespace_patch.rb +17 -0
- data/spec/support/common.rb +119 -0
- data/spec/support/fixtures/rails.png +0 -0
- data/spec/support/wait_for_ajax.rb +30 -0
- metadata +1213 -0
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/*! jQuery Validation Plugin - v1.15.0 - 2/24/2016
|
|
2
|
+
* http://jqueryvalidation.org/
|
|
3
|
+
* Copyright (c) 2016 Jörn Zaefferer; Licensed MIT */
|
|
4
|
+
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){a.extend(a.fn,{validate:function(b){if(!this.length)return void(b&&b.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing."));var c=a.data(this[0],"validator");return c?c:(this.attr("novalidate","novalidate"),c=new a.validator(b,this[0]),a.data(this[0],"validator",c),c.settings.onsubmit&&(this.on("click.validate",":submit",function(b){c.settings.submitHandler&&(c.submitButton=b.target),a(this).hasClass("cancel")&&(c.cancelSubmit=!0),void 0!==a(this).attr("formnovalidate")&&(c.cancelSubmit=!0)}),this.on("submit.validate",function(b){function d(){var d,e;return c.settings.submitHandler?(c.submitButton&&(d=a("<input type='hidden'/>").attr("name",c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)),e=c.settings.submitHandler.call(c,c.currentForm,b),c.submitButton&&d.remove(),void 0!==e?e:!1):!0}return c.settings.debug&&b.preventDefault(),c.cancelSubmit?(c.cancelSubmit=!1,d()):c.form()?c.pendingRequest?(c.formSubmitted=!0,!1):d():(c.focusInvalid(),!1)})),c)},valid:function(){var b,c,d;return a(this[0]).is("form")?b=this.validate().form():(d=[],b=!0,c=a(this[0].form).validate(),this.each(function(){b=c.element(this)&&b,b||(d=d.concat(c.errorList))}),c.errorList=d),b},rules:function(b,c){if(this.length){var d,e,f,g,h,i,j=this[0];if(b)switch(d=a.data(j.form,"validator").settings,e=d.rules,f=a.validator.staticRules(j),b){case"add":a.extend(f,a.validator.normalizeRule(c)),delete f.messages,e[j.name]=f,c.messages&&(d.messages[j.name]=a.extend(d.messages[j.name],c.messages));break;case"remove":return c?(i={},a.each(c.split(/\s/),function(b,c){i[c]=f[c],delete f[c],"required"===c&&a(j).removeAttr("aria-required")}),i):(delete e[j.name],f)}return g=a.validator.normalizeRules(a.extend({},a.validator.classRules(j),a.validator.attributeRules(j),a.validator.dataRules(j),a.validator.staticRules(j)),j),g.required&&(h=g.required,delete g.required,g=a.extend({required:h},g),a(j).attr("aria-required","true")),g.remote&&(h=g.remote,delete g.remote,g=a.extend(g,{remote:h})),g}}}),a.extend(a.expr[":"],{blank:function(b){return!a.trim(""+a(b).val())},filled:function(b){var c=a(b).val();return null!==c&&!!a.trim(""+c)},unchecked:function(b){return!a(b).prop("checked")}}),a.validator=function(b,c){this.settings=a.extend(!0,{},a.validator.defaults,b),this.currentForm=c,this.init()},a.validator.format=function(b,c){return 1===arguments.length?function(){var c=a.makeArray(arguments);return c.unshift(b),a.validator.format.apply(this,c)}:void 0===c?b:(arguments.length>2&&c.constructor!==Array&&(c=a.makeArray(arguments).slice(1)),c.constructor!==Array&&(c=[c]),a.each(c,function(a,c){b=b.replace(new RegExp("\\{"+a+"\\}","g"),function(){return c})}),b)},a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",pendingClass:"pending",validClass:"valid",errorElement:"label",focusCleanup:!1,focusInvalid:!0,errorContainer:a([]),errorLabelContainer:a([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(a){this.lastActive=a,this.settings.focusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(a)))},onfocusout:function(a){this.checkable(a)||!(a.name in this.submitted)&&this.optional(a)||this.element(a)},onkeyup:function(b,c){var d=[16,17,18,20,35,36,37,38,39,40,45,144,225];9===c.which&&""===this.elementValue(b)||-1!==a.inArray(c.keyCode,d)||(b.name in this.submitted||b.name in this.invalid)&&this.element(b)},onclick:function(a){a.name in this.submitted?this.element(a):a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).addClass(c).removeClass(d):a(b).addClass(c).removeClass(d)},unhighlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).removeClass(c).addClass(d):a(b).removeClass(c).addClass(d)}},setDefaults:function(b){a.extend(a.validator.defaults,b)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date ( ISO ).",number:"Please enter a valid number.",digits:"Please enter only digits.",equalTo:"Please enter the same value again.",maxlength:a.validator.format("Please enter no more than {0} characters."),minlength:a.validator.format("Please enter at least {0} characters."),rangelength:a.validator.format("Please enter a value between {0} and {1} characters long."),range:a.validator.format("Please enter a value between {0} and {1}."),max:a.validator.format("Please enter a value less than or equal to {0}."),min:a.validator.format("Please enter a value greater than or equal to {0}."),step:a.validator.format("Please enter a multiple of {0}.")},autoCreateRanges:!1,prototype:{init:function(){function b(b){var c=a.data(this.form,"validator"),d="on"+b.type.replace(/^validate/,""),e=c.settings;e[d]&&!a(this).is(e.ignore)&&e[d].call(c,this,b)}this.labelContainer=a(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||a(this.currentForm),this.containers=a(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var c,d=this.groups={};a.each(this.settings.groups,function(b,c){"string"==typeof c&&(c=c.split(/\s/)),a.each(c,function(a,c){d[c]=b})}),c=this.settings.rules,a.each(c,function(b,d){c[b]=a.validator.normalizeRule(d)}),a(this.currentForm).on("focusin.validate focusout.validate keyup.validate",":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], [type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox'], [contenteditable]",b).on("click.validate","select, option, [type='radio'], [type='checkbox']",b),this.settings.invalidHandler&&a(this.currentForm).on("invalid-form.validate",this.settings.invalidHandler),a(this.currentForm).find("[required], [data-rule-required], .required").attr("aria-required","true")},form:function(){return this.checkForm(),a.extend(this.submitted,this.errorMap),this.invalid=a.extend({},this.errorMap),this.valid()||a(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(b){var c,d,e=this.clean(b),f=this.validationTargetFor(e),g=this,h=!0;return void 0===f?delete this.invalid[e.name]:(this.prepareElement(f),this.currentElements=a(f),d=this.groups[f.name],d&&a.each(this.groups,function(a,b){b===d&&a!==f.name&&(e=g.validationTargetFor(g.clean(g.findByName(a))),e&&e.name in g.invalid&&(g.currentElements.push(e),h=h&&g.check(e)))}),c=this.check(f)!==!1,h=h&&c,c?this.invalid[f.name]=!1:this.invalid[f.name]=!0,this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),a(b).attr("aria-invalid",!c)),h},showErrors:function(b){if(b){var c=this;a.extend(this.errorMap,b),this.errorList=a.map(this.errorMap,function(a,b){return{message:a,element:c.findByName(b)[0]}}),this.successList=a.grep(this.successList,function(a){return!(a.name in b)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){a.fn.resetForm&&a(this.currentForm).resetForm(),this.invalid={},this.submitted={},this.prepareForm(),this.hideErrors();var b=this.elements().removeData("previousValue").removeAttr("aria-invalid");this.resetElements(b)},resetElements:function(a){var b;if(this.settings.unhighlight)for(b=0;a[b];b++)this.settings.unhighlight.call(this,a[b],this.settings.errorClass,""),this.findByName(a[b].name).removeClass(this.settings.validClass);else a.removeClass(this.settings.errorClass).removeClass(this.settings.validClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b,c=0;for(b in a)a[b]&&c++;return c},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(a){a.not(this.containers).text(""),this.addWrapper(a).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{a(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(b){}},findLastActive:function(){var b=this.lastActive;return b&&1===a.grep(this.errorList,function(a){return a.element.name===b.name}).length&&b},elements:function(){var b=this,c={};return a(this.currentForm).find("input, select, textarea, [contenteditable]").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function(){var d=this.name||a(this).attr("name");return!d&&b.settings.debug&&window.console&&console.error("%o has no name assigned",this),this.hasAttribute("contenteditable")&&(this.form=a(this).closest("form")[0]),d in c||!b.objectLength(a(this).rules())?!1:(c[d]=!0,!0)})},clean:function(b){return a(b)[0]},errors:function(){var b=this.settings.errorClass.split(" ").join(".");return a(this.settings.errorElement+"."+b,this.errorContext)},resetInternals:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=a([]),this.toHide=a([])},reset:function(){this.resetInternals(),this.currentElements=a([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(a){this.reset(),this.toHide=this.errorsFor(a)},elementValue:function(b){var c,d,e=a(b),f=b.type;return"radio"===f||"checkbox"===f?this.findByName(b.name).filter(":checked").val():"number"===f&&"undefined"!=typeof b.validity?b.validity.badInput?"NaN":e.val():(c=b.hasAttribute("contenteditable")?e.text():e.val(),"file"===f?"C:\\fakepath\\"===c.substr(0,12)?c.substr(12):(d=c.lastIndexOf("/"),d>=0?c.substr(d+1):(d=c.lastIndexOf("\\"),d>=0?c.substr(d+1):c)):"string"==typeof c?c.replace(/\r/g,""):c)},check:function(b){b=this.validationTargetFor(this.clean(b));var c,d,e,f=a(b).rules(),g=a.map(f,function(a,b){return b}).length,h=!1,i=this.elementValue(b);if("function"==typeof f.normalizer){if(i=f.normalizer.call(b,i),"string"!=typeof i)throw new TypeError("The normalizer should return a string value.");delete f.normalizer}for(d in f){e={method:d,parameters:f[d]};try{if(c=a.validator.methods[d].call(this,i,b,e.parameters),"dependency-mismatch"===c&&1===g){h=!0;continue}if(h=!1,"pending"===c)return void(this.toHide=this.toHide.not(this.errorsFor(b)));if(!c)return this.formatAndAdd(b,e),!1}catch(j){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+b.id+", check the '"+e.method+"' method.",j),j instanceof TypeError&&(j.message+=". Exception occurred when checking element "+b.id+", check the '"+e.method+"' method."),j}}if(!h)return this.objectLength(f)&&this.successList.push(b),!0},customDataMessage:function(b,c){return a(b).data("msg"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase())||a(b).data("msg")},customMessage:function(a,b){var c=this.settings.messages[a];return c&&(c.constructor===String?c:c[b])},findDefined:function(){for(var a=0;a<arguments.length;a++)if(void 0!==arguments[a])return arguments[a]},defaultMessage:function(b,c){var d=this.findDefined(this.customMessage(b.name,c.method),this.customDataMessage(b,c.method),!this.settings.ignoreTitle&&b.title||void 0,a.validator.messages[c.method],"<strong>Warning: No message defined for "+b.name+"</strong>"),e=/\$?\{(\d+)\}/g;return"function"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,"{$1}"),c.parameters)),d},formatAndAdd:function(a,b){var c=this.defaultMessage(a,b);this.errorList.push({message:c,element:a,method:b.method}),this.errorMap[a.name]=c,this.submitted[a.name]=c},addWrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultShowErrors:function(){var a,b,c;for(a=0;this.errorList[a];a++)c=this.errorList[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorClass,this.settings.validClass),this.showLabel(c.element,c.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight)for(a=0,b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return a(this.errorList).map(function(){return this.element})},showLabel:function(b,c){var d,e,f,g,h=this.errorsFor(b),i=this.idOrName(b),j=a(b).attr("aria-describedby");h.length?(h.removeClass(this.settings.validClass).addClass(this.settings.errorClass),h.html(c)):(h=a("<"+this.settings.errorElement+">").attr("id",i+"-error").addClass(this.settings.errorClass).html(c||""),d=h,this.settings.wrapper&&(d=h.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(d):this.settings.errorPlacement?this.settings.errorPlacement(d,a(b)):d.insertAfter(b),h.is("label")?h.attr("for",i):0===h.parents("label[for='"+this.escapeCssMeta(i)+"']").length&&(f=h.attr("id"),j?j.match(new RegExp("\\b"+this.escapeCssMeta(f)+"\\b"))||(j+=" "+f):j=f,a(b).attr("aria-describedby",j),e=this.groups[b.name],e&&(g=this,a.each(g.groups,function(b,c){c===e&&a("[name='"+g.escapeCssMeta(b)+"']",g.currentForm).attr("aria-describedby",h.attr("id"))})))),!c&&this.settings.success&&(h.text(""),"string"==typeof this.settings.success?h.addClass(this.settings.success):this.settings.success(h,b)),this.toShow=this.toShow.add(h)},errorsFor:function(b){var c=this.escapeCssMeta(this.idOrName(b)),d=a(b).attr("aria-describedby"),e="label[for='"+c+"'], label[for='"+c+"'] *";return d&&(e=e+", #"+this.escapeCssMeta(d).replace(/\s+/g,", #")),this.errors().filter(e)},escapeCssMeta:function(a){return a.replace(/([\\!"#$%&'()*+,./:;<=>?@\[\]^`{|}~])/g,"\\$1")},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(b){return this.checkable(b)&&(b=this.findByName(b.name)),a(b).not(this.settings.ignore)[0]},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(b){return a(this.currentForm).find("[name='"+this.escapeCssMeta(b)+"']")},getLength:function(b,c){switch(c.nodeName.toLowerCase()){case"select":return a("option:selected",c).length;case"input":if(this.checkable(c))return this.findByName(c.name).filter(":checked").length}return b.length},depend:function(a,b){return this.dependTypes[typeof a]?this.dependTypes[typeof a](a,b):!0},dependTypes:{"boolean":function(a){return a},string:function(b,c){return!!a(b,c.form).length},"function":function(a,b){return a(b)}},optional:function(b){var c=this.elementValue(b);return!a.validator.methods.required.call(this,c,b)&&"dependency-mismatch"},startRequest:function(b){this.pending[b.name]||(this.pendingRequest++,a(b).addClass(this.settings.pendingClass),this.pending[b.name]=!0)},stopRequest:function(b,c){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],a(b).removeClass(this.settings.pendingClass),c&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(a(this.currentForm).submit(),this.formSubmitted=!1):!c&&0===this.pendingRequest&&this.formSubmitted&&(a(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(b,c){return a.data(b,"previousValue")||a.data(b,"previousValue",{old:null,valid:!0,message:this.defaultMessage(b,{method:c})})},destroy:function(){this.resetForm(),a(this.currentForm).off(".validate").removeData("validator").find(".validate-equalTo-blur").off(".validate-equalTo").removeClass("validate-equalTo-blur")}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(b,c){b.constructor===String?this.classRuleSettings[b]=c:a.extend(this.classRuleSettings,b)},classRules:function(b){var c={},d=a(b).attr("class");return d&&a.each(d.split(" "),function(){this in a.validator.classRuleSettings&&a.extend(c,a.validator.classRuleSettings[this])}),c},normalizeAttributeRule:function(a,b,c,d){/min|max|step/.test(c)&&(null===b||/number|range|text/.test(b))&&(d=Number(d),isNaN(d)&&(d=void 0)),d||0===d?a[c]=d:b===c&&"range"!==b&&(a[c]=!0)},attributeRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)"required"===c?(d=b.getAttribute(c),""===d&&(d=!0),d=!!d):d=f.attr(c),this.normalizeAttributeRule(e,g,c,d);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},dataRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)d=f.data("rule"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase()),this.normalizeAttributeRule(e,g,c,d);return e},staticRules:function(b){var c={},d=a.data(b.form,"validator");return d.settings.rules&&(c=a.validator.normalizeRule(d.settings.rules[b.name])||{}),c},normalizeRules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case"string":f=!!a(e.depends,c.form).length;break;case"function":f=e.depends.call(c,c)}f?b[d]=void 0!==e.param?e.param:!0:(a.data(c.form,"validator").resetElements(a(c)),delete b[d])}}),a.each(b,function(d,e){b[d]=a.isFunction(e)&&"normalizer"!==d?e(c):e}),a.each(["minlength","maxlength"],function(){b[this]&&(b[this]=Number(b[this]))}),a.each(["rangelength","range"],function(){var c;b[this]&&(a.isArray(b[this])?b[this]=[Number(b[this][0]),Number(b[this][1])]:"string"==typeof b[this]&&(c=b[this].replace(/[\[\]]/g,"").split(/[\s,]+/),b[this]=[Number(c[0]),Number(c[1])]))}),a.validator.autoCreateRanges&&(null!=b.min&&null!=b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),null!=b.minlength&&null!=b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizeRule:function(b){if("string"==typeof b){var c={};a.each(b.split(/\s/),function(){c[this]=!0}),b=c}return b},addMethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.validator.messages[b],c.length<3&&a.validator.addClassRules(b,a.validator.normalizeRule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return"dependency-mismatch";if("select"===c.nodeName.toLowerCase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getLength(b,c)>0:b.length>0},email:function(a,b){return this.optional(b)||/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a)},url:function(a,b){return this.optional(b)||/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)*(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.| |_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(a)},date:function(a,b){return this.optional(b)||!/Invalid|NaN/.test(new Date(a).toString())},dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)},number:function(a,b){return this.optional(b)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},minlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d},maxlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||d>=e},rangelength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d[0]&&e<=d[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||c>=a},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},step:function(b,c,d){var e=a(c).attr("type"),f="Step attribute on input type "+e+" is not supported.",g=["text","number","range"],h=new RegExp("\\b"+e+"\\b"),i=e&&!h.test(g.join());if(i)throw new Error(f);return this.optional(c)||b%d===0},equalTo:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.not(".validate-equalTo-blur").length&&e.addClass("validate-equalTo-blur").on("blur.validate-equalTo",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d,e){if(this.optional(c))return"dependency-mismatch";e="string"==typeof e&&e||"remote";var f,g,h,i=this.previousValue(c,e);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),i.originalMessage=i.originalMessage||this.settings.messages[c.name][e],this.settings.messages[c.name][e]=i.message,d="string"==typeof d&&{url:d}||d,h=a.param(a.extend({data:b},d.data)),i.old===h?i.valid:(i.old=h,f=this,this.startRequest(c),g={},g[c.name]=b,a.ajax(a.extend(!0,{mode:"abort",port:"validate"+c.name,dataType:"json",data:g,context:f.currentForm,success:function(a){var d,g,h,j=a===!0||"true"===a;f.settings.messages[c.name][e]=i.originalMessage,j?(h=f.formSubmitted,f.resetInternals(),f.toHide=f.errorsFor(c),f.formSubmitted=h,f.successList.push(c),f.invalid[c.name]=!1,f.showErrors()):(d={},g=a||f.defaultMessage(c,{method:e,parameters:b}),d[c.name]=i.message=g,f.invalid[c.name]=!0,f.showErrors(d)),i.valid=j,f.stopRequest(c,j)}},d)),"pending")}}});var b,c={};a.ajaxPrefilter?a.ajaxPrefilter(function(a,b,d){var e=a.port;"abort"===a.mode&&(c[e]&&c[e].abort(),c[e]=d)}):(b=a.ajax,a.ajax=function(d){var e=("mode"in d?d:a.ajaxSettings).mode,f=("port"in d?d:a.ajaxSettings).port;return"abort"===e?(c[f]&&c[f].abort(),c[f]=b.apply(this,arguments),c[f]):b.apply(this,arguments)})});
|
|
5
|
+
|
|
6
|
+
//***************customization*****************/
|
|
7
|
+
// jquery custom validations and default values
|
|
8
|
+
jQuery(function(){
|
|
9
|
+
// file formats
|
|
10
|
+
$.file_formats = {
|
|
11
|
+
jpg: "image",
|
|
12
|
+
gif: "image",
|
|
13
|
+
png: "image",
|
|
14
|
+
bmp: "image",
|
|
15
|
+
jpeg: "image",
|
|
16
|
+
|
|
17
|
+
mp3: "audio",
|
|
18
|
+
ogg: "audio",
|
|
19
|
+
mid: "audio",
|
|
20
|
+
mod: "audio",
|
|
21
|
+
wav: "audio",
|
|
22
|
+
|
|
23
|
+
mp4: "video",
|
|
24
|
+
wmv: "video",
|
|
25
|
+
avi: "video",
|
|
26
|
+
swf: "video",
|
|
27
|
+
mov: "video",
|
|
28
|
+
mpeg: "video",
|
|
29
|
+
mjpg: "video",
|
|
30
|
+
|
|
31
|
+
pdf: 'document',
|
|
32
|
+
xls: 'document',
|
|
33
|
+
xlsx: 'document',
|
|
34
|
+
doc: 'document',
|
|
35
|
+
docx: 'document',
|
|
36
|
+
ppt: 'document',
|
|
37
|
+
pptx: 'document',
|
|
38
|
+
html: 'document',
|
|
39
|
+
htm: 'document',
|
|
40
|
+
txt: 'document',
|
|
41
|
+
|
|
42
|
+
zip: 'compress',
|
|
43
|
+
"7z": 'compress',
|
|
44
|
+
rar: 'compress',
|
|
45
|
+
tar: 'compress',
|
|
46
|
+
bz2: 'compress',
|
|
47
|
+
gz: 'compress',
|
|
48
|
+
rar2: 'compress'
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// return the video id of a video url
|
|
52
|
+
// http://lasnv.net/foro/839/Javascript_parsear_URL_de_YouTube
|
|
53
|
+
$.cama_youtube_key = function(url){
|
|
54
|
+
var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/;
|
|
55
|
+
var match = url.match(regExp);
|
|
56
|
+
var b = false;
|
|
57
|
+
if (match&&match[7].length==11){
|
|
58
|
+
b=match[7];
|
|
59
|
+
}
|
|
60
|
+
return b;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// verify the url for youtube, vimeo...
|
|
64
|
+
// return youtube | metcafe|dailymotion|vimeo
|
|
65
|
+
$.cama_check_video_url = function (url) {
|
|
66
|
+
var regYoutube = new RegExp(/^.*((youtu.be\/)|(v\/)|(\/u\/w\/)|(embed\/)|(watch?))??v?=?([^#&?]*).*/);
|
|
67
|
+
var regVimeo = new RegExp(/^.*(vimeo.com\/)((channels\/[A-z]+\/)|(groups\/[A-z]+\/videos\/))?([0-9]+)/);
|
|
68
|
+
var regDailymotion = new RegExp(/^.+dailymotion.com\/(video|hub)\/([^_]+)[^#]*(#video=([^_&]+))?/);
|
|
69
|
+
var regMetacafe = new RegExp(/^.*(metacafe.com)(\/watch\/)(d+)(.*)/i);
|
|
70
|
+
if (regYoutube.test(url)) {
|
|
71
|
+
return 'youtube';
|
|
72
|
+
} else if (regMetacafe.test(url)) {
|
|
73
|
+
return 'metacafe';
|
|
74
|
+
} else if (regDailymotion.test(url)) {
|
|
75
|
+
return 'dailymotion';
|
|
76
|
+
} else if (regVimeo.test(url)) {
|
|
77
|
+
return 'vimeo';
|
|
78
|
+
} else {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// helper validate only letters latin
|
|
84
|
+
var regex = /^[a-z\sÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏàáâãäåæçèéêëìíîïÐÑÒÓÔÕÖØÙÚÛÜÝÞßðñòóôõöøùúûüýþÿ]+$/i;
|
|
85
|
+
jQuery.validator.addMethod("lettersonly", function (value, element) {
|
|
86
|
+
return this.optional(element) || regex.test(value);
|
|
87
|
+
}, "Only alphabetical characters");
|
|
88
|
+
|
|
89
|
+
/************ Custom jquery validation as defaults ***************/
|
|
90
|
+
jQuery.validator.setDefaults({
|
|
91
|
+
focusInvalid: true,
|
|
92
|
+
ignore: ".translated-item",
|
|
93
|
+
errorPlacement: function (a, b) {
|
|
94
|
+
if (!a.text()) return;
|
|
95
|
+
if (b.parent().hasClass('trans_tab_item')) $("a[href='#" + b.parent().attr('id') + "']").trigger('click'); // tabs
|
|
96
|
+
if (b.attr("data-error-place") && $(b.attr("data-error-place")).length) $(b.attr("data-error-place")).html(a);
|
|
97
|
+
else if(b.hasClass('data-error-place-parent')) b.parent().parent().append(a);
|
|
98
|
+
else if(b.hasClass('data-error-place-parent2')) b.parent().parent().parent().append(a);
|
|
99
|
+
else b.parent().append(a);
|
|
100
|
+
},
|
|
101
|
+
highlight: function(element, errorClass){ //fix for error fields in hidden tab
|
|
102
|
+
var tab = "";
|
|
103
|
+
if(!$(element).is(":visible") && (tab = $(element).closest(".tab-pane")).length && tab.attr("id")){
|
|
104
|
+
tab.closest(".tabs, .nav-tabs").find(" > ul a[href='#"+tab.attr("id")+"']").click();
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
// validate file extension defined in data-formats
|
|
110
|
+
// data-formats: (default '') image | audio | video (support also external youtube metacafe, dailymotion, vimeo) | or file extension like: jpg|png
|
|
111
|
+
$.validator.addMethod("file_format", function (value, element) {
|
|
112
|
+
var formats = $(element).attr("data-formats");
|
|
113
|
+
var ext = value.split(".").pop().toLowerCase();
|
|
114
|
+
if (formats && value)
|
|
115
|
+
return ($.inArray("video", formats.split(",")) >= 0 && $.cama_check_video_url(value)) || $.inArray($.file_formats[ext], formats.split(",")) >= 0 || $.inArray(ext, formats.split(",")) >= 0
|
|
116
|
+
|
|
117
|
+
return true;
|
|
118
|
+
}, "File format not accepted.");
|
|
119
|
+
jQuery.validator.addClassRules({
|
|
120
|
+
file_format: {file_format: true}
|
|
121
|
+
});
|
|
122
|
+
$('form.cama_form_validate').validate();
|
|
123
|
+
});
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Translated default messages for the jQuery validation plugin.
|
|
3
|
+
* Locale: DE (German, Deutsch)
|
|
4
|
+
*/
|
|
5
|
+
$.extend( $.validator.messages, {
|
|
6
|
+
required: "Dieses Feld ist ein Pflichtfeld.",
|
|
7
|
+
maxlength: $.validator.format( "Geben Sie bitte maximal {0} Zeichen ein." ),
|
|
8
|
+
minlength: $.validator.format( "Geben Sie bitte mindestens {0} Zeichen ein." ),
|
|
9
|
+
rangelength: $.validator.format( "Geben Sie bitte mindestens {0} und maximal {1} Zeichen ein." ),
|
|
10
|
+
email: "Geben Sie bitte eine gültige E-Mail Adresse ein.",
|
|
11
|
+
url: "Geben Sie bitte eine gültige URL ein.",
|
|
12
|
+
date: "Bitte geben Sie ein gültiges Datum ein.",
|
|
13
|
+
number: "Geben Sie bitte eine Nummer ein.",
|
|
14
|
+
digits: "Geben Sie bitte nur Ziffern ein.",
|
|
15
|
+
equalTo: "Bitte denselben Wert wiederholen.",
|
|
16
|
+
range: $.validator.format( "Geben Sie bitte einen Wert zwischen {0} und {1} ein." ),
|
|
17
|
+
max: $.validator.format( "Geben Sie bitte einen Wert kleiner oder gleich {0} ein." ),
|
|
18
|
+
min: $.validator.format( "Geben Sie bitte einen Wert größer oder gleich {0} ein." ),
|
|
19
|
+
creditcard: "Geben Sie bitte eine gültige Kreditkarten-Nummer ein."
|
|
20
|
+
} );
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Translated default messages for the jQuery validation plugin.
|
|
3
|
+
* Locale: ES (Spanish; Español)
|
|
4
|
+
*/
|
|
5
|
+
$.extend($.validator.messages, {
|
|
6
|
+
required: "Este campo es obligatorio.",
|
|
7
|
+
remote: "Por favor, rellena este campo.",
|
|
8
|
+
email: "Por favor, escribe una dirección de correo válida.",
|
|
9
|
+
url: "Por favor, escribe una URL válida.",
|
|
10
|
+
date: "Por favor, escribe una fecha válida.",
|
|
11
|
+
dateISO: "Por favor, escribe una fecha (ISO) válida.",
|
|
12
|
+
number: "Por favor, escribe un número válido.",
|
|
13
|
+
digits: "Por favor, escribe sólo dígitos.",
|
|
14
|
+
creditcard: "Por favor, escribe un número de tarjeta válido.",
|
|
15
|
+
equalTo: "Por favor, escribe el mismo valor de nuevo.",
|
|
16
|
+
extension: "Por favor, escribe un valor con una extensión aceptada.",
|
|
17
|
+
maxlength: $.validator.format("Por favor, no escribas más de {0} caracteres."),
|
|
18
|
+
minlength: $.validator.format("Por favor, no escribas menos de {0} caracteres."),
|
|
19
|
+
rangelength: $.validator.format("Por favor, escribe un valor entre {0} y {1} caracteres."),
|
|
20
|
+
range: $.validator.format("Por favor, escribe un valor entre {0} y {1}."),
|
|
21
|
+
max: $.validator.format("Por favor, escribe un valor menor o igual a {0}."),
|
|
22
|
+
min: $.validator.format("Por favor, escribe un valor mayor o igual a {0}."),
|
|
23
|
+
nifES: "Por favor, escribe un NIF válido.",
|
|
24
|
+
nieES: "Por favor, escribe un NIE válido.",
|
|
25
|
+
cifES: "Por favor, escribe un CIF válido.",
|
|
26
|
+
file_format: "Formato de archivo no permitido."
|
|
27
|
+
});
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Translated default messages for the jQuery validation plugin.
|
|
3
|
+
* Locale: FR (French; français)
|
|
4
|
+
*/
|
|
5
|
+
$.extend( $.validator.messages, {
|
|
6
|
+
required: "Ce champ est obligatoire.",
|
|
7
|
+
remote: "Veuillez corriger ce champ.",
|
|
8
|
+
email: "Veuillez fournir une adresse électronique valide.",
|
|
9
|
+
url: "Veuillez fournir une adresse URL valide.",
|
|
10
|
+
date: "Veuillez fournir une date valide.",
|
|
11
|
+
dateISO: "Veuillez fournir une date valide (ISO).",
|
|
12
|
+
number: "Veuillez fournir un numéro valide.",
|
|
13
|
+
digits: "Veuillez fournir seulement des chiffres.",
|
|
14
|
+
creditcard: "Veuillez fournir un numéro de carte de crédit valide.",
|
|
15
|
+
equalTo: "Veuillez fournir encore la même valeur.",
|
|
16
|
+
extension: "Veuillez fournir une valeur avec une extension valide.",
|
|
17
|
+
maxlength: $.validator.format( "Veuillez fournir au plus {0} caractères." ),
|
|
18
|
+
minlength: $.validator.format( "Veuillez fournir au moins {0} caractères." ),
|
|
19
|
+
rangelength: $.validator.format( "Veuillez fournir une valeur qui contient entre {0} et {1} caractères." ),
|
|
20
|
+
range: $.validator.format( "Veuillez fournir une valeur entre {0} et {1}." ),
|
|
21
|
+
max: $.validator.format( "Veuillez fournir une valeur inférieure ou égale à {0}." ),
|
|
22
|
+
min: $.validator.format( "Veuillez fournir une valeur supérieure ou égale à {0}." ),
|
|
23
|
+
maxWords: $.validator.format( "Veuillez fournir au plus {0} mots." ),
|
|
24
|
+
minWords: $.validator.format( "Veuillez fournir au moins {0} mots." ),
|
|
25
|
+
rangeWords: $.validator.format( "Veuillez fournir entre {0} et {1} mots." ),
|
|
26
|
+
letterswithbasicpunc: "Veuillez fournir seulement des lettres et des signes de ponctuation.",
|
|
27
|
+
alphanumeric: "Veuillez fournir seulement des lettres, nombres, espaces et soulignages.",
|
|
28
|
+
lettersonly: "Veuillez fournir seulement des lettres.",
|
|
29
|
+
nowhitespace: "Veuillez ne pas inscrire d'espaces blancs.",
|
|
30
|
+
ziprange: "Veuillez fournir un code postal entre 902xx-xxxx et 905-xx-xxxx.",
|
|
31
|
+
integer: "Veuillez fournir un nombre non décimal qui est positif ou négatif.",
|
|
32
|
+
vinUS: "Veuillez fournir un numéro d'identification du véhicule (VIN).",
|
|
33
|
+
dateITA: "Veuillez fournir une date valide.",
|
|
34
|
+
time: "Veuillez fournir une heure valide entre 00:00 et 23:59.",
|
|
35
|
+
phoneUS: "Veuillez fournir un numéro de téléphone valide.",
|
|
36
|
+
phoneUK: "Veuillez fournir un numéro de téléphone valide.",
|
|
37
|
+
mobileUK: "Veuillez fournir un numéro de téléphone mobile valide.",
|
|
38
|
+
strippedminlength: $.validator.format( "Veuillez fournir au moins {0} caractères." ),
|
|
39
|
+
email2: "Veuillez fournir une adresse électronique valide.",
|
|
40
|
+
url2: "Veuillez fournir une adresse URL valide.",
|
|
41
|
+
creditcardtypes: "Veuillez fournir un numéro de carte de crédit valide.",
|
|
42
|
+
ipv4: "Veuillez fournir une adresse IP v4 valide.",
|
|
43
|
+
ipv6: "Veuillez fournir une adresse IP v6 valide.",
|
|
44
|
+
require_from_group: "Veuillez fournir au moins {0} de ces champs.",
|
|
45
|
+
nifES: "Veuillez fournir un numéro NIF valide.",
|
|
46
|
+
nieES: "Veuillez fournir un numéro NIE valide.",
|
|
47
|
+
cifES: "Veuillez fournir un numéro CIF valide.",
|
|
48
|
+
postalCodeCA: "Veuillez fournir un code postal valide."
|
|
49
|
+
} );
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
$.extend($.validator.messages, {
|
|
2
|
+
required: "Questo campo è obbligatorio.",
|
|
3
|
+
remote: "Si prega di compilare questo campo.",
|
|
4
|
+
email: "Inserire un indirizzo email valido.",
|
|
5
|
+
url: "Inserire una URL valida.",
|
|
6
|
+
date: "Inserire una data valida.",
|
|
7
|
+
dateISO: "Inserire una data (ISO) valida.",
|
|
8
|
+
number: "Inserire un numero valido.",
|
|
9
|
+
digits: "Inserisci solo cifre.",
|
|
10
|
+
creditcard: "Inserire una tessera valida.",
|
|
11
|
+
equalTo: "Inserisci di nuovo lo stesso valore.",
|
|
12
|
+
extension: "Inserisci un valore con un'estensione valida.",
|
|
13
|
+
maxlength: $.validator.format("Non scrivere più di {0} caratteri."),
|
|
14
|
+
minlength: $.validator.format("Non scrivere meno di {0} caratteri."),
|
|
15
|
+
rangelength: $.validator.format("Inserisci un valore compreso tra {0} e {1} caratteri."),
|
|
16
|
+
range: $.validator.format("Inserisci un valore tra {0} e {1}."),
|
|
17
|
+
max: $.validator.format("Inserisci un valore minore o uguale a {0}."),
|
|
18
|
+
min: $.validator.format("Inserisci un valore maggiore o uguale a {0}."),
|
|
19
|
+
nifES: "Inserisci un NIF valido.",
|
|
20
|
+
nieES: "Inserisci un NIE valido.",
|
|
21
|
+
cifES: "Inserisci un CIF valido.",
|
|
22
|
+
file_format: "Formato archivio non permesso."
|
|
23
|
+
});
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Translated default messages for the jQuery validation plugin.
|
|
3
|
+
* Locale: NL (Dutch; Nederlands, Vlaams)
|
|
4
|
+
*/
|
|
5
|
+
$.extend( $.validator.messages, {
|
|
6
|
+
required: "Dit is een verplicht veld.",
|
|
7
|
+
remote: "Controleer dit veld.",
|
|
8
|
+
email: "Vul hier een geldig e-mailadres in.",
|
|
9
|
+
url: "Vul hier een geldige URL in.",
|
|
10
|
+
date: "Vul hier een geldige datum in.",
|
|
11
|
+
dateISO: "Vul hier een geldige datum in (ISO-formaat).",
|
|
12
|
+
number: "Vul hier een geldig getal in.",
|
|
13
|
+
digits: "Vul hier alleen getallen in.",
|
|
14
|
+
creditcard: "Vul hier een geldig creditcardnummer in.",
|
|
15
|
+
equalTo: "Vul hier dezelfde waarde in.",
|
|
16
|
+
extension: "Vul hier een waarde in met een geldige extensie.",
|
|
17
|
+
maxlength: $.validator.format( "Vul hier maximaal {0} tekens in." ),
|
|
18
|
+
minlength: $.validator.format( "Vul hier minimaal {0} tekens in." ),
|
|
19
|
+
rangelength: $.validator.format( "Vul hier een waarde in van minimaal {0} en maximaal {1} tekens." ),
|
|
20
|
+
range: $.validator.format( "Vul hier een waarde in van minimaal {0} en maximaal {1}." ),
|
|
21
|
+
max: $.validator.format( "Vul hier een waarde in kleiner dan of gelijk aan {0}." ),
|
|
22
|
+
min: $.validator.format( "Vul hier een waarde in groter dan of gelijk aan {0}." ),
|
|
23
|
+
|
|
24
|
+
// For validations in additional-methods.js
|
|
25
|
+
iban: "Vul hier een geldig IBAN in.",
|
|
26
|
+
dateNL: "Vul hier een geldige datum in.",
|
|
27
|
+
phoneNL: "Vul hier een geldig Nederlands telefoonnummer in.",
|
|
28
|
+
mobileNL: "Vul hier een geldig Nederlands mobiel telefoonnummer in.",
|
|
29
|
+
postalcodeNL: "Vul hier een geldige postcode in.",
|
|
30
|
+
bankaccountNL: "Vul hier een geldig bankrekeningnummer in.",
|
|
31
|
+
giroaccountNL: "Vul hier een geldig gironummer in.",
|
|
32
|
+
bankorgiroaccountNL: "Vul hier een geldig bank- of gironummer in."
|
|
33
|
+
} );
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Translated default messages for the jQuery validation plugin.
|
|
3
|
+
* Locale: PT (Portuguese; português)
|
|
4
|
+
* Region: BR (Brazil)
|
|
5
|
+
*/
|
|
6
|
+
$.extend( $.validator.messages, {
|
|
7
|
+
//Core
|
|
8
|
+
required: "Este campo é requerido.",
|
|
9
|
+
remote: "Por favor, corrija este campo.",
|
|
10
|
+
email: "Por favor, forneça um endereço de email válido.",
|
|
11
|
+
url: "Por favor, forneça uma URL válida.",
|
|
12
|
+
date: "Por favor, forneça uma data válida.",
|
|
13
|
+
dateISO: "Por favor, forneça uma data válida (ISO).",
|
|
14
|
+
number: "Por favor, forneça um número válido.",
|
|
15
|
+
digits: "Por favor, forneça somente dígitos.",
|
|
16
|
+
creditcard: "Por favor, forneça um cartão de crédito válido.",
|
|
17
|
+
equalTo: "Por favor, forneça o mesmo valor novamente.",
|
|
18
|
+
maxlength: $.validator.format( "Por favor, forneça não mais que {0} caracteres." ),
|
|
19
|
+
minlength: $.validator.format( "Por favor, forneça ao menos {0} caracteres." ),
|
|
20
|
+
rangelength: $.validator.format( "Por favor, forneça um valor entre {0} e {1} caracteres de comprimento." ),
|
|
21
|
+
range: $.validator.format( "Por favor, forneça um valor entre {0} e {1}." ),
|
|
22
|
+
max: $.validator.format( "Por favor, forneça um valor menor ou igual a {0}." ),
|
|
23
|
+
min: $.validator.format( "Por favor, forneça um valor maior ou igual a {0}." ),
|
|
24
|
+
|
|
25
|
+
// Metodos Adicionais
|
|
26
|
+
maxWords: $.validator.format( "Por favor, forneça com {0} palavras ou menos." ),
|
|
27
|
+
minWords: $.validator.format( "Por favor, forneça pelo menos {0} palavras." ),
|
|
28
|
+
rangeWords: $.validator.format( "Por favor, forneça entre {0} e {1} palavras." ),
|
|
29
|
+
accept: "Por favor, forneça um tipo válido.",
|
|
30
|
+
alphanumeric: "Por favor, forneça somente com letras, números e sublinhados.",
|
|
31
|
+
bankaccountNL: "Por favor, forneça com um número de conta bancária válida.",
|
|
32
|
+
bankorgiroaccountNL: "Por favor, forneça um banco válido ou número de conta.",
|
|
33
|
+
bic: "Por favor, forneça um código BIC válido.",
|
|
34
|
+
cifES: "Por favor, forneça um código CIF válido.",
|
|
35
|
+
creditcardtypes: "Por favor, forneça um número de cartão de crédito válido.",
|
|
36
|
+
currency: "Por favor, forneça uma moeda válida.",
|
|
37
|
+
dateFA: "Por favor, forneça uma data correta.",
|
|
38
|
+
dateITA: "Por favor, forneça uma data correta.",
|
|
39
|
+
dateNL: "Por favor, forneça uma data correta.",
|
|
40
|
+
extension: "Por favor, forneça um valor com uma extensão válida.",
|
|
41
|
+
giroaccountNL: "Por favor, forneça um número de conta corrente válido.",
|
|
42
|
+
iban: "Por favor, forneça um código IBAN válido.",
|
|
43
|
+
integer: "Por favor, forneça um número não decimal.",
|
|
44
|
+
ipv4: "Por favor, forneça um IPv4 válido.",
|
|
45
|
+
ipv6: "Por favor, forneça um IPv6 válido.",
|
|
46
|
+
lettersonly: "Por favor, forneça apenas com letras.",
|
|
47
|
+
letterswithbasicpunc: "Por favor, forneça apenas letras ou pontuações.",
|
|
48
|
+
mobileNL: "Por favor, forneceça um número válido de telefone.",
|
|
49
|
+
mobileUK: "Por favor, forneceça um número válido de telefone.",
|
|
50
|
+
nieES: "Por favor, forneça um NIE válido.",
|
|
51
|
+
nifES: "Por favor, forneça um NIF válido.",
|
|
52
|
+
nowhitespace: "Por favor, não utilize espaços em branco.",
|
|
53
|
+
pattern: "O formato fornenecido é inválido.",
|
|
54
|
+
phoneNL: "Por favor, forneceça um número de telefone válido.",
|
|
55
|
+
phoneUK: "Por favor, forneceça um número de telefone válido.",
|
|
56
|
+
phoneUS: "Por favor, forneceça um número de telefone válido.",
|
|
57
|
+
phonesUK: "Por favor, forneceça um número de telefone válido.",
|
|
58
|
+
postalCodeCA: "Por favor, forneceça um número de código postal válido.",
|
|
59
|
+
postalcodeIT: "Por favor, forneceça um número de código postal válido.",
|
|
60
|
+
postalcodeNL: "Por favor, forneceça um número de código postal válido.",
|
|
61
|
+
postcodeUK: "Por favor, forneceça um número de código postal válido.",
|
|
62
|
+
postalcodeBR: "Por favor, forneça um CEP válido.",
|
|
63
|
+
require_from_group: $.validator.format( "Por favor, forneça pelo menos {0} destes campos." ),
|
|
64
|
+
skip_or_fill_minimum: $.validator.format( "Por favor, optar entre ignorar esses campos ou preencher pelo menos {0} deles." ),
|
|
65
|
+
stateUS: "Por favor, forneça um estado válido.",
|
|
66
|
+
strippedminlength: $.validator.format( "Por favor, forneça pelo menos {0} caracteres." ),
|
|
67
|
+
time: "Por favor, forneça um horário válido, no intervado de 00:00 e 23:59.",
|
|
68
|
+
time12h: "Por favor, forneça um horário válido, no intervado de 01:00 e 12:59 am/pm.",
|
|
69
|
+
url2: "Por favor, forneceça uma URL válida.",
|
|
70
|
+
vinUS: "O número de identificação de veículo informada (VIN) é inválido.",
|
|
71
|
+
zipcodeUS: "Por favor, forneceça um código postal americano válido.",
|
|
72
|
+
ziprange: "O código postal deve estar entre 902xx-xxxx e 905xx-xxxx",
|
|
73
|
+
cpfBR: "Por favor, forneça um CPF válido."
|
|
74
|
+
} );
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
$.extend( $.validator.messages, {
|
|
2
|
+
required: "Это поле необходимо заполнить.",
|
|
3
|
+
remote: "Пожалуйста, введите правильное значение.",
|
|
4
|
+
email: "Пожалуйста, введите корректный адрес электронной почты.",
|
|
5
|
+
url: "Пожалуйста, введите корректный URL.",
|
|
6
|
+
date: "Пожалуйста, введите корректную дату.",
|
|
7
|
+
dateISO: "Пожалуйста, введите корректную дату в формате ISO.",
|
|
8
|
+
number: "Пожалуйста, введите число.",
|
|
9
|
+
digits: "Пожалуйста, вводите только цифры.",
|
|
10
|
+
creditcard: "Пожалуйста, введите правильный номер кредитной карты.",
|
|
11
|
+
equalTo: "Пожалуйста, введите такое же значение ещё раз.",
|
|
12
|
+
extension: "Пожалуйста, выберите файл с правильным расширением.",
|
|
13
|
+
maxlength: $.validator.format( "Пожалуйста, введите не больше {0} символов." ),
|
|
14
|
+
minlength: $.validator.format( "Пожалуйста, введите не меньше {0} символов." ),
|
|
15
|
+
rangelength: $.validator.format( "Пожалуйста, введите значение длиной от {0} до {1} символов." ),
|
|
16
|
+
range: $.validator.format( "Пожалуйста, введите число от {0} до {1}." ),
|
|
17
|
+
max: $.validator.format( "Пожалуйста, введите число, меньшее или равное {0}." ),
|
|
18
|
+
min: $.validator.format( "Пожалуйста, введите число, большее или равное {0}." )
|
|
19
|
+
} );
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Translated default messages for the jQuery validation plugin.
|
|
3
|
+
* Locale: UK (Ukrainian; українська мова)
|
|
4
|
+
*/
|
|
5
|
+
$.extend( $.validator.messages, {
|
|
6
|
+
required: "Це поле необхідно заповнити.",
|
|
7
|
+
remote: "Будь ласка, введіть правильне значення.",
|
|
8
|
+
email: "Будь ласка, введіть коректну адресу електронної пошти.",
|
|
9
|
+
url: "Будь ласка, введіть коректний URL.",
|
|
10
|
+
date: "Будь ласка, введіть коректну дату.",
|
|
11
|
+
dateISO: "Будь ласка, введіть коректну дату у форматі ISO.",
|
|
12
|
+
number: "Будь ласка, введіть число.",
|
|
13
|
+
digits: "Вводите потрібно лише цифри.",
|
|
14
|
+
creditcard: "Будь ласка, введіть правильний номер кредитної карти.",
|
|
15
|
+
equalTo: "Будь ласка, введіть таке ж значення ще раз.",
|
|
16
|
+
extension: "Будь ласка, виберіть файл з правильним розширенням.",
|
|
17
|
+
maxlength: $.validator.format( "Будь ласка, введіть не більше {0} символів." ),
|
|
18
|
+
minlength: $.validator.format( "Будь ласка, введіть не менше {0} символів." ),
|
|
19
|
+
rangelength: $.validator.format( "Будь ласка, введіть значення довжиною від {0} до {1} символів." ),
|
|
20
|
+
range: $.validator.format( "Будь ласка, введіть число від {0} до {1}." ),
|
|
21
|
+
max: $.validator.format( "Будь ласка, введіть число, менше або рівно {0}." ),
|
|
22
|
+
min: $.validator.format( "Будь ласка, введіть число, більше або рівно {0}." )
|
|
23
|
+
} );
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Translated default messages for the jQuery validation plugin.
|
|
3
|
+
* Locale: ZH (Chinese, 中文 (Zhōngwén), 汉语, 漢語)
|
|
4
|
+
*/
|
|
5
|
+
$.extend($.validator.messages, {
|
|
6
|
+
required: "这是必填字段",
|
|
7
|
+
remote: "请修正此字段",
|
|
8
|
+
email: "请输入有效的电子邮件地址",
|
|
9
|
+
url: "请输入有效的网址",
|
|
10
|
+
date: "请输入有效的日期",
|
|
11
|
+
dateISO: "请输入有效的日期 (YYYY-MM-DD)",
|
|
12
|
+
number: "请输入有效的数字",
|
|
13
|
+
digits: "只能输入数字",
|
|
14
|
+
creditcard: "请输入有效的信用卡号码",
|
|
15
|
+
equalTo: "你的输入不相同",
|
|
16
|
+
extension: "请输入有效的后缀",
|
|
17
|
+
maxlength: $.validator.format("最多可以输入 {0} 个字符"),
|
|
18
|
+
minlength: $.validator.format("最少要输入 {0} 个字符"),
|
|
19
|
+
rangelength: $.validator.format("请输入长度在 {0} 到 {1} 之间的字符串"),
|
|
20
|
+
range: $.validator.format("请输入范围在 {0} 到 {1} 之间的数值"),
|
|
21
|
+
max: $.validator.format("请输入不大于 {0} 的数值"),
|
|
22
|
+
min: $.validator.format("请输入不小于 {0} 的数值")
|
|
23
|
+
});
|
|
@@ -0,0 +1,758 @@
|
|
|
1
|
+
/*! AdminLTE app.js
|
|
2
|
+
* ================
|
|
3
|
+
* Main JS application file for AdminLTE v2. This file
|
|
4
|
+
* should be included in all pages. It controls some layout
|
|
5
|
+
* options and implements exclusive AdminLTE plugins.
|
|
6
|
+
*
|
|
7
|
+
* @Author Almsaeed Studio
|
|
8
|
+
* @Support <http://www.almsaeedstudio.com>
|
|
9
|
+
* @Email <support@almsaeedstudio.com>
|
|
10
|
+
* @version 2.3.1
|
|
11
|
+
* @license MIT <http://opensource.org/licenses/MIT>
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
//Make sure jQuery has been loaded before app.js
|
|
15
|
+
if (typeof jQuery === "undefined") {
|
|
16
|
+
throw new Error("AdminLTE requires jQuery");
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/* AdminLTE
|
|
20
|
+
*
|
|
21
|
+
* @type Object
|
|
22
|
+
* @description $.AdminLTE is the main object for the template's app.
|
|
23
|
+
* It's used for implementing functions and options related
|
|
24
|
+
* to the template. Keeping everything wrapped in an object
|
|
25
|
+
* prevents conflict with other plugins and is a better
|
|
26
|
+
* way to organize our code.
|
|
27
|
+
*/
|
|
28
|
+
$.AdminLTE = {};
|
|
29
|
+
|
|
30
|
+
/* --------------------
|
|
31
|
+
* - AdminLTE Options -
|
|
32
|
+
* --------------------
|
|
33
|
+
* Modify these options to suit your implementation
|
|
34
|
+
*/
|
|
35
|
+
$.AdminLTE.options = {
|
|
36
|
+
//Add slimscroll to navbar menus
|
|
37
|
+
//This requires you to load the slimscroll plugin
|
|
38
|
+
//in every page before app.js
|
|
39
|
+
navbarMenuSlimscroll: true,
|
|
40
|
+
navbarMenuSlimscrollWidth: "3px", //The width of the scroll bar
|
|
41
|
+
navbarMenuHeight: "200px", //The height of the inner menu
|
|
42
|
+
//General animation speed for JS animated elements such as box collapse/expand and
|
|
43
|
+
//sidebar treeview slide up/down. This options accepts an integer as milliseconds,
|
|
44
|
+
//'fast', 'normal', or 'slow'
|
|
45
|
+
animationSpeed: 500,
|
|
46
|
+
//Sidebar push menu toggle button selector
|
|
47
|
+
sidebarToggleSelector: "[data-toggle='offcanvas']",
|
|
48
|
+
//Activate sidebar push menu
|
|
49
|
+
sidebarPushMenu: true,
|
|
50
|
+
//Activate sidebar slimscroll if the fixed layout is set (requires SlimScroll Plugin)
|
|
51
|
+
sidebarSlimScroll: false,
|
|
52
|
+
//Enable sidebar expand on hover effect for sidebar mini
|
|
53
|
+
//This option is forced to true if both the fixed layout and sidebar mini
|
|
54
|
+
//are used together
|
|
55
|
+
sidebarExpandOnHover: false,
|
|
56
|
+
//BoxRefresh Plugin
|
|
57
|
+
enableBoxRefresh: false,
|
|
58
|
+
//Bootstrap.js tooltip
|
|
59
|
+
enableBSToppltip: false,
|
|
60
|
+
BSTooltipSelector: "[data-toggle='tooltip']",
|
|
61
|
+
//Enable Fast Click. Fastclick.js creates a more
|
|
62
|
+
//native touch experience with touch devices. If you
|
|
63
|
+
//choose to enable the plugin, make sure you load the script
|
|
64
|
+
//before AdminLTE's app.js
|
|
65
|
+
enableFastclick: true,
|
|
66
|
+
//Control Sidebar Options
|
|
67
|
+
enableControlSidebar: true,
|
|
68
|
+
controlSidebarOptions: {
|
|
69
|
+
//Which button should trigger the open/close event
|
|
70
|
+
toggleBtnSelector: "[data-toggle='control-sidebar']",
|
|
71
|
+
//The sidebar selector
|
|
72
|
+
selector: ".control-sidebar",
|
|
73
|
+
//Enable slide over content
|
|
74
|
+
slide: true
|
|
75
|
+
},
|
|
76
|
+
//Box Widget Plugin. Enable this plugin
|
|
77
|
+
//to allow boxes to be collapsed and/or removed
|
|
78
|
+
enableBoxWidget: true,
|
|
79
|
+
//Box Widget plugin options
|
|
80
|
+
boxWidgetOptions: {
|
|
81
|
+
boxWidgetIcons: {
|
|
82
|
+
//Collapse icon
|
|
83
|
+
collapse: 'fa-minus',
|
|
84
|
+
//Open icon
|
|
85
|
+
open: 'fa-plus',
|
|
86
|
+
//Remove icon
|
|
87
|
+
remove: 'fa-times'
|
|
88
|
+
},
|
|
89
|
+
boxWidgetSelectors: {
|
|
90
|
+
//Remove button selector
|
|
91
|
+
remove: '[data-widget="remove"]',
|
|
92
|
+
//Collapse button selector
|
|
93
|
+
collapse: '[data-widget="collapse"]'
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
//Direct Chat plugin options
|
|
97
|
+
directChat: {
|
|
98
|
+
//Enable direct chat by default
|
|
99
|
+
enable: false,
|
|
100
|
+
//The button to open and close the chat contacts pane
|
|
101
|
+
contactToggleSelector: '[data-widget="chat-pane-toggle"]'
|
|
102
|
+
},
|
|
103
|
+
//Define the set of colors to use globally around the website
|
|
104
|
+
colors: {
|
|
105
|
+
lightBlue: "#3c8dbc",
|
|
106
|
+
red: "#f56954",
|
|
107
|
+
green: "#00a65a",
|
|
108
|
+
aqua: "#00c0ef",
|
|
109
|
+
yellow: "#f39c12",
|
|
110
|
+
blue: "#0073b7",
|
|
111
|
+
navy: "#001F3F",
|
|
112
|
+
teal: "#39CCCC",
|
|
113
|
+
olive: "#3D9970",
|
|
114
|
+
lime: "#01FF70",
|
|
115
|
+
orange: "#FF851B",
|
|
116
|
+
fuchsia: "#F012BE",
|
|
117
|
+
purple: "#8E24AA",
|
|
118
|
+
maroon: "#D81B60",
|
|
119
|
+
black: "#222222",
|
|
120
|
+
gray: "#d2d6de"
|
|
121
|
+
},
|
|
122
|
+
//The standard screen sizes that bootstrap uses.
|
|
123
|
+
//If you change these in the variables.less file, change
|
|
124
|
+
//them here too.
|
|
125
|
+
screenSizes: {
|
|
126
|
+
xs: 480,
|
|
127
|
+
sm: 768,
|
|
128
|
+
md: 992,
|
|
129
|
+
lg: 1200
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
/* ------------------
|
|
134
|
+
* - Implementation -
|
|
135
|
+
* ------------------
|
|
136
|
+
* The next block of code implements AdminLTE's
|
|
137
|
+
* functions and plugins as specified by the
|
|
138
|
+
* options above.
|
|
139
|
+
*/
|
|
140
|
+
$(function () {
|
|
141
|
+
"use strict";
|
|
142
|
+
|
|
143
|
+
//Fix for IE page transitions
|
|
144
|
+
$("body").removeClass("hold-transition");
|
|
145
|
+
|
|
146
|
+
//Extend options if external options exist
|
|
147
|
+
if (typeof AdminLTEOptions !== "undefined") {
|
|
148
|
+
$.extend(true,
|
|
149
|
+
$.AdminLTE.options,
|
|
150
|
+
AdminLTEOptions);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
//Easy access to options
|
|
154
|
+
var o = $.AdminLTE.options;
|
|
155
|
+
|
|
156
|
+
//Set up the object
|
|
157
|
+
_init();
|
|
158
|
+
|
|
159
|
+
//Activate the layout maker
|
|
160
|
+
$.AdminLTE.layout.activate();
|
|
161
|
+
|
|
162
|
+
//Enable sidebar tree view controls
|
|
163
|
+
$.AdminLTE.tree('.sidebar');
|
|
164
|
+
|
|
165
|
+
//Enable control sidebar
|
|
166
|
+
if (o.enableControlSidebar) {
|
|
167
|
+
$.AdminLTE.controlSidebar.activate();
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
//Add slimscroll to navbar dropdown
|
|
171
|
+
if (o.navbarMenuSlimscroll && typeof $.fn.slimscroll != 'undefined') {
|
|
172
|
+
$(".navbar .menu").slimscroll({
|
|
173
|
+
height: o.navbarMenuHeight,
|
|
174
|
+
alwaysVisible: false,
|
|
175
|
+
size: o.navbarMenuSlimscrollWidth
|
|
176
|
+
}).css("width", "100%");
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
//Activate sidebar push menu
|
|
180
|
+
if (o.sidebarPushMenu) {
|
|
181
|
+
$.AdminLTE.pushMenu.activate(o.sidebarToggleSelector);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
//Activate Bootstrap tooltip
|
|
185
|
+
if (o.enableBSToppltip) {
|
|
186
|
+
$('body').tooltip({
|
|
187
|
+
selector: o.BSTooltipSelector
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
//Activate box widget
|
|
192
|
+
if (o.enableBoxWidget) {
|
|
193
|
+
$.AdminLTE.boxWidget.activate();
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
//Activate fast click
|
|
197
|
+
if (o.enableFastclick && typeof FastClick != 'undefined') {
|
|
198
|
+
FastClick.attach(document.body);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
//Activate direct chat widget
|
|
202
|
+
if (o.directChat.enable) {
|
|
203
|
+
$(document).on('click', o.directChat.contactToggleSelector, function () {
|
|
204
|
+
var box = $(this).parents('.direct-chat').first();
|
|
205
|
+
box.toggleClass('direct-chat-contacts-open');
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/*
|
|
210
|
+
* INITIALIZE BUTTON TOGGLE
|
|
211
|
+
* ------------------------
|
|
212
|
+
*/
|
|
213
|
+
$('.btn-group[data-toggle="btn-toggle"]').each(function () {
|
|
214
|
+
var group = $(this);
|
|
215
|
+
$(this).find(".btn").on('click', function (e) {
|
|
216
|
+
group.find(".btn.active").removeClass("active");
|
|
217
|
+
$(this).addClass("active");
|
|
218
|
+
e.preventDefault();
|
|
219
|
+
});
|
|
220
|
+
|
|
221
|
+
});
|
|
222
|
+
});
|
|
223
|
+
|
|
224
|
+
/* ----------------------------------
|
|
225
|
+
* - Initialize the AdminLTE Object -
|
|
226
|
+
* ----------------------------------
|
|
227
|
+
* All AdminLTE functions are implemented below.
|
|
228
|
+
*/
|
|
229
|
+
function _init() {
|
|
230
|
+
'use strict';
|
|
231
|
+
/* Layout
|
|
232
|
+
* ======
|
|
233
|
+
* Fixes the layout height in case min-height fails.
|
|
234
|
+
*
|
|
235
|
+
* @type Object
|
|
236
|
+
* @usage $.AdminLTE.layout.activate()
|
|
237
|
+
* $.AdminLTE.layout.fix()
|
|
238
|
+
* $.AdminLTE.layout.fixSidebar()
|
|
239
|
+
*/
|
|
240
|
+
$.AdminLTE.layout = {
|
|
241
|
+
activate: function () {
|
|
242
|
+
var _this = this;
|
|
243
|
+
_this.fix();
|
|
244
|
+
_this.fixSidebar();
|
|
245
|
+
$(window, ".wrapper").resize(function () {
|
|
246
|
+
_this.fix();
|
|
247
|
+
_this.fixSidebar();
|
|
248
|
+
});
|
|
249
|
+
},
|
|
250
|
+
fix: function () {
|
|
251
|
+
//Get window height and the wrapper height
|
|
252
|
+
var neg = $('.main-header').outerHeight() + $('.main-footer').outerHeight();
|
|
253
|
+
var window_height = $(window).height();
|
|
254
|
+
var sidebar_height = $(".sidebar").height();
|
|
255
|
+
//Set the min-height of the content and sidebar based on the
|
|
256
|
+
//the height of the document.
|
|
257
|
+
if ($("body").hasClass("fixed")) {
|
|
258
|
+
$(".content-wrapper, .right-side").css('min-height', window_height - $('.main-footer').outerHeight());
|
|
259
|
+
} else {
|
|
260
|
+
var postSetWidth;
|
|
261
|
+
if (window_height >= sidebar_height) {
|
|
262
|
+
$(".content-wrapper, .right-side").css('min-height', window_height - neg);
|
|
263
|
+
postSetWidth = window_height - neg;
|
|
264
|
+
} else {
|
|
265
|
+
$(".content-wrapper, .right-side").css('min-height', sidebar_height);
|
|
266
|
+
postSetWidth = sidebar_height;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
//Fix for the control sidebar height
|
|
270
|
+
var controlSidebar = $($.AdminLTE.options.controlSidebarOptions.selector);
|
|
271
|
+
if (typeof controlSidebar !== "undefined") {
|
|
272
|
+
if (controlSidebar.height() > postSetWidth)
|
|
273
|
+
$(".content-wrapper, .right-side").css('min-height', controlSidebar.height());
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
}
|
|
277
|
+
},
|
|
278
|
+
fixSidebar: function () {
|
|
279
|
+
//Make sure the body tag has the .fixed class
|
|
280
|
+
if (!$("body").hasClass("fixed")) {
|
|
281
|
+
if (typeof $.fn.slimScroll != 'undefined') {
|
|
282
|
+
$(".sidebar").slimScroll({destroy: true}).height("auto");
|
|
283
|
+
}
|
|
284
|
+
return;
|
|
285
|
+
} else if (typeof $.fn.slimScroll == 'undefined' && window.console) {
|
|
286
|
+
window.console.error("Error: the fixed layout requires the slimscroll plugin!");
|
|
287
|
+
}
|
|
288
|
+
//Enable slimscroll for fixed layout
|
|
289
|
+
if ($.AdminLTE.options.sidebarSlimScroll) {
|
|
290
|
+
if (typeof $.fn.slimScroll != 'undefined') {
|
|
291
|
+
//Destroy if it exists
|
|
292
|
+
$(".sidebar").slimScroll({destroy: true}).height("auto");
|
|
293
|
+
//Add slimscroll
|
|
294
|
+
$(".sidebar").slimscroll({
|
|
295
|
+
height: ($(window).height() - $(".main-header").height()) + "px",
|
|
296
|
+
color: "rgba(0,0,0,0.2)",
|
|
297
|
+
size: "3px"
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
};
|
|
303
|
+
|
|
304
|
+
/* PushMenu()
|
|
305
|
+
* ==========
|
|
306
|
+
* Adds the push menu functionality to the sidebar.
|
|
307
|
+
*
|
|
308
|
+
* @type Function
|
|
309
|
+
* @usage: $.AdminLTE.pushMenu("[data-toggle='offcanvas']")
|
|
310
|
+
*/
|
|
311
|
+
$.AdminLTE.pushMenu = {
|
|
312
|
+
activate: function (toggleBtn) {
|
|
313
|
+
//Get the screen sizes
|
|
314
|
+
var screenSizes = $.AdminLTE.options.screenSizes;
|
|
315
|
+
|
|
316
|
+
//Enable sidebar toggle
|
|
317
|
+
$(document).on('click', toggleBtn, function (e) {
|
|
318
|
+
e.preventDefault();
|
|
319
|
+
|
|
320
|
+
//Enable sidebar push menu
|
|
321
|
+
if ($(window).width() > (screenSizes.sm - 1)) {
|
|
322
|
+
if ($("body").hasClass('sidebar-collapse')) {
|
|
323
|
+
$("body").removeClass('sidebar-collapse').trigger('expanded.pushMenu');
|
|
324
|
+
} else {
|
|
325
|
+
$("body").addClass('sidebar-collapse').trigger('collapsed.pushMenu');
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
//Handle sidebar push menu for small screens
|
|
329
|
+
else {
|
|
330
|
+
if ($("body").hasClass('sidebar-open')) {
|
|
331
|
+
$("body").removeClass('sidebar-open').removeClass('sidebar-collapse').trigger('collapsed.pushMenu');
|
|
332
|
+
} else {
|
|
333
|
+
$("body").addClass('sidebar-open').trigger('expanded.pushMenu');
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
});
|
|
337
|
+
|
|
338
|
+
$(".content-wrapper").click(function () {
|
|
339
|
+
//Enable hide menu when clicking on the content-wrapper on small screens
|
|
340
|
+
if ($(window).width() <= (screenSizes.sm - 1) && $("body").hasClass("sidebar-open")) {
|
|
341
|
+
$("body").removeClass('sidebar-open');
|
|
342
|
+
}
|
|
343
|
+
});
|
|
344
|
+
|
|
345
|
+
//Enable expand on hover for sidebar mini
|
|
346
|
+
if ($.AdminLTE.options.sidebarExpandOnHover
|
|
347
|
+
|| ($('body').hasClass('fixed')
|
|
348
|
+
&& $('body').hasClass('sidebar-mini'))) {
|
|
349
|
+
this.expandOnHover();
|
|
350
|
+
}
|
|
351
|
+
},
|
|
352
|
+
expandOnHover: function () {
|
|
353
|
+
var _this = this;
|
|
354
|
+
var screenWidth = $.AdminLTE.options.screenSizes.sm - 1;
|
|
355
|
+
//Expand sidebar on hover
|
|
356
|
+
$('.main-sidebar').hover(function () {
|
|
357
|
+
if ($('body').hasClass('sidebar-mini')
|
|
358
|
+
&& $("body").hasClass('sidebar-collapse')
|
|
359
|
+
&& $(window).width() > screenWidth) {
|
|
360
|
+
_this.expand();
|
|
361
|
+
}
|
|
362
|
+
}, function () {
|
|
363
|
+
if ($('body').hasClass('sidebar-mini')
|
|
364
|
+
&& $('body').hasClass('sidebar-expanded-on-hover')
|
|
365
|
+
&& $(window).width() > screenWidth) {
|
|
366
|
+
_this.collapse();
|
|
367
|
+
}
|
|
368
|
+
});
|
|
369
|
+
},
|
|
370
|
+
expand: function () {
|
|
371
|
+
$("body").removeClass('sidebar-collapse').addClass('sidebar-expanded-on-hover');
|
|
372
|
+
},
|
|
373
|
+
collapse: function () {
|
|
374
|
+
if ($('body').hasClass('sidebar-expanded-on-hover')) {
|
|
375
|
+
$('body').removeClass('sidebar-expanded-on-hover').addClass('sidebar-collapse');
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
};
|
|
379
|
+
|
|
380
|
+
/* Tree()
|
|
381
|
+
* ======
|
|
382
|
+
* Converts the sidebar into a multilevel
|
|
383
|
+
* tree view menu.
|
|
384
|
+
*
|
|
385
|
+
* @type Function
|
|
386
|
+
* @Usage: $.AdminLTE.tree('.sidebar')
|
|
387
|
+
*/
|
|
388
|
+
$.AdminLTE.tree = function (menu) {
|
|
389
|
+
var _this = this;
|
|
390
|
+
var animationSpeed = $.AdminLTE.options.animationSpeed;
|
|
391
|
+
$(document).on('click', menu + ' li a', function (e) {
|
|
392
|
+
//Get the clicked link and the next element
|
|
393
|
+
var $this = $(this);
|
|
394
|
+
var checkElement = $this.next();
|
|
395
|
+
|
|
396
|
+
//Check if the next element is a menu and is visible
|
|
397
|
+
if ((checkElement.is('.treeview-menu')) && (checkElement.is(':visible'))) {
|
|
398
|
+
//Close the menu
|
|
399
|
+
checkElement.slideUp(animationSpeed, function () {
|
|
400
|
+
checkElement.removeClass('menu-open');
|
|
401
|
+
//Fix the layout in case the sidebar stretches over the height of the window
|
|
402
|
+
//_this.layout.fix();
|
|
403
|
+
});
|
|
404
|
+
checkElement.parent("li").removeClass("active");
|
|
405
|
+
}
|
|
406
|
+
//If the menu is not visible
|
|
407
|
+
else if ((checkElement.is('.treeview-menu')) && (!checkElement.is(':visible'))) {
|
|
408
|
+
//Get the parent menu
|
|
409
|
+
var parent = $this.parents('ul').first();
|
|
410
|
+
//Close all open menus within the parent
|
|
411
|
+
var ul = parent.find('ul:visible').slideUp(animationSpeed);
|
|
412
|
+
//Remove the menu-open class from the parent
|
|
413
|
+
ul.removeClass('menu-open');
|
|
414
|
+
//Get the parent li
|
|
415
|
+
var parent_li = $this.parent("li");
|
|
416
|
+
|
|
417
|
+
//Open the target menu and add the menu-open class
|
|
418
|
+
checkElement.slideDown(animationSpeed, function () {
|
|
419
|
+
//Add the class active to the parent li
|
|
420
|
+
checkElement.addClass('menu-open');
|
|
421
|
+
parent.find('li.active').removeClass('active');
|
|
422
|
+
parent_li.addClass('active');
|
|
423
|
+
//Fix the layout in case the sidebar stretches over the height of the window
|
|
424
|
+
_this.layout.fix();
|
|
425
|
+
});
|
|
426
|
+
}
|
|
427
|
+
//if this isn't a link, prevent the page from being redirected
|
|
428
|
+
if (checkElement.is('.treeview-menu')) {
|
|
429
|
+
e.preventDefault();
|
|
430
|
+
}
|
|
431
|
+
});
|
|
432
|
+
};
|
|
433
|
+
|
|
434
|
+
/* ControlSidebar
|
|
435
|
+
* ==============
|
|
436
|
+
* Adds functionality to the right sidebar
|
|
437
|
+
*
|
|
438
|
+
* @type Object
|
|
439
|
+
* @usage $.AdminLTE.controlSidebar.activate(options)
|
|
440
|
+
*/
|
|
441
|
+
$.AdminLTE.controlSidebar = {
|
|
442
|
+
//instantiate the object
|
|
443
|
+
activate: function () {
|
|
444
|
+
//Get the object
|
|
445
|
+
var _this = this;
|
|
446
|
+
//Update options
|
|
447
|
+
var o = $.AdminLTE.options.controlSidebarOptions;
|
|
448
|
+
//Get the sidebar
|
|
449
|
+
var sidebar = $(o.selector);
|
|
450
|
+
//The toggle button
|
|
451
|
+
var btn = $(o.toggleBtnSelector);
|
|
452
|
+
|
|
453
|
+
//Listen to the click event
|
|
454
|
+
btn.on('click', function (e) {
|
|
455
|
+
e.preventDefault();
|
|
456
|
+
//If the sidebar is not open
|
|
457
|
+
if (!sidebar.hasClass('control-sidebar-open')
|
|
458
|
+
&& !$('body').hasClass('control-sidebar-open')) {
|
|
459
|
+
//Open the sidebar
|
|
460
|
+
_this.open(sidebar, o.slide);
|
|
461
|
+
} else {
|
|
462
|
+
_this.close(sidebar, o.slide);
|
|
463
|
+
}
|
|
464
|
+
});
|
|
465
|
+
|
|
466
|
+
//If the body has a boxed layout, fix the sidebar bg position
|
|
467
|
+
var bg = $(".control-sidebar-bg");
|
|
468
|
+
_this._fix(bg);
|
|
469
|
+
|
|
470
|
+
//If the body has a fixed layout, make the control sidebar fixed
|
|
471
|
+
if ($('body').hasClass('fixed')) {
|
|
472
|
+
_this._fixForFixed(sidebar);
|
|
473
|
+
} else {
|
|
474
|
+
//If the content height is less than the sidebar's height, force max height
|
|
475
|
+
if ($('.content-wrapper, .right-side').height() < sidebar.height()) {
|
|
476
|
+
_this._fixForContent(sidebar);
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
},
|
|
480
|
+
//Open the control sidebar
|
|
481
|
+
open: function (sidebar, slide) {
|
|
482
|
+
//Slide over content
|
|
483
|
+
if (slide) {
|
|
484
|
+
sidebar.addClass('control-sidebar-open');
|
|
485
|
+
} else {
|
|
486
|
+
//Push the content by adding the open class to the body instead
|
|
487
|
+
//of the sidebar itself
|
|
488
|
+
$('body').addClass('control-sidebar-open');
|
|
489
|
+
}
|
|
490
|
+
},
|
|
491
|
+
//Close the control sidebar
|
|
492
|
+
close: function (sidebar, slide) {
|
|
493
|
+
if (slide) {
|
|
494
|
+
sidebar.removeClass('control-sidebar-open');
|
|
495
|
+
} else {
|
|
496
|
+
$('body').removeClass('control-sidebar-open');
|
|
497
|
+
}
|
|
498
|
+
},
|
|
499
|
+
_fix: function (sidebar) {
|
|
500
|
+
var _this = this;
|
|
501
|
+
if ($("body").hasClass('layout-boxed')) {
|
|
502
|
+
sidebar.css('position', 'absolute');
|
|
503
|
+
sidebar.height($(".wrapper").height());
|
|
504
|
+
$(window).resize(function () {
|
|
505
|
+
_this._fix(sidebar);
|
|
506
|
+
});
|
|
507
|
+
} else {
|
|
508
|
+
sidebar.css({
|
|
509
|
+
'position': 'fixed',
|
|
510
|
+
'height': 'auto'
|
|
511
|
+
});
|
|
512
|
+
}
|
|
513
|
+
},
|
|
514
|
+
_fixForFixed: function (sidebar) {
|
|
515
|
+
sidebar.css({
|
|
516
|
+
'position': 'fixed',
|
|
517
|
+
'max-height': '100%',
|
|
518
|
+
'overflow': 'auto',
|
|
519
|
+
'padding-bottom': '50px'
|
|
520
|
+
});
|
|
521
|
+
},
|
|
522
|
+
_fixForContent: function (sidebar) {
|
|
523
|
+
$(".content-wrapper, .right-side").css('min-height', sidebar.height());
|
|
524
|
+
}
|
|
525
|
+
};
|
|
526
|
+
|
|
527
|
+
/* BoxWidget
|
|
528
|
+
* =========
|
|
529
|
+
* BoxWidget is a plugin to handle collapsing and
|
|
530
|
+
* removing boxes from the screen.
|
|
531
|
+
*
|
|
532
|
+
* @type Object
|
|
533
|
+
* @usage $.AdminLTE.boxWidget.activate()
|
|
534
|
+
* Set all your options in the main $.AdminLTE.options object
|
|
535
|
+
*/
|
|
536
|
+
$.AdminLTE.boxWidget = {
|
|
537
|
+
selectors: $.AdminLTE.options.boxWidgetOptions.boxWidgetSelectors,
|
|
538
|
+
icons: $.AdminLTE.options.boxWidgetOptions.boxWidgetIcons,
|
|
539
|
+
animationSpeed: $.AdminLTE.options.animationSpeed,
|
|
540
|
+
activate: function (_box) {
|
|
541
|
+
var _this = this;
|
|
542
|
+
if (!_box) {
|
|
543
|
+
_box = document; // activate all boxes per default
|
|
544
|
+
}
|
|
545
|
+
//Listen for collapse event triggers
|
|
546
|
+
$(_box).on('click', _this.selectors.collapse, function (e) {
|
|
547
|
+
e.preventDefault();
|
|
548
|
+
_this.collapse($(this));
|
|
549
|
+
});
|
|
550
|
+
|
|
551
|
+
//Listen for remove event triggers
|
|
552
|
+
$(_box).on('click', _this.selectors.remove, function (e) {
|
|
553
|
+
e.preventDefault();
|
|
554
|
+
_this.remove($(this));
|
|
555
|
+
});
|
|
556
|
+
},
|
|
557
|
+
collapse: function (element) {
|
|
558
|
+
var _this = this;
|
|
559
|
+
//Find the box parent
|
|
560
|
+
var box = element.parents(".box").first();
|
|
561
|
+
//Find the body and the footer
|
|
562
|
+
var box_content = box.find("> .box-body, > .box-footer, > form >.box-body, > form > .box-footer");
|
|
563
|
+
if (!box.hasClass("collapsed-box")) {
|
|
564
|
+
//Convert minus into plus
|
|
565
|
+
element.children(":first")
|
|
566
|
+
.removeClass(_this.icons.collapse)
|
|
567
|
+
.addClass(_this.icons.open);
|
|
568
|
+
//Hide the content
|
|
569
|
+
box_content.slideUp(_this.animationSpeed, function () {
|
|
570
|
+
box.addClass("collapsed-box");
|
|
571
|
+
});
|
|
572
|
+
} else {
|
|
573
|
+
//Convert plus into minus
|
|
574
|
+
element.children(":first")
|
|
575
|
+
.removeClass(_this.icons.open)
|
|
576
|
+
.addClass(_this.icons.collapse);
|
|
577
|
+
//Show the content
|
|
578
|
+
box_content.slideDown(_this.animationSpeed, function () {
|
|
579
|
+
box.removeClass("collapsed-box");
|
|
580
|
+
});
|
|
581
|
+
}
|
|
582
|
+
},
|
|
583
|
+
remove: function (element) {
|
|
584
|
+
//Find the box parent
|
|
585
|
+
var box = element.parents(".box").first();
|
|
586
|
+
box.slideUp(this.animationSpeed);
|
|
587
|
+
}
|
|
588
|
+
};
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
/* ------------------
|
|
592
|
+
* - Custom Plugins -
|
|
593
|
+
* ------------------
|
|
594
|
+
* All custom plugins are defined below.
|
|
595
|
+
*/
|
|
596
|
+
|
|
597
|
+
/*
|
|
598
|
+
* BOX REFRESH BUTTON
|
|
599
|
+
* ------------------
|
|
600
|
+
* This is a custom plugin to use with the component BOX. It allows you to add
|
|
601
|
+
* a refresh button to the box. It converts the box's state to a loading state.
|
|
602
|
+
*
|
|
603
|
+
* @type plugin
|
|
604
|
+
* @usage $("#box-widget").boxRefresh( options );
|
|
605
|
+
*/
|
|
606
|
+
(function ($) {
|
|
607
|
+
|
|
608
|
+
"use strict";
|
|
609
|
+
|
|
610
|
+
$.fn.boxRefresh = function (options) {
|
|
611
|
+
|
|
612
|
+
// Render options
|
|
613
|
+
var settings = $.extend({
|
|
614
|
+
//Refresh button selector
|
|
615
|
+
trigger: ".refresh-btn",
|
|
616
|
+
//File source to be loaded (e.g: ajax/src.php)
|
|
617
|
+
source: "",
|
|
618
|
+
//Callbacks
|
|
619
|
+
onLoadStart: function (box) {
|
|
620
|
+
return box;
|
|
621
|
+
}, //Right after the button has been clicked
|
|
622
|
+
onLoadDone: function (box) {
|
|
623
|
+
return box;
|
|
624
|
+
} //When the source has been loaded
|
|
625
|
+
|
|
626
|
+
}, options);
|
|
627
|
+
|
|
628
|
+
//The overlay
|
|
629
|
+
var overlay = $('<div class="overlay"><div class="fa fa-refresh fa-spin"></div></div>');
|
|
630
|
+
|
|
631
|
+
return this.each(function () {
|
|
632
|
+
//if a source is specified
|
|
633
|
+
if (settings.source === "") {
|
|
634
|
+
if (window.console) {
|
|
635
|
+
window.console.log("Please specify a source first - boxRefresh()");
|
|
636
|
+
}
|
|
637
|
+
return;
|
|
638
|
+
}
|
|
639
|
+
//the box
|
|
640
|
+
var box = $(this);
|
|
641
|
+
//the button
|
|
642
|
+
var rBtn = box.find(settings.trigger).first();
|
|
643
|
+
|
|
644
|
+
//On trigger click
|
|
645
|
+
rBtn.on('click', function (e) {
|
|
646
|
+
e.preventDefault();
|
|
647
|
+
//Add loading overlay
|
|
648
|
+
start(box);
|
|
649
|
+
|
|
650
|
+
//Perform ajax call
|
|
651
|
+
box.find(".box-body").load(settings.source, function () {
|
|
652
|
+
done(box);
|
|
653
|
+
});
|
|
654
|
+
});
|
|
655
|
+
});
|
|
656
|
+
|
|
657
|
+
function start(box) {
|
|
658
|
+
//Add overlay and loading img
|
|
659
|
+
box.append(overlay);
|
|
660
|
+
|
|
661
|
+
settings.onLoadStart.call(box);
|
|
662
|
+
}
|
|
663
|
+
|
|
664
|
+
function done(box) {
|
|
665
|
+
//Remove overlay and loading img
|
|
666
|
+
box.find(overlay).remove();
|
|
667
|
+
|
|
668
|
+
settings.onLoadDone.call(box);
|
|
669
|
+
}
|
|
670
|
+
|
|
671
|
+
};
|
|
672
|
+
|
|
673
|
+
})(jQuery);
|
|
674
|
+
|
|
675
|
+
/*
|
|
676
|
+
* EXPLICIT BOX CONTROLS
|
|
677
|
+
* -----------------------
|
|
678
|
+
* This is a custom plugin to use with the component BOX. It allows you to activate
|
|
679
|
+
* a box inserted in the DOM after the app.js was loaded, toggle and remove box.
|
|
680
|
+
*
|
|
681
|
+
* @type plugin
|
|
682
|
+
* @usage $("#box-widget").activateBox();
|
|
683
|
+
* @usage $("#box-widget").toggleBox();
|
|
684
|
+
* @usage $("#box-widget").removeBox();
|
|
685
|
+
*/
|
|
686
|
+
(function ($) {
|
|
687
|
+
|
|
688
|
+
'use strict';
|
|
689
|
+
|
|
690
|
+
$.fn.activateBox = function () {
|
|
691
|
+
$.AdminLTE.boxWidget.activate(this);
|
|
692
|
+
};
|
|
693
|
+
|
|
694
|
+
$.fn.toggleBox = function(){
|
|
695
|
+
var button = $($.AdminLTE.boxWidget.selectors.collapse, this);
|
|
696
|
+
$.AdminLTE.boxWidget.collapse(button);
|
|
697
|
+
};
|
|
698
|
+
|
|
699
|
+
$.fn.removeBox = function(){
|
|
700
|
+
var button = $($.AdminLTE.boxWidget.selectors.remove, this);
|
|
701
|
+
$.AdminLTE.boxWidget.remove(button);
|
|
702
|
+
};
|
|
703
|
+
|
|
704
|
+
})(jQuery);
|
|
705
|
+
|
|
706
|
+
/*
|
|
707
|
+
* TODO LIST CUSTOM PLUGIN
|
|
708
|
+
* -----------------------
|
|
709
|
+
* This plugin depends on iCheck plugin for checkbox and radio inputs
|
|
710
|
+
*
|
|
711
|
+
* @type plugin
|
|
712
|
+
* @usage $("#todo-widget").todolist( options );
|
|
713
|
+
*/
|
|
714
|
+
(function ($) {
|
|
715
|
+
|
|
716
|
+
'use strict';
|
|
717
|
+
|
|
718
|
+
$.fn.todolist = function (options) {
|
|
719
|
+
// Render options
|
|
720
|
+
var settings = $.extend({
|
|
721
|
+
//When the user checks the input
|
|
722
|
+
onCheck: function (ele) {
|
|
723
|
+
return ele;
|
|
724
|
+
},
|
|
725
|
+
//When the user unchecks the input
|
|
726
|
+
onUncheck: function (ele) {
|
|
727
|
+
return ele;
|
|
728
|
+
}
|
|
729
|
+
}, options);
|
|
730
|
+
|
|
731
|
+
return this.each(function () {
|
|
732
|
+
|
|
733
|
+
if (typeof $.fn.iCheck != 'undefined') {
|
|
734
|
+
$('input', this).on('ifChecked', function () {
|
|
735
|
+
var ele = $(this).parents("li").first();
|
|
736
|
+
ele.toggleClass("done");
|
|
737
|
+
settings.onCheck.call(ele);
|
|
738
|
+
});
|
|
739
|
+
|
|
740
|
+
$('input', this).on('ifUnchecked', function () {
|
|
741
|
+
var ele = $(this).parents("li").first();
|
|
742
|
+
ele.toggleClass("done");
|
|
743
|
+
settings.onUncheck.call(ele);
|
|
744
|
+
});
|
|
745
|
+
} else {
|
|
746
|
+
$('input', this).on('change', function () {
|
|
747
|
+
var ele = $(this).parents("li").first();
|
|
748
|
+
ele.toggleClass("done");
|
|
749
|
+
if ($('input', ele).is(":checked")) {
|
|
750
|
+
settings.onCheck.call(ele);
|
|
751
|
+
} else {
|
|
752
|
+
settings.onUncheck.call(ele);
|
|
753
|
+
}
|
|
754
|
+
});
|
|
755
|
+
}
|
|
756
|
+
});
|
|
757
|
+
};
|
|
758
|
+
}(jQuery));
|