keppler 2.1.18 → 2.1.19
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 +4 -4
- data/Gemfile.lock +2 -6
- data/installer/core/.rspec +1 -0
- data/installer/core/Gemfile +2 -0
- data/installer/core/Gemfile.lock +3 -0
- data/installer/core/app/assets/stylesheets/admin/utils/_theme.scss +9 -0
- data/installer/core/app/controllers/admin/admin_controller.rb +7 -3
- data/installer/core/app/controllers/admin/settings_controller.rb +17 -17
- data/installer/core/app/controllers/application_controller.rb +1 -0
- data/installer/core/app/controllers/devise/keppler_sessions_controller.rb +116 -0
- data/installer/core/app/helpers/sessions_helper.rb +12 -0
- data/installer/core/app/views/admin/layouts/_navigation.html.haml +1 -1
- data/installer/core/app/views/admin/layouts/_sidebar.html.haml +4 -1
- data/installer/core/app/views/admin/settings/fields/_appearance.html.haml +0 -8
- data/installer/core/app/views/admin/settings/fields/_configuration.html.haml +28 -0
- data/installer/core/app/views/devise/keppler_sessions/new.html.haml +35 -0
- data/installer/core/app/views/errors/internal_server_error.html.haml +1 -1
- data/installer/core/app/views/errors/not_found.html.haml +1 -1
- data/installer/core/app/views/errors/unprocessable.html.haml +1 -1
- data/installer/core/config/application.rb +1 -1
- data/installer/core/config/initializers/keppler_configuration.rb +1 -1
- data/installer/core/config/locales/en.yml +3 -1
- data/installer/core/config/locales/es.yml +3 -1
- data/installer/core/config/routes.rb +14 -4
- data/installer/core/db/migrate/20160201210520_create_appearances.rb +1 -0
- data/installer/core/db/seeds.rb +0 -56
- data/installer/core/node_modules/.yarn-integrity +12 -0
- data/installer/core/public/assets/.sprockets-manifest-877f022ba780399cd6a445cb823e8e72.json +1 -0
- data/installer/core/public/assets/admin/application-58d3091abebccc0cbdc30400232e382b2b1af77adf19a8b0b7f1176d04e3e5e9.js +69621 -0
- data/installer/core/public/assets/admin/application-58d3091abebccc0cbdc30400232e382b2b1af77adf19a8b0b7f1176d04e3e5e9.js.gz +0 -0
- data/installer/core/public/assets/admin/application-b27fef8a9a1ff72bcdcc99542bef8dc3a0e5dabce87889ccfa6f292de2f80d7a.css +35768 -0
- data/installer/core/public/assets/admin/application-b27fef8a9a1ff72bcdcc99542bef8dc3a0e5dabce87889ccfa6f292de2f80d7a.css.gz +0 -0
- data/{testing-with-2.1.18/app/assets/images/admin/astronauta_keppler.svg → installer/core/public/assets/admin/astronauta_keppler-d82d3870b4df83d706e62601ee8bcdbf226ce7ca7928602d4de1055a95a8b751.svg} +0 -0
- data/installer/core/public/assets/admin/astronauta_keppler-d82d3870b4df83d706e62601ee8bcdbf226ce7ca7928602d4de1055a95a8b751.svg.gz +0 -0
- data/{testing-with-2.1.18/app/assets/images/admin/avatar_keppler.svg → installer/core/public/assets/admin/avatar_keppler-1bce561c65816623b43025321fc59c2bdab4800bac6e7e000ecfe471f105865a.svg} +0 -0
- data/installer/core/public/assets/admin/avatar_keppler-1bce561c65816623b43025321fc59c2bdab4800bac6e7e000ecfe471f105865a.svg.gz +0 -0
- data/{testing-with-2.1.18/app/assets/javascripts/admin/codemirror/mode/css/gss.html → installer/core/public/assets/admin/codemirror/mode/css/gss-c9fc3e7b6f68e62e1d26819c29c1be5beb597140fd8141293549385c79222d98.html} +0 -0
- data/installer/core/public/assets/admin/codemirror/mode/css/gss-c9fc3e7b6f68e62e1d26819c29c1be5beb597140fd8141293549385c79222d98.html.gz +0 -0
- data/{testing-with-2.1.18/app/assets/javascripts/admin/codemirror/mode/css/index.html → installer/core/public/assets/admin/codemirror/mode/css/index-1408e496c4871b6ab739e26b9f3dceaa8ef071aebce27d37c2f504a7f8033ccd.html} +0 -0
- data/installer/core/public/assets/admin/codemirror/mode/css/index-1408e496c4871b6ab739e26b9f3dceaa8ef071aebce27d37c2f504a7f8033ccd.html.gz +0 -0
- data/{testing-with-2.1.18/app/assets/javascripts/admin/codemirror/mode/css/less.html → installer/core/public/assets/admin/codemirror/mode/css/less-f7c3a9cfe1b5f3135f2e01037e9020d50b9c23103b8065514095fbbdea4e0764.html} +0 -0
- data/installer/core/public/assets/admin/codemirror/mode/css/less-f7c3a9cfe1b5f3135f2e01037e9020d50b9c23103b8065514095fbbdea4e0764.html.gz +0 -0
- data/{testing-with-2.1.18/app/assets/javascripts/admin/codemirror/mode/css/scss.html → installer/core/public/assets/admin/codemirror/mode/css/scss-bad8aebefd205cd2e6eae3abbed6ffc808bbe7e7eea75acb9b1586ef2a762b3f.html} +0 -0
- data/installer/core/public/assets/admin/codemirror/mode/css/scss-bad8aebefd205cd2e6eae3abbed6ffc808bbe7e7eea75acb9b1586ef2a762b3f.html.gz +0 -0
- data/{testing-with-2.1.18/app/assets/javascripts/admin/codemirror/mode/haml/index.html → installer/core/public/assets/admin/codemirror/mode/haml/index-c6fc029a6ab99692007433b79e187d25c3e779645d0cf1039dda43bc983d5022.html} +0 -0
- data/installer/core/public/assets/admin/codemirror/mode/haml/index-c6fc029a6ab99692007433b79e187d25c3e779645d0cf1039dda43bc983d5022.html.gz +0 -0
- data/{testing-with-2.1.18/app/assets/javascripts/admin/codemirror/mode/htmlembedded/index.html → installer/core/public/assets/admin/codemirror/mode/htmlembedded/index-5f63fdda0414dad66a9837d592767325f553a21a4a44d6dc29e8b9183fde838a.html} +0 -0
- data/installer/core/public/assets/admin/codemirror/mode/htmlembedded/index-5f63fdda0414dad66a9837d592767325f553a21a4a44d6dc29e8b9183fde838a.html.gz +0 -0
- data/{testing-with-2.1.18/app/assets/javascripts/admin/codemirror/mode/htmlmixed/index.html → installer/core/public/assets/admin/codemirror/mode/htmlmixed/index-461cc2868fa06065c0443310e03fb947d324bcc31c13cb5b8b5b3ed30a10ebe6.html} +0 -0
- data/installer/core/public/assets/admin/codemirror/mode/htmlmixed/index-461cc2868fa06065c0443310e03fb947d324bcc31c13cb5b8b5b3ed30a10ebe6.html.gz +0 -0
- data/{testing-with-2.1.18/app/assets/javascripts/admin/codemirror/mode/javascript/index.html → installer/core/public/assets/admin/codemirror/mode/javascript/index-bd3eb54016a0d4bba846aa86a8dd5f451459f02c0a09352094b3d974ddabd6c3.html} +0 -0
- data/installer/core/public/assets/admin/codemirror/mode/javascript/index-bd3eb54016a0d4bba846aa86a8dd5f451459f02c0a09352094b3d974ddabd6c3.html.gz +0 -0
- data/{testing-with-2.1.18/app/assets/javascripts/admin/codemirror/mode/javascript/json-ld.html → installer/core/public/assets/admin/codemirror/mode/javascript/json-ld-ac787941ea8a1b871daf68054ca196a99d05cd6873587d4b62586aff9fb92452.html} +0 -0
- data/installer/core/public/assets/admin/codemirror/mode/javascript/json-ld-ac787941ea8a1b871daf68054ca196a99d05cd6873587d4b62586aff9fb92452.html.gz +0 -0
- data/{testing-with-2.1.18/app/assets/javascripts/admin/codemirror/mode/javascript/typescript.html → installer/core/public/assets/admin/codemirror/mode/javascript/typescript-f930148de0b8380ee4b3ca765c56c7b21e40b935a97cd1de75aa1b60843aa8b5.html} +0 -0
- data/installer/core/public/assets/admin/codemirror/mode/javascript/typescript-f930148de0b8380ee4b3ca765c56c7b21e40b935a97cd1de75aa1b60843aa8b5.html.gz +0 -0
- data/{testing-with-2.1.18/app/assets/javascripts/admin/codemirror/mode/ruby/index.html → installer/core/public/assets/admin/codemirror/mode/ruby/index-00f454d5eff4cef18448d1b8a0052595272d1414c208fb346222ab81eaef1d5a.html} +0 -0
- data/installer/core/public/assets/admin/codemirror/mode/ruby/index-00f454d5eff4cef18448d1b8a0052595272d1414c208fb346222ab81eaef1d5a.html.gz +0 -0
- data/{testing-with-2.1.18/app/assets/javascripts/admin/codemirror/mode/vue/index.html → installer/core/public/assets/admin/codemirror/mode/vue/index-72d3f8d8f5146bcd0f56166eb47299eee5f32fd150d7e4afac48dc4778105bea.html} +0 -0
- data/installer/core/public/assets/admin/codemirror/mode/vue/index-72d3f8d8f5146bcd0f56166eb47299eee5f32fd150d7e4afac48dc4778105bea.html.gz +0 -0
- data/{testing-with-2.1.18/app/assets/javascripts/admin/codemirror/mode/xml/index.html → installer/core/public/assets/admin/codemirror/mode/xml/index-d4700b1f6a65957d38cd05e178d099b0bbe200309a5d54172d797ce99dd4a247.html} +0 -0
- data/installer/core/public/assets/admin/codemirror/mode/xml/index-d4700b1f6a65957d38cd05e178d099b0bbe200309a5d54172d797ce99dd4a247.html.gz +0 -0
- data/{testing-with-2.1.18/app/assets/javascripts/admin/codemirror/mode/yaml-frontmatter/index.html → installer/core/public/assets/admin/codemirror/mode/yaml-frontmatter/index-7350bfe40ce807d0846efe10b17607190bfc8b75229866679c553e12ebf54f79.html} +0 -0
- data/installer/core/public/assets/admin/codemirror/mode/yaml-frontmatter/index-7350bfe40ce807d0846efe10b17607190bfc8b75229866679c553e12ebf54f79.html.gz +0 -0
- data/{testing-with-2.1.18/app/assets/javascripts/admin/codemirror/mode/yaml/index.html → installer/core/public/assets/admin/codemirror/mode/yaml/index-f998ecd3cffb4f8f1b0d8fcff32462681f7ea38e59bd66599ccd789d3d8b638f.html} +0 -0
- data/installer/core/public/assets/admin/codemirror/mode/yaml/index-f998ecd3cffb4f8f1b0d8fcff32462681f7ea38e59bd66599ccd789d3d8b638f.html.gz +0 -0
- data/{testing-with-2.1.18/app/assets/images/admin/en.png → installer/core/public/assets/admin/en-04d44fc02de55acae6c442daaa08250b16d7698cb5f20a7b79ffff7429b46b77.png} +0 -0
- data/{testing-with-2.1.18/app/assets/images/admin/es.png → installer/core/public/assets/admin/es-50df0dad9e0d73050da6cb012b273ded096ab4c25daa332a8c1514c8feb2e38d.png} +0 -0
- data/{testing-with-2.1.18/app/assets/images/admin/favicon.png → installer/core/public/assets/admin/favicon-8502ac8dee08af63f06b51ba4bfe7d73ad822453cd728df71ea061669dfda46d.png} +0 -0
- data/{testing-with-2.1.18/app/assets/stylesheets/admin/fonts-and-icons/ZXuke1cDvLCKLDcimxB44_lu.woff2 → installer/core/public/assets/admin/fonts-and-icons/ZXuke1cDvLCKLDcimxB44_lu-930d66533ab5afb83f852c6e3ae10a1bacc46e97dfd92ddcb905b5556205d677.woff2} +0 -0
- data/{testing-with-2.1.18/app/assets/stylesheets/admin/fonts-and-icons/fonts/Simple-Line-Icons.woff2 → installer/core/public/assets/admin/fonts-and-icons/fonts/Simple-Line-Icons-104673f4859604362a18fc6294197d8fffb8cb24ad3211e92eb04f655e18cf4a.woff2} +0 -0
- data/{testing-with-2.1.18/app/assets/stylesheets/admin/fonts-and-icons/fonts/Simple-Line-Icons.woff → installer/core/public/assets/admin/fonts-and-icons/fonts/Simple-Line-Icons-14b825d7785bf7f90bab8b02c6df6f22863c639cab02038a8ba3e682ab7d2752.woff} +0 -0
- data/{testing-with-2.1.18/app/assets/stylesheets/admin/fonts-and-icons/fonts/Simple-Line-Icons.eot → installer/core/public/assets/admin/fonts-and-icons/fonts/Simple-Line-Icons-1c823013a692818b26ad756540fcb73f53bfb3409af0d08129bb340c9c5c8a1f.eot} +0 -0
- data/installer/core/public/assets/admin/fonts-and-icons/fonts/Simple-Line-Icons-1c823013a692818b26ad756540fcb73f53bfb3409af0d08129bb340c9c5c8a1f.eot.gz +0 -0
- data/{testing-with-2.1.18/app/assets/stylesheets/admin/fonts-and-icons/fonts/Simple-Line-Icons.ttf → installer/core/public/assets/admin/fonts-and-icons/fonts/Simple-Line-Icons-3f501ddb05c70829bbb51cfe9ca9fff57f39e060457c257b3ccf25df767f0870.ttf} +0 -0
- data/installer/core/public/assets/admin/fonts-and-icons/fonts/Simple-Line-Icons-3f501ddb05c70829bbb51cfe9ca9fff57f39e060457c257b3ccf25df767f0870.ttf.gz +0 -0
- data/{testing-with-2.1.18/app/assets/stylesheets/admin/fonts-and-icons/fonts/boxicons.svg → installer/core/public/assets/admin/fonts-and-icons/fonts/boxicons-04e91e102f037f44d5fab187d1c120bdfe2029357c7e19957ec8ab284174668a.svg} +0 -0
- data/installer/core/public/assets/admin/fonts-and-icons/fonts/boxicons-04e91e102f037f44d5fab187d1c120bdfe2029357c7e19957ec8ab284174668a.svg.gz +0 -0
- data/{testing-with-2.1.18/app/assets/stylesheets/admin/fonts-and-icons/fonts/boxicons.woff → installer/core/public/assets/admin/fonts-and-icons/fonts/boxicons-34b356ebfc024ecb1f42ecc4020ce1f9e0e40dfa569de7e24db7ff746774f904.woff} +0 -0
- data/{testing-with-2.1.18/app/assets/stylesheets/admin/fonts-and-icons/fonts/boxicons.woff2 → installer/core/public/assets/admin/fonts-and-icons/fonts/boxicons-4db228a5fbed38f7046bcecafb5839a49b39756b48c4bec7a4c13d44ccb41b91.woff2} +0 -0
- data/{testing-with-2.1.18/app/assets/stylesheets/admin/fonts-and-icons/fonts/boxicons.eot → installer/core/public/assets/admin/fonts-and-icons/fonts/boxicons-8a68af92eea95d1698739c0d390c8c73228b622b91f6e3170f19e765a8e8979b.eot} +0 -0
- data/installer/core/public/assets/admin/fonts-and-icons/fonts/boxicons-8a68af92eea95d1698739c0d390c8c73228b622b91f6e3170f19e765a8e8979b.eot.gz +0 -0
- data/{testing-with-2.1.18/app/assets/stylesheets/admin/fonts-and-icons/fonts/boxicons.ttf → installer/core/public/assets/admin/fonts-and-icons/fonts/boxicons-db138c828adc2a31e6cfbb64188dd079eeef577131fd4bd138c4d566dd00b6bb.ttf} +0 -0
- data/installer/core/public/assets/admin/fonts-and-icons/fonts/boxicons-db138c828adc2a31e6cfbb64188dd079eeef577131fd4bd138c4d566dd00b6bb.ttf.gz +0 -0
- data/{testing-with-2.1.18/app/assets/images/admin/image_default.png → installer/core/public/assets/admin/image_default-be1d557511976c97715fc6215fc6c861f00a86c33654ef2ded273027182168b9.png} +0 -0
- data/{testing-with-2.1.18/app/assets/images/admin/logo.png → installer/core/public/assets/admin/logo-6fc9f869f19a13f29ea006362e0a3be5fdf2c37c144a0ccac184c8e4b1e9bb28.png} +0 -0
- data/{testing-with-2.1.18/app/assets/images/admin/logo2.png → installer/core/public/assets/admin/logo2-0b42a0f73a5f567a52100fea42cd88764a90ace1f2b0b76df3fdaca41a960421.png} +0 -0
- data/{testing-with-2.1.18/app/assets/images/admin/profile-menu.jpg → installer/core/public/assets/admin/profile-menu-6222ad8e7c653f9216519a7ae99e072e38d6b7435a397648d9beb10678e11f40.jpg} +0 -0
- data/{testing-with-2.1.18/app/assets/images/admin/search.png → installer/core/public/assets/admin/search-1ad39e363da0eb5ec86508ea61bd7c1198aad27e35c9f083466bda731c30f62d.png} +0 -0
- data/{testing-with-2.1.18/app/assets/images/admin/slice.png → installer/core/public/assets/admin/slice-fdba819c5f7aac1c10620c1c7d8e1e9bae109765ff1e0cabce2f57400b6169bf.png} +0 -0
- data/{testing-with-2.1.18/app/assets/images/admin/slice-icon.png → installer/core/public/assets/admin/slice-icon-54a0271ab483f5ed561a4f9e608bbc07ff76ad142d7462e9853f7c8cc1e39ad3.png} +0 -0
- data/{testing-with-2.1.18/app/assets/images/admin/slice-icon-orange.png → installer/core/public/assets/admin/slice-icon-orange-7cdaf53dd3ec3822fe4d7e266766d2527d7f0e95fad681b3b38e000c80eca26f.png} +0 -0
- data/{testing-with-2.1.18/app/assets/images/admin/slice_white.png → installer/core/public/assets/admin/slice_white-3396dde6fa31d2140341e38bfe39044f9f087294373fb75c53b1284387e0ac88.png} +0 -0
- data/installer/core/public/assets/adminlte/dist/img/boxed-bg-5487391fa5db6155709522886beebc00fd7433ffb7ae5f63e585497cd5174ae5.jpg +0 -0
- data/{testing-with-2.1.18/app/assets/images/app/Cohete_nubes_new.png → installer/core/public/assets/app/Cohete_nubes_new-6222ad8e7c653f9216519a7ae99e072e38d6b7435a397648d9beb10678e11f40.png} +0 -0
- data/{testing-with-2.1.18/app/assets/images/app/Home_Keppler.png → installer/core/public/assets/app/Home_Keppler-2f69e6ff6073f785b8253e9fc23dfd06b210881bb611bdb8915c2d07993b90f6.png} +0 -0
- data/{testing-with-2.1.18/app/assets/images/app/Home_Keppler2.png → installer/core/public/assets/app/Home_Keppler2-09a96f8ea6f6ed972ce18747f308d02859c6bb076ab62812e2857389df8f3fab.png} +0 -0
- data/installer/core/public/assets/app/application-168cc167d8c7a14d11da39286d8f0fe13d50a6675e7da90a99ecad8abc962530.css +17575 -0
- data/installer/core/public/assets/app/application-168cc167d8c7a14d11da39286d8f0fe13d50a6675e7da90a99ecad8abc962530.css.gz +0 -0
- data/installer/core/public/assets/app/application-7feb58fe1bdf49525dc81b13cefa58ede1b6878f950febf6cf36cd51ff988445.js +19866 -0
- data/installer/core/public/assets/app/application-7feb58fe1bdf49525dc81b13cefa58ede1b6878f950febf6cf36cd51ff988445.js.gz +0 -0
- data/{testing-with-2.1.18/app/assets/images/app/fondo.svg → installer/core/public/assets/app/fondo-0cace9dce98e106c6911a3eda205eba6a535965900043d7b803a9d178ea28c08.svg} +0 -0
- data/installer/core/public/assets/app/fondo-0cace9dce98e106c6911a3eda205eba6a535965900043d7b803a9d178ea28c08.svg.gz +0 -0
- data/{testing-with-2.1.18/app/assets/images/app/keppler-front.png → installer/core/public/assets/app/keppler-front-a4b24e51b3249bc6cc06f3fd4b17cab6af17018629ec1110b14f6f769749a78e.png} +0 -0
- data/{testing-with-2.1.18/app/assets/images/app/slice.png → installer/core/public/assets/app/slice-fdba819c5f7aac1c10620c1c7d8e1e9bae109765ff1e0cabce2f57400b6169bf.png} +0 -0
- data/{testing-with-2.1.18/app/assets/images/app/slice-front.png → installer/core/public/assets/app/slice-front-366ab15723861e1b74139461053806b21c5d6e9d5f52baa24fd399fdbea23d70.png} +0 -0
- data/installer/core/public/assets/bootstrap/glyphicons-halflings-regular-13634da87d9e23f8c3ed9108ce1724d183a39ad072e73e1b3d8cbf646d2d0407.eot +0 -0
- data/installer/core/public/assets/bootstrap/glyphicons-halflings-regular-13634da87d9e23f8c3ed9108ce1724d183a39ad072e73e1b3d8cbf646d2d0407.eot.gz +0 -0
- data/installer/core/public/assets/bootstrap/glyphicons-halflings-regular-42f60659d265c1a3c30f9fa42abcbb56bd4a53af4d83d316d6dd7a36903c43e5.svg +288 -0
- data/installer/core/public/assets/bootstrap/glyphicons-halflings-regular-42f60659d265c1a3c30f9fa42abcbb56bd4a53af4d83d316d6dd7a36903c43e5.svg.gz +0 -0
- data/installer/core/public/assets/bootstrap/glyphicons-halflings-regular-a26394f7ede100ca118eff2eda08596275a9839b959c226e15439557a5a80742.woff +0 -0
- data/installer/core/public/assets/bootstrap/glyphicons-halflings-regular-e395044093757d82afcb138957d06a1ea9361bdcf0b442d06a18a8051af57456.ttf +0 -0
- data/installer/core/public/assets/bootstrap/glyphicons-halflings-regular-e395044093757d82afcb138957d06a1ea9361bdcf0b442d06a18a8051af57456.ttf.gz +0 -0
- data/installer/core/public/assets/bootstrap/glyphicons-halflings-regular-fe185d11a49676890d47bb783312a0cda5a44c4039214094e7957b4c040ef11c.woff2 +0 -0
- data/installer/core/public/assets/ckeditor/adapters/jquery-1bc59ef62f52859422f96a481de8476c38bbecff7aa6301fc6732261f659bcd2.js +11 -0
- data/installer/core/public/assets/ckeditor/adapters/jquery-1bc59ef62f52859422f96a481de8476c38bbecff7aa6301fc6732261f659bcd2.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/adapters/jquery.js +11 -0
- data/installer/core/public/assets/ckeditor/adapters/jquery.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/application-42636d4067159a70cb5dd3c8f994ed4ed06ea1914f40348f715fd344ac1f5c30.css +225 -0
- data/installer/core/public/assets/ckeditor/application-42636d4067159a70cb5dd3c8f994ed4ed06ea1914f40348f715fd344ac1f5c30.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/application-56a1c7231485c7ea14ed14a767c7fc8d7cfc133308e31300f9751430a78dec38.js +2221 -0
- data/installer/core/public/assets/ckeditor/application-56a1c7231485c7ea14ed14a767c7fc8d7cfc133308e31300f9751430a78dec38.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/application.css +225 -0
- data/installer/core/public/assets/ckeditor/application.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/application.js +2221 -0
- data/installer/core/public/assets/ckeditor/application.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/ckeditor-5627b7c5975c03aa8c738623a75f40df11e006c51dad749183c4ced4ea4906a1.js +1185 -0
- data/installer/core/public/assets/ckeditor/ckeditor-5627b7c5975c03aa8c738623a75f40df11e006c51dad749183c4ced4ea4906a1.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/ckeditor.js +1185 -0
- data/installer/core/public/assets/ckeditor/ckeditor.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/config-6728244dac0c5efcd52dd3415680536b746da4ebc863f0d7322891e465c36303.js +131 -0
- data/installer/core/public/assets/ckeditor/config-6728244dac0c5efcd52dd3415680536b746da4ebc863f0d7322891e465c36303.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/config.js +131 -0
- data/installer/core/public/assets/ckeditor/config.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/contents-2f984ad78c3fcc0586386f0850c78bc6a6e6e9c6aac695464eb1a3f04eaebe6f.css +209 -0
- data/installer/core/public/assets/ckeditor/contents-2f984ad78c3fcc0586386f0850c78bc6a6e6e9c6aac695464eb1a3f04eaebe6f.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/contents.css +209 -0
- data/installer/core/public/assets/ckeditor/contents.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/filebrowser/gal_add-e97dc0969bf9a7b88d048bcc2e4eb28a2f9ae75763e7076b4c68ee2e7de3ea05.png +0 -0
- data/installer/core/public/assets/ckeditor/filebrowser/gal_add.png +0 -0
- data/installer/core/public/assets/ckeditor/filebrowser/gal_del-5103ec7de60473f8c5bafa0208257dca3a993edb783a766666edbc606fd6c531.png +0 -0
- data/installer/core/public/assets/ckeditor/filebrowser/gal_del.png +0 -0
- data/installer/core/public/assets/ckeditor/filebrowser/gal_more-93d8887361f4dd7f757c20a186a2dae6e5cc6698da238814eacbff7b19a43f51.gif +0 -0
- data/installer/core/public/assets/ckeditor/filebrowser/gal_more.gif +0 -0
- data/installer/core/public/assets/ckeditor/filebrowser/javascripts/application-6eb1266221a129c66ba8976527279e7539746e3c5f6b1af3faf7b5a9d013d4e4.js +230 -0
- data/installer/core/public/assets/ckeditor/filebrowser/javascripts/application-6eb1266221a129c66ba8976527279e7539746e3c5f6b1af3faf7b5a9d013d4e4.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/filebrowser/javascripts/application.js +230 -0
- data/installer/core/public/assets/ckeditor/filebrowser/javascripts/application.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/filebrowser/preloader-3799a3e41d7787a31dac5796ebccc242951da2f2b57eb088326ab3bffe15056a.gif +0 -0
- data/installer/core/public/assets/ckeditor/filebrowser/preloader.gif +0 -0
- data/installer/core/public/assets/ckeditor/init-08a73ffab1aded8d16921075e0580e3cc58665718ea81934dda19cbffad54c85.js +1193 -0
- data/installer/core/public/assets/ckeditor/init-08a73ffab1aded8d16921075e0580e3cc58665718ea81934dda19cbffad54c85.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/init.js +1193 -0
- data/installer/core/public/assets/ckeditor/init.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/a11yhelp/dialogs/a11yhelp-d2d45b8c2f3c6c181ac56ba1634ace1359a5c95ee916124a8a25b085b7959265.js +11 -0
- data/installer/core/public/assets/ckeditor/plugins/a11yhelp/dialogs/a11yhelp-d2d45b8c2f3c6c181ac56ba1634ace1359a5c95ee916124a8a25b085b7959265.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +11 -0
- data/installer/core/public/assets/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/about/dialogs/about-2bdd60f2936ccd80435dc740622f8cc5bee4363ceb8f6c103e46d596d21ef6d0.js +9 -0
- data/installer/core/public/assets/ckeditor/plugins/about/dialogs/about-2bdd60f2936ccd80435dc740622f8cc5bee4363ceb8f6c103e46d596d21ef6d0.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/about/dialogs/about.js +9 -0
- data/installer/core/public/assets/ckeditor/plugins/about/dialogs/about.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor-227a0aade8e648c3ab3977ce9e66b9491baa9aa7376082c652fdb76230adffdd.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/about/dialogs/logo_ckeditor-954605bb634dae9f4d15ca33057d86eb62e34ae3bc57dfd5877b6d3356067413.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/colordialog/dialogs/colordialog-1b0cfd23c7a4ee7ea1d35cda8d1ca84b06fffcde7b0d1da676d02af65c1a4e06.css +21 -0
- data/installer/core/public/assets/ckeditor/plugins/colordialog/dialogs/colordialog-1b0cfd23c7a4ee7ea1d35cda8d1ca84b06fffcde7b0d1da676d02af65c1a4e06.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/colordialog/dialogs/colordialog-e44136d492cbbfbb392ac90a85baa6e0cc18c328a285d05212e8dadccb0babaf.js +15 -0
- data/installer/core/public/assets/ckeditor/plugins/colordialog/dialogs/colordialog-e44136d492cbbfbb392ac90a85baa6e0cc18c328a285d05212e8dadccb0babaf.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/colordialog/dialogs/colordialog.css +21 -0
- data/installer/core/public/assets/ckeditor/plugins/colordialog/dialogs/colordialog.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/colordialog/dialogs/colordialog.js +15 -0
- data/installer/core/public/assets/ckeditor/plugins/colordialog/dialogs/colordialog.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/copyformatting/styles/copyformatting-ac599201edee5f6b9414f171c626d6aa70650a5795b31d95d12d31265f6304be.css +46 -0
- data/installer/core/public/assets/ckeditor/plugins/copyformatting/styles/copyformatting-ac599201edee5f6b9414f171c626d6aa70650a5795b31d95d12d31265f6304be.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/copyformatting/styles/copyformatting.css +46 -0
- data/installer/core/public/assets/ckeditor/plugins/copyformatting/styles/copyformatting.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/dialog/dialogDefinition-9ed0fdac536bfa3fa926464f908080b7fd109c847998a496fa5d930b2d05104a.js +6 -0
- data/installer/core/public/assets/ckeditor/plugins/dialog/dialogDefinition-9ed0fdac536bfa3fa926464f908080b7fd109c847998a496fa5d930b2d05104a.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/dialog/dialogDefinition.js +6 -0
- data/installer/core/public/assets/ckeditor/plugins/dialog/dialogDefinition.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/div/dialogs/div-a39822a3b267ec2ea02d7b23b134682ec663c6e3051fb0a13333577b81e3db6f.js +9 -0
- data/installer/core/public/assets/ckeditor/plugins/div/dialogs/div-a39822a3b267ec2ea02d7b23b134682ec663c6e3051fb0a13333577b81e3db6f.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/div/dialogs/div.js +9 -0
- data/installer/core/public/assets/ckeditor/plugins/div/dialogs/div.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/find/dialogs/find-b0230f4d5a23db0546f7c786f5e6870c1d9d876765568eb94ebacbdb56a4c487.js +26 -0
- data/installer/core/public/assets/ckeditor/plugins/find/dialogs/find-b0230f4d5a23db0546f7c786f5e6870c1d9d876765568eb94ebacbdb56a4c487.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/find/dialogs/find.js +26 -0
- data/installer/core/public/assets/ckeditor/plugins/find/dialogs/find.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/flash/dialogs/flash-46239716a5ebaecdf30e3e5090799649eb83b04da46b43e65cb360532babe11a.js +25 -0
- data/installer/core/public/assets/ckeditor/plugins/flash/dialogs/flash-46239716a5ebaecdf30e3e5090799649eb83b04da46b43e65cb360532babe11a.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/flash/dialogs/flash.js +25 -0
- data/installer/core/public/assets/ckeditor/plugins/flash/dialogs/flash.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/flash/images/placeholder-3693431ff1695c9691d5b29bed1c2e30be843edb77bc45ef25effe3eb776a7d9.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/flash/images/placeholder.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/button-9581cee2c5ee9dba2e2616ac53d9dce7945360ad19133ff778be15df144cace0.js +9 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/button-9581cee2c5ee9dba2e2616ac53d9dce7945360ad19133ff778be15df144cace0.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/button.js +9 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/button.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/checkbox-0147ed57721bca0ee1aaf044bd3c1f499ccb40e8ec3fd07f0588e75485df3203.js +10 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/checkbox-0147ed57721bca0ee1aaf044bd3c1f499ccb40e8ec3fd07f0588e75485df3203.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/checkbox.js +10 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/checkbox.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/form-0e934aa82a0bbc58ae59a095fe6567c81117d677d83d3b6eaa89dbfc2ac9f6aa.js +9 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/form-0e934aa82a0bbc58ae59a095fe6567c81117d677d83d3b6eaa89dbfc2ac9f6aa.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/form.js +9 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/form.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/hiddenfield-9ff5458874521e288a588e929811578a4158e0fe6b01a1125cc57451ea271c80.js +8 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/hiddenfield-9ff5458874521e288a588e929811578a4158e0fe6b01a1125cc57451ea271c80.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/hiddenfield.js +8 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/hiddenfield.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/radio-3fcb2e4bb22edd35f3d96b9de1be6e765ede73a84ab5a09e678c51b714fac982.js +10 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/radio-3fcb2e4bb22edd35f3d96b9de1be6e765ede73a84ab5a09e678c51b714fac982.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/radio.js +10 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/radio.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/select-51f77cb58f50119b7b267838d07edd5d4a65a65a6b68c4fa42eca9656879b38b.js +21 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/select-51f77cb58f50119b7b267838d07edd5d4a65a65a6b68c4fa42eca9656879b38b.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/select.js +21 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/select.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/textarea-03c78985cc9239c079ed579a0dfe380d0ad4d33d71561a9cb4a19bc2fe807455.js +9 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/textarea-03c78985cc9239c079ed579a0dfe380d0ad4d33d71561a9cb4a19bc2fe807455.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/textarea.js +9 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/textarea.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/textfield-0a8d256c89b72b596af1bbdfe7deafa9ea59909f157e6e9fc01808191423900a.js +12 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/textfield-0a8d256c89b72b596af1bbdfe7deafa9ea59909f157e6e9fc01808191423900a.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/textfield.js +12 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/dialogs/textfield.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/images/hiddenfield-2314846c5b4071dec60aaa00f5a1bb10496adcfc1f084eb84a76ff2280b00aee.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/forms/images/hiddenfield.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/icons-af6217b63920631c6dd9914678b77fdd11a6e04a2dd72fe154015f52d646476e.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/icons.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/icons_hidpi-be1786d2965715aa5c3d777a477d1f295a634dcf93128b57b46718c5518e82bd.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/icons_hidpi.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/iframe/dialogs/iframe-6769eb441c58bb1ce49b56ca8051ae0bc0472f6b51292d87a872ded0ee2d7aff.js +11 -0
- data/installer/core/public/assets/ckeditor/plugins/iframe/dialogs/iframe-6769eb441c58bb1ce49b56ca8051ae0bc0472f6b51292d87a872ded0ee2d7aff.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/iframe/dialogs/iframe.js +11 -0
- data/installer/core/public/assets/ckeditor/plugins/iframe/dialogs/iframe.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/iframe/images/placeholder-992092e4bcca197097e9fe917441f710b8ef07b9450705ecd514eb8789384d76.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/iframe/images/placeholder.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/image/dialogs/image-701dfe8cd31d930125d5992f3c3e48525d2cf02f8260c898aef60aa03dbc309b.js +45 -0
- data/installer/core/public/assets/ckeditor/plugins/image/dialogs/image-701dfe8cd31d930125d5992f3c3e48525d2cf02f8260c898aef60aa03dbc309b.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/image/dialogs/image.js +45 -0
- data/installer/core/public/assets/ckeditor/plugins/image/dialogs/image.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/image/images/noimage-bd8c0e93d7bc89b0c36085672424fe2f698dac0e680a1b278f00a152579f2a93.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/image/images/noimage.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/link/dialogs/anchor-8a72aeec75103ff7c347c2667da52dc7d1a7885be7c2703dae714d643901bc93.js +9 -0
- data/installer/core/public/assets/ckeditor/plugins/link/dialogs/anchor-8a72aeec75103ff7c347c2667da52dc7d1a7885be7c2703dae714d643901bc93.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/link/dialogs/anchor.js +9 -0
- data/installer/core/public/assets/ckeditor/plugins/link/dialogs/anchor.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/link/dialogs/link-4a63a2521e2df045d7ce9b3cd6c3950124503dfe550153275b53eb5cab2b2857.js +29 -0
- data/installer/core/public/assets/ckeditor/plugins/link/dialogs/link-4a63a2521e2df045d7ce9b3cd6c3950124503dfe550153275b53eb5cab2b2857.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/link/dialogs/link.js +29 -0
- data/installer/core/public/assets/ckeditor/plugins/link/dialogs/link.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/link/images/anchor-cddc8927dfdd672d655b96b551ba1ad1599c5f13d13deb2b09a28b54c853a25c.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/link/images/anchor.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/link/images/hidpi/anchor-b5b952c9dbf47ff88b4904b99cf673cf6ec94cd65f4c66b55eaea5dbb911f4db.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/link/images/hidpi/anchor.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/liststyle/dialogs/liststyle-3ea7426e423ac3a17f484b67e9d06c488676c3184e859ff3358b8b6a02cd2f10.js +11 -0
- data/installer/core/public/assets/ckeditor/plugins/liststyle/dialogs/liststyle-3ea7426e423ac3a17f484b67e9d06c488676c3184e859ff3358b8b6a02cd2f10.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/liststyle/dialogs/liststyle.js +11 -0
- data/installer/core/public/assets/ckeditor/plugins/liststyle/dialogs/liststyle.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/magicline/images/hidpi/icon-92dfb414e7a31e632288097db347e272ecfd001f9825423a16c623dcaeb968b8.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/magicline/images/hidpi/icon-rtl-4046986f6904328c9d470b44c95f1f50ef82d9e470915ea471e1f4dcc0f06618.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/magicline/images/hidpi/icon-rtl.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/magicline/images/hidpi/icon.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/magicline/images/icon-db2f77571f3e9cb69096a5da21af65b0eacf5eaef08492bb831999504a3e115a.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/magicline/images/icon-rtl-9510f6245b266712f0ec4159e5fc5a97e1ad5c667e65b7fb97c5d1f20cfd7ba5.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/magicline/images/icon-rtl.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/magicline/images/icon.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/pagebreak/images/pagebreak-5db8cbdaf997d012baa522bb75816a70c9ca15017fc170d63392b74958198846.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/pagebreak/images/pagebreak.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/pastefromword/filter/default-553673a5f77556fe9dcea80c6c9773b770f23f93f5a2bce2b08248f2229e7384.js +53 -0
- data/installer/core/public/assets/ckeditor/plugins/pastefromword/filter/default-553673a5f77556fe9dcea80c6c9773b770f23f93f5a2bce2b08248f2229e7384.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/pastefromword/filter/default.js +53 -0
- data/installer/core/public/assets/ckeditor/plugins/pastefromword/filter/default.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/preview/preview-9dd8bdcb9cdf799986eca2803b6a463e05eee76007a8d81d97116876ea0f6685.html +13 -0
- data/installer/core/public/assets/ckeditor/plugins/preview/preview-9dd8bdcb9cdf799986eca2803b6a463e05eee76007a8d81d97116876ea0f6685.html.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/preview/preview.html +13 -0
- data/installer/core/public/assets/ckeditor/plugins/preview/preview.html.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/scayt/dialogs/dialog-75e0679953e586ffac55af12700c15b9a4b7d49765103c16fd8943c24162bf0c.css +23 -0
- data/installer/core/public/assets/ckeditor/plugins/scayt/dialogs/dialog-75e0679953e586ffac55af12700c15b9a4b7d49765103c16fd8943c24162bf0c.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/scayt/dialogs/dialog.css +23 -0
- data/installer/core/public/assets/ckeditor/plugins/scayt/dialogs/dialog.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/scayt/dialogs/options-9a2090b658e9048617ef46bda16cd14009c4f51cc427babbabddb75aadc4c50a.js +32 -0
- data/installer/core/public/assets/ckeditor/plugins/scayt/dialogs/options-9a2090b658e9048617ef46bda16cd14009c4f51cc427babbabddb75aadc4c50a.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/scayt/dialogs/options.js +32 -0
- data/installer/core/public/assets/ckeditor/plugins/scayt/dialogs/options.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/scayt/dialogs/toolbar-e66191abbfc4b5e5e6291bf4d4cacb4e074bb8d94457ff5384b3f18e72195a2c.css +71 -0
- data/installer/core/public/assets/ckeditor/plugins/scayt/dialogs/toolbar-e66191abbfc4b5e5e6291bf4d4cacb4e074bb8d94457ff5384b3f18e72195a2c.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/scayt/dialogs/toolbar.css +71 -0
- data/installer/core/public/assets/ckeditor/plugins/scayt/dialogs/toolbar.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/scayt/skins/moono-lisa/scayt-94465f8a7abf4da8295e0fa93a60eba1287830dfc41e3698fb3d20091b95d58c.css +25 -0
- data/installer/core/public/assets/ckeditor/plugins/scayt/skins/moono-lisa/scayt-94465f8a7abf4da8295e0fa93a60eba1287830dfc41e3698fb3d20091b95d58c.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/scayt/skins/moono-lisa/scayt.css +25 -0
- data/installer/core/public/assets/ckeditor/plugins/scayt/skins/moono-lisa/scayt.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/showblocks/images/block_address-d896b164eb70e2a22f0521131188b185bb7e404d6e0a0d0f55d11d585d28caa3.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/showblocks/images/block_address.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/showblocks/images/block_blockquote-30d5929384e0a68850cd667f70779b8464b6f2b1bececf01526eda3e2b191073.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/showblocks/images/block_blockquote.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/showblocks/images/block_div-34ea88912f128e162de10370b7eadd91e7a0c07f8728693494c1479e95525f56.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/showblocks/images/block_div.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/showblocks/images/block_h1-40d4a2cd8e2737607867d95948972475ff478e0efaf510cbf17a52b511ef0fc3.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/showblocks/images/block_h1.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/showblocks/images/block_h2-6e3acd9cd6b16dcfce92ade07cb8a8d1929103f3a9a7dcd83c49cc52ec72cdea.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/showblocks/images/block_h2.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/showblocks/images/block_h3-3d26b01e2687763a9a00205d749fc9991de1a75f3f346a3dec473ce2141b693a.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/showblocks/images/block_h3.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/showblocks/images/block_h4-5c6807bb4bb7024c89b8364b5dd0f20ef1961e924db31fa338b39998b677a3f0.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/showblocks/images/block_h4.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/showblocks/images/block_h5-148c02c6a115c4d568604f72126dfe2e27ee8ca3a6a4a7d7ae72b2523e27db77.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/showblocks/images/block_h5.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/showblocks/images/block_h6-85384f22c9128004409679694aeb38ba858ca77fa0f85ef52a61b8f289191df5.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/showblocks/images/block_h6.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/showblocks/images/block_p-68e9e5a80bed810ad2bd0fc9273756fcdb7e7b940fa52cc19a38911ca50ee4f3.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/showblocks/images/block_p.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/showblocks/images/block_pre-4168bf89d34fac97391bffbd82339ee79125edf2c6d50c153f3fc30efbf536c8.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/showblocks/images/block_pre.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/dialogs/smiley-c7ccf0ced2d6ffd277f834016347e2ab35d9e4aa5c18716055895e56634f0da8.js +12 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/dialogs/smiley-c7ccf0ced2d6ffd277f834016347e2ab35d9e4aa5c18716055895e56634f0da8.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/dialogs/smiley.js +12 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/dialogs/smiley.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/angel_smile-7b227fc3a29cb0a99e105bbf5065c6086d744bfd8a79b1511bf43184aaf3a0b9.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/angel_smile-8e2aaced8635d70dff8eb5a269cb2ff071115b965cfea30f31275f3aea88529a.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/angel_smile.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/angel_smile.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/angry_smile-aeb431608cf1496216f2c94995d7d568481e32e3cc075e45f12a66a303d2e29d.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/angry_smile-b4fc95418415fe8999f252649af9541c8f77234f57abc2cf8ee99abd56cc19e3.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/angry_smile.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/angry_smile.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/broken_heart-4e8286aacd60df65e9995d8f2afaf4666fc0b0c3be935c441700b5e572e75c5a.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/broken_heart-7a2005c6a4ee561393b6bb9e37dd0a0080b837f2dc938b10ec7ae305a9681825.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/broken_heart.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/broken_heart.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/confused_smile-09953a3738bd6df32e93261f32aa9b8300a05fdd24445f501f55ac468659ef66.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/confused_smile-2de21fd594b102ab9ed8cd4e5b005c45c4e2ff34bf30e5dacea437a959162d6e.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/confused_smile.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/confused_smile.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/cry_smile-7bd254c99e3ff1d1f3e1a832b1564f3e47f9cbdf54f3fca73a91525912ddb38e.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/cry_smile-a2d235ad7d007a6f80c920cbd5e85006a2a42c39e178691e29babe96a03e3d63.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/cry_smile.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/cry_smile.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/devil_smile-2bc850da71b5f9b78a3ed26f03f08869a825e2b40d3e50e2442307361a39dc9f.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/devil_smile-d433e5ef97e9fe9c73b2e36f1a9be76171fa1f4d2464789a1fe440387495dd6c.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/devil_smile.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/devil_smile.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/embaressed_smile-d185a4f35865a517a60dce3cdf73bf92a800d1f7a3a2fabdbded4625b465678d.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/embaressed_smile.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/embarrassed_smile-ce9a77bf015b4c90b27312f4214684460fde4d2d805d44ddc1871082334d3432.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/embarrassed_smile-d185a4f35865a517a60dce3cdf73bf92a800d1f7a3a2fabdbded4625b465678d.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/embarrassed_smile.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/embarrassed_smile.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/envelope-0f1546e9abb9b5bc1cf37b2da74606800cb12b64f001553e7fb5ade49df4d29c.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/envelope-489cf811c9835fef32e06696e3893093f9cda5520b5eac65855bb00fa13e804b.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/envelope.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/envelope.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/heart-4cf4c3ab6c1b894d721b59b2acb0686c832bab5bb03192471ac6548a4bddf92b.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/heart-fd3b59c7dd52b24ee0614169ff7a06ce1b2a6d49fa7098aecbb9f7c4197107e7.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/heart.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/heart.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/kiss-21c801e1e6371e57bdba6ecb16609a627c75a4ec294f9580a03ff498c3099c66.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/kiss-f142944550a855cb698db1d35723e56ce063c8a6a8088a5dfbe99c62b9a00856.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/kiss.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/kiss.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/lightbulb-98347f12145eb2987104a5e04bb78ce8f2a154a1347e422f66327d0def3fc75d.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/lightbulb-ac296632601de086f7aff2c97cbc123dd6a589a2031d1524a28d6222fb005668.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/lightbulb.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/lightbulb.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/omg_smile-628c7bb0d4386f901c2690e5a9ad90ee3e9252ef49a7a708f672b9cbb81aa43b.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/omg_smile-a4ebdb8d59ff587b38a762fa4c97ab7a5fd585d7b0722bb503884f8961e45917.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/omg_smile.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/omg_smile.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/regular_smile-7eb86259f47ef5faf89ccbb9648ba0e93d4e9c48588509048f97156634aac3fb.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/regular_smile-8d3049e853d5fab5e1de160f471649edb6b0d9ffbf791d390d1c2152838ad2c3.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/regular_smile.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/regular_smile.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/sad_smile-34b38077abd9f18ecaad2fa65b3158d61465462875592c4ba62b9a12bf154caf.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/sad_smile-aa4692a6fdec3f45f0eb55243c3371e01bab3fc04d61715b6a9171e70b72e257.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/sad_smile.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/sad_smile.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/shades_smile-8af43d1ee5729b8f6e14f831a63fa64430ad54be488c7a57e0da0f45789bc64d.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/shades_smile-9fd924ea50cb2915ce2863ac5576409b37d9ba9cc7b33832ad3e3b963b2df02c.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/shades_smile.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/shades_smile.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/teeth_smile-ab4d093812a347b70126ac79e0cfc16cae45c1d32fd4437da99b2ea22311c0d6.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/teeth_smile-b1f571f9a46641a3cfb78e3319faa37dcb685bc69ed45dfbea3e1e1fd3b71b1f.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/teeth_smile.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/teeth_smile.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/thumbs_down-571de749810a2b8c5ee078a30be1c872eefb933c5e2a8c33ded5b304787e7ebe.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/thumbs_down-ec8d8c4a49a38597888bee7971c49b25355d1b8ae59a1c6d224608ee7112055d.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/thumbs_down.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/thumbs_down.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/thumbs_up-26ac57c9f26ec725511c7c97a9e0e005aa46710311033eb3f5f23ba355f80cc7.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/thumbs_up-b6359e23c088a020df03ab8e0cd7a5046a3954736426c3cf8370210afc1496cb.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/thumbs_up.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/thumbs_up.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/tongue_smile-9c9ad82d7fdf34d3aef1c92ec4001146348bd4405c9b9252e21047c12a30b5d3.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/tongue_smile-e638c648ca78900b2c8f82156604dd8b46ed0cdaef4095e09277583e6f730e3e.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/tongue_smile.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/tongue_smile.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/tounge_smile-e638c648ca78900b2c8f82156604dd8b46ed0cdaef4095e09277583e6f730e3e.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/tounge_smile.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/whatchutalkingabout_smile-305e959c2c304a31a052a60ac972df52fdb7819945a10a3a1a1f1a7ee5fecf57.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/whatchutalkingabout_smile-e2a8446ea58800515e9e27a49e56518a8b05597df32b2a10d998f6380f293f2b.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/wink_smile-3ec65841e54db291aa0335c7c2083451f7cb92062744ed8831e08e9660d45ec3.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/wink_smile-95de89ce230bc6cbdb5d7881bf9f646e1a0935ca59e5a1ba43526637e1af3d6a.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/wink_smile.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/smiley/images/wink_smile.png +0 -0
- data/installer/core/public/assets/ckeditor/plugins/specialchar/dialogs/specialchar-5b811b917affecbd45c75c2563627f3204f4958e99fdfeef387ce3c98b61adc0.js +15 -0
- data/installer/core/public/assets/ckeditor/plugins/specialchar/dialogs/specialchar-5b811b917affecbd45c75c2563627f3204f4958e99fdfeef387ce3c98b61adc0.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/specialchar/dialogs/specialchar.js +15 -0
- data/installer/core/public/assets/ckeditor/plugins/specialchar/dialogs/specialchar.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/table/dialogs/table-f41e0d83975bd104aff05dbb326fc62a31e1cef27d7abc0046f9e3e1489d3593.js +22 -0
- data/installer/core/public/assets/ckeditor/plugins/table/dialogs/table-f41e0d83975bd104aff05dbb326fc62a31e1cef27d7abc0046f9e3e1489d3593.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/table/dialogs/table.js +22 -0
- data/installer/core/public/assets/ckeditor/plugins/table/dialogs/table.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/tableselection/styles/tableselection-9792b2b1cd17c57ba2adc876d7e2c2bcb474f5876bb18c07fbd757970f8765d7.css +32 -0
- data/installer/core/public/assets/ckeditor/plugins/tableselection/styles/tableselection-9792b2b1cd17c57ba2adc876d7e2c2bcb474f5876bb18c07fbd757970f8765d7.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/tableselection/styles/tableselection.css +32 -0
- data/installer/core/public/assets/ckeditor/plugins/tableselection/styles/tableselection.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/tabletools/dialogs/tableCell-c3bfee31e5a4a1cf6af2b49e3a9570d528d1e4872dcb74b9504419fadba32fbf.js +18 -0
- data/installer/core/public/assets/ckeditor/plugins/tabletools/dialogs/tableCell-c3bfee31e5a4a1cf6af2b49e3a9570d528d1e4872dcb74b9504419fadba32fbf.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/tabletools/dialogs/tableCell.js +18 -0
- data/installer/core/public/assets/ckeditor/plugins/tabletools/dialogs/tableCell.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/templates/dialogs/templates-1ef0039fb16321fd4389611090d375cf5f53ec651054b494d1182521413d44e5.js +11 -0
- data/installer/core/public/assets/ckeditor/plugins/templates/dialogs/templates-1ef0039fb16321fd4389611090d375cf5f53ec651054b494d1182521413d44e5.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/templates/dialogs/templates-f6ec2ac3c08326b52ae312f0262d4503118dae4d2d8778f85bf20ff2497ea089.css +85 -0
- data/installer/core/public/assets/ckeditor/plugins/templates/dialogs/templates-f6ec2ac3c08326b52ae312f0262d4503118dae4d2d8778f85bf20ff2497ea089.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/templates/dialogs/templates.css +85 -0
- data/installer/core/public/assets/ckeditor/plugins/templates/dialogs/templates.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/templates/dialogs/templates.js +11 -0
- data/installer/core/public/assets/ckeditor/plugins/templates/dialogs/templates.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/templates/templates/default-5700a967e02c2de4bb41ded64f8db4d87bd73c4a4441e6e0d04e0941b3b2e6d1.js +8 -0
- data/installer/core/public/assets/ckeditor/plugins/templates/templates/default-5700a967e02c2de4bb41ded64f8db4d87bd73c4a4441e6e0d04e0941b3b2e6d1.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/templates/templates/default.js +8 -0
- data/installer/core/public/assets/ckeditor/plugins/templates/templates/default.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/templates/templates/images/template1-0e5b3ea58bdf1ccf7f8aa1d50c86e03832d0e89056f266b1e938e4872f298a1b.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/templates/templates/images/template1.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/templates/templates/images/template2-3f7cea1cac236e2732feb9eb9f7e5e70bb4b05eced144fc90ebbbce9856c1ddf.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/templates/templates/images/template2.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/templates/templates/images/template3-91987500818e6fa63f868eea61db15178180a11ef09eebd87a295722590efe05.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/templates/templates/images/template3.gif +0 -0
- data/installer/core/public/assets/ckeditor/plugins/wsc/dialogs/ciframe-bbc1f85ed681f80c12a29fc6e390fe3259fc127faadd7a1ab87cc6acf13705f3.html +66 -0
- data/installer/core/public/assets/ckeditor/plugins/wsc/dialogs/ciframe-bbc1f85ed681f80c12a29fc6e390fe3259fc127faadd7a1ab87cc6acf13705f3.html.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/wsc/dialogs/ciframe.html +66 -0
- data/installer/core/public/assets/ckeditor/plugins/wsc/dialogs/ciframe.html.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/wsc/dialogs/tmpFrameset-8edad96824ed6e6687bc150fc92ba749e0cd55c4f4de53434568e2ece1e2b999.html +52 -0
- data/installer/core/public/assets/ckeditor/plugins/wsc/dialogs/tmpFrameset-8edad96824ed6e6687bc150fc92ba749e0cd55c4f4de53434568e2ece1e2b999.html.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +52 -0
- data/installer/core/public/assets/ckeditor/plugins/wsc/dialogs/tmpFrameset.html.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/wsc/dialogs/wsc-43418d6b5efe142c0ea4e864a56974f317d2cac650defd437703587ef2bf83d4.js +93 -0
- data/installer/core/public/assets/ckeditor/plugins/wsc/dialogs/wsc-43418d6b5efe142c0ea4e864a56974f317d2cac650defd437703587ef2bf83d4.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/wsc/dialogs/wsc-e31787ec9d2b04cbd4a6183923949e0dfda6a3bf104656c1f344c71fdfa4875c.css +83 -0
- data/installer/core/public/assets/ckeditor/plugins/wsc/dialogs/wsc-e31787ec9d2b04cbd4a6183923949e0dfda6a3bf104656c1f344c71fdfa4875c.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/wsc/dialogs/wsc.css +83 -0
- data/installer/core/public/assets/ckeditor/plugins/wsc/dialogs/wsc.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/wsc/dialogs/wsc.js +93 -0
- data/installer/core/public/assets/ckeditor/plugins/wsc/dialogs/wsc.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/wsc/dialogs/wsc_ie-dba8afec87a67f0e0a39f3882c952d25e228b6228d0be03f157be65e1e272167.js +12 -0
- data/installer/core/public/assets/ckeditor/plugins/wsc/dialogs/wsc_ie-dba8afec87a67f0e0a39f3882c952d25e228b6228d0be03f157be65e1e272167.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/wsc/dialogs/wsc_ie.js +12 -0
- data/installer/core/public/assets/ckeditor/plugins/wsc/dialogs/wsc_ie.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/wsc/skins/moono-lisa/wsc-a0fc7fe1ba275090a93038c52950ddb538963b336f0009f4c6efd1722717404f.css +43 -0
- data/installer/core/public/assets/ckeditor/plugins/wsc/skins/moono-lisa/wsc-a0fc7fe1ba275090a93038c52950ddb538963b336f0009f4c6efd1722717404f.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/plugins/wsc/skins/moono-lisa/wsc.css +43 -0
- data/installer/core/public/assets/ckeditor/plugins/wsc/skins/moono-lisa/wsc.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/dialog-7d4bb724b744f9985fe8fe77929477041cbb2b9b32933fd6377599e2b6fecefb.css +6 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/dialog-7d4bb724b744f9985fe8fe77929477041cbb2b9b32933fd6377599e2b6fecefb.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/dialog.css +6 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/dialog.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/dialog_ie-eb563326b8654de4304b0d42250b1a8aef0d8ebeda3190b3dbd4d14e287b5d7a.css +6 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/dialog_ie-eb563326b8654de4304b0d42250b1a8aef0d8ebeda3190b3dbd4d14e287b5d7a.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/dialog_ie.css +6 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/dialog_ie.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/dialog_ie8-2d4df01d6ffaf95a014c2e7a84f4a1c4282e389256b2a46baf78c03e6a48b8d4.css +6 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/dialog_ie8-2d4df01d6ffaf95a014c2e7a84f4a1c4282e389256b2a46baf78c03e6a48b8d4.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/dialog_ie8.css +6 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/dialog_ie8.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/dialog_iequirks-56c1ac096674ca2ffa96415f097d6e811c0fcd18d26249d3551341c353e4d5f6.css +6 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/dialog_iequirks-56c1ac096674ca2ffa96415f097d6e811c0fcd18d26249d3551341c353e4d5f6.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/dialog_iequirks.css +6 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/dialog_iequirks.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/editor-a642f516332c0923ce5b04aef2b8ae2f0deb7baf7964f88c72fd2ebb919ca946.css +6 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/editor-a642f516332c0923ce5b04aef2b8ae2f0deb7baf7964f88c72fd2ebb919ca946.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/editor.css +6 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/editor.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/editor_gecko-f55d1d265c00d459a9d53b74e6683dae3f6246b1e664532fb9efe2b8aec9d83a.css +6 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/editor_gecko-f55d1d265c00d459a9d53b74e6683dae3f6246b1e664532fb9efe2b8aec9d83a.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/editor_gecko.css +6 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/editor_gecko.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/editor_ie-87bccbf693180cf4489c2c7a89ee6dba186a9f87d8b40944c1cb8263666384b6.css +6 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/editor_ie-87bccbf693180cf4489c2c7a89ee6dba186a9f87d8b40944c1cb8263666384b6.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/editor_ie.css +6 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/editor_ie.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/editor_ie8-724e651f2ca9cb5f5c10f6735053214218fc93bf29b530c7915aa071f354df8f.css +6 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/editor_ie8-724e651f2ca9cb5f5c10f6735053214218fc93bf29b530c7915aa071f354df8f.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/editor_ie8.css +6 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/editor_ie8.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/editor_iequirks-fa8825aeccb20dd5c1779a1fc12f536d2e07d8973ee8d238d30c47f245ae751d.css +6 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/editor_iequirks-fa8825aeccb20dd5c1779a1fc12f536d2e07d8973ee8d238d30c47f245ae751d.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/editor_iequirks.css +6 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/editor_iequirks.css.gz +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/icons-af6217b63920631c6dd9914678b77fdd11a6e04a2dd72fe154015f52d646476e.png +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/icons.png +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/icons_hidpi-be1786d2965715aa5c3d777a477d1f295a634dcf93128b57b46718c5518e82bd.png +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/icons_hidpi.png +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/images/arrow-b2277bbb26fff842ebf687d4e0db0011c97ce2ad5150e20ebd63cd15a2c9550b.png +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/images/arrow.png +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/images/close-0d5aab99d91cdf9451203c690d1b681efac0e247873137c2e4b254f5eaed0250.png +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/images/close.png +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/images/hidpi/close-31ca8328e53f548322e8d6cb9b889e1fe6d918e3f944910b905a3c3a9b97f616.png +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/images/hidpi/close.png +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/images/hidpi/lock-590115a32954f2bf27bdad510aa986ab4790616b3838ed840d36707c37d2e549.png +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/images/hidpi/lock-open-0f89da48392084c2b92f1184b20cd15a82b00f76369619827f0c256e4d064a84.png +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/images/hidpi/lock-open.png +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/images/hidpi/lock.png +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/images/hidpi/refresh-0afa815ccda8e98ab0c53b7f84405e7af5926a2f674f294ab7e0636eab8d59bc.png +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/images/hidpi/refresh.png +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/images/lock-591538a3e1c27b0666fbea0e16e5fd35c37824711bf843bd42e692886cd34a87.png +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/images/lock-open-76f7cea49f5c9c3a33ebe05a241e5278530887fe7669529a04accf237ef491ae.png +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/images/lock-open.png +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/images/lock.png +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/images/refresh-908ab5420bc35b3dbb1408cba105349ba1f47334ca98be08d0607410353d033a.png +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/images/refresh.png +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/images/spinner-fe605d83531314abeaec1f47b43c86a4a48c86e3f332ad01b5a9ed2558b8b41f.gif +0 -0
- data/installer/core/public/assets/ckeditor/skins/moono-lisa/images/spinner.gif +0 -0
- data/installer/core/public/assets/ckeditor/styles-97df3adaaae4178d12a212fad062f011c569a42c836a1c558fc7d751a46f3fc4.js +137 -0
- data/installer/core/public/assets/ckeditor/styles-97df3adaaae4178d12a212fad062f011c569a42c836a1c558fc7d751a46f3fc4.js.gz +0 -0
- data/installer/core/public/assets/ckeditor/styles.js +137 -0
- data/installer/core/public/assets/ckeditor/styles.js.gz +0 -0
- data/installer/core/public/assets/errors/application-5bedab1af7243cbddbac6a3bfdb855848f031688fdf0f923ea0432fdc62b76f2.js +117 -0
- data/installer/core/public/assets/errors/application-5bedab1af7243cbddbac6a3bfdb855848f031688fdf0f923ea0432fdc62b76f2.js.gz +0 -0
- data/installer/core/public/assets/errors/application-b2440acdfe3667a77a6858d9dbc123740884b45cc4870f4ad52b831d16ffac97.css +187 -0
- data/installer/core/public/assets/errors/application-b2440acdfe3667a77a6858d9dbc123740884b45cc4870f4ad52b831d16ffac97.css.gz +0 -0
- data/installer/core/public/assets/font-awesome/fa-brands-400-15fe80489bf95e94ba22be4084a11dcf5ff3c631fa8ded2051c0f99f08895f52.svg +1011 -0
- data/installer/core/public/assets/font-awesome/fa-brands-400-15fe80489bf95e94ba22be4084a11dcf5ff3c631fa8ded2051c0f99f08895f52.svg.gz +0 -0
- data/installer/core/public/assets/font-awesome/fa-brands-400-8c507886294992429a98e9382dd1557ef1e7d4a45d6a7bbffa9771e839190c23.ttf +0 -0
- data/installer/core/public/assets/font-awesome/fa-brands-400-8c507886294992429a98e9382dd1557ef1e7d4a45d6a7bbffa9771e839190c23.ttf.gz +0 -0
- data/installer/core/public/assets/font-awesome/fa-brands-400-9ae2326c389ddbc93a2636b121456333152931549bd5bd16a5cd2ee24e601c16.woff2 +0 -0
- data/installer/core/public/assets/font-awesome/fa-brands-400-a25479bdac618c6b4f32a3f60bedee6b4fe759db1500c790eab5f94fdeb59f92.woff +0 -0
- data/installer/core/public/assets/font-awesome/fa-brands-400-b9c345f4fa1349aea117ed753492783a632513f2dd75dc86942cfbc630c84d05.eot +0 -0
- data/installer/core/public/assets/font-awesome/fa-brands-400-b9c345f4fa1349aea117ed753492783a632513f2dd75dc86942cfbc630c84d05.eot.gz +0 -0
- data/installer/core/public/assets/font-awesome/fa-regular-400-33a8657a09af038500733bdaf969d8928b48475f26020cc35ca7193a53fcbedc.eot +0 -0
- data/installer/core/public/assets/font-awesome/fa-regular-400-33a8657a09af038500733bdaf969d8928b48475f26020cc35ca7193a53fcbedc.eot.gz +0 -0
- data/installer/core/public/assets/font-awesome/fa-regular-400-75e64a952613e7f6cdc74628f8bf85206db9a75cc1926ffccb8f1caade2e4db7.svg +366 -0
- data/installer/core/public/assets/font-awesome/fa-regular-400-75e64a952613e7f6cdc74628f8bf85206db9a75cc1926ffccb8f1caade2e4db7.svg.gz +0 -0
- data/installer/core/public/assets/font-awesome/fa-regular-400-b2bb708d78f9ce7490251f676f8f8f6dadc7e8d7e4b3d1ab560a4c1130b0c460.woff2 +0 -0
- data/installer/core/public/assets/font-awesome/fa-regular-400-c25d1ee715f6ca69202404165aa0942709ff14d1bd99f9df5b124522d42077ef.ttf +0 -0
- data/installer/core/public/assets/font-awesome/fa-regular-400-c25d1ee715f6ca69202404165aa0942709ff14d1bd99f9df5b124522d42077ef.ttf.gz +0 -0
- data/installer/core/public/assets/font-awesome/fa-regular-400-e4d56ba6fcd7b99e7e83ee13aa2cecbf6391bc9965d18f43a13bec2957ecd851.woff +0 -0
- data/installer/core/public/assets/font-awesome/fa-solid-900-08f7874f8336b47e49d9719c38cea16cdea6362962f5001db3f2d0bb47332357.woff2 +0 -0
- data/installer/core/public/assets/font-awesome/fa-solid-900-31bb4aa00b5293474c3d74e67a316442a8de04a5331edb3e9e11349b7355fcec.eot +0 -0
- data/installer/core/public/assets/font-awesome/fa-solid-900-31bb4aa00b5293474c3d74e67a316442a8de04a5331edb3e9e11349b7355fcec.eot.gz +0 -0
- data/installer/core/public/assets/font-awesome/fa-solid-900-54997dacd19dcdad4bffdda880c9aa9268ef52281ab39fb0d17b7ba7618a49a6.svg +1644 -0
- data/installer/core/public/assets/font-awesome/fa-solid-900-54997dacd19dcdad4bffdda880c9aa9268ef52281ab39fb0d17b7ba7618a49a6.svg.gz +0 -0
- data/installer/core/public/assets/font-awesome/fa-solid-900-7cf25b1d45ac4436b575e86dcafdd37efc5faeab3bdad3144a9af3b7eae4b48f.ttf +0 -0
- data/installer/core/public/assets/font-awesome/fa-solid-900-7cf25b1d45ac4436b575e86dcafdd37efc5faeab3bdad3144a9af3b7eae4b48f.ttf.gz +0 -0
- data/installer/core/public/assets/font-awesome/fa-solid-900-e20ab4de8913d1e569c3016c5c5aecfd6589f2bff211c387f2d0422d9123ae2f.woff +0 -0
- data/installer/core/public/assets/keppler_capsules/admin/application-3e18899279f0f0db0ed087ef60a3133b36f7735f3e5bf09411c5099fe9551fcd.css +22 -0
- data/installer/core/public/assets/keppler_capsules/admin/application-3e18899279f0f0db0ed087ef60a3133b36f7735f3e5bf09411c5099fe9551fcd.css.gz +0 -0
- data/installer/core/public/assets/keppler_capsules/admin/application-f46080ad1616c7365ec458f0663ca9a285bb005dea3d10079f00e0298c6cd670.js +22 -0
- data/installer/core/public/assets/keppler_capsules/admin/application-f46080ad1616c7365ec458f0663ca9a285bb005dea3d10079f00e0298c6cd670.js.gz +0 -0
- data/installer/core/public/assets/keppler_frontend/admin/application-a59d5002b1a4c8a889da935c51f2679c69bdc2eb3b789d6c96de3f7db67ba730.css +485 -0
- data/installer/core/public/assets/keppler_frontend/admin/application-a59d5002b1a4c8a889da935c51f2679c69bdc2eb3b789d6c96de3f7db67ba730.css.gz +0 -0
- data/installer/core/public/assets/keppler_frontend/admin/application-e783e6e18f4436fdd1b29d1eae96cb33a54b2310f89735806c363c6213488493.js +885 -0
- data/installer/core/public/assets/keppler_frontend/admin/application-e783e6e18f4436fdd1b29d1eae96cb33a54b2310f89735806c363c6213488493.js.gz +0 -0
- data/installer/core/public/assets/keppler_frontend/app/application-6fc1d0e6a7d356107c213726b8f894c8df9332bf966899559aa863b5388748d3.js +34345 -0
- data/installer/core/public/assets/keppler_frontend/app/application-6fc1d0e6a7d356107c213726b8f894c8df9332bf966899559aa863b5388748d3.js.gz +0 -0
- data/installer/core/public/assets/keppler_frontend/app/application-e8573318eb1e34fe271f40b72d2c8b886c16853ee9af153bd6a986091a8e1dd2.css +352 -0
- data/installer/core/public/assets/keppler_frontend/app/application-e8573318eb1e34fe271f40b72d2c8b886c16853ee9af153bd6a986091a8e1dd2.css.gz +0 -0
- data/installer/core/public/assets/keppler_languages/application-789fd3d62d3ea0a804c0818f1e22d8dce8f2a330acd678b5803b078c1e58e59a.css +21 -0
- data/installer/core/public/assets/keppler_languages/application-789fd3d62d3ea0a804c0818f1e22d8dce8f2a330acd678b5803b078c1e58e59a.css.gz +0 -0
- data/installer/core/public/assets/keppler_languages/application-f4839ea4cb8c278f79995502e2945a4490245751bb22f01730596d1c585f5b5a.js +15 -0
- data/installer/core/public/assets/keppler_languages/application-f4839ea4cb8c278f79995502e2945a4490245751bb22f01730596d1c585f5b5a.js.gz +0 -0
- data/installer/core/public/assets/slick-06d80cf01250132fd1068701108453feee68854b750d22c344ffc0de395e1dcb.eot +0 -0
- data/installer/core/public/assets/slick-06d80cf01250132fd1068701108453feee68854b750d22c344ffc0de395e1dcb.eot.gz +0 -0
- data/installer/core/public/assets/slick-26726bac4060abb1226e6ceebc1336e84930fe7a7af1b3895a109d067f5b5dcc.woff +0 -0
- data/installer/core/public/assets/slick-37bc99cfdbbc046193a26396787374d00e7b10d3a758a36045c07bd8886360d2.ttf +0 -0
- data/installer/core/public/assets/slick-37bc99cfdbbc046193a26396787374d00e7b10d3a758a36045c07bd8886360d2.ttf.gz +0 -0
- data/installer/core/public/assets/slick-8ca11b5fcbff92ee6378017cf6832dddfa745253202d7c8d01f42d5d17c4cb5c.svg +14 -0
- data/installer/core/public/assets/slick-8ca11b5fcbff92ee6378017cf6832dddfa745253202d7c8d01f42d5d17c4cb5c.svg.gz +0 -0
- data/installer/core/public/assets/slick/ajax-loader-e7b44c86b050fca766a96ddac2d0932af0126da6f2305280342d909168dcce6b.gif +0 -0
- data/installer/core/rockets/keppler_capsules/app/controllers/keppler_capsules/application_controller.rb +1 -1
- data/installer/core/rockets/keppler_capsules/lib/generators/keppler_capsule_scaffold/templates/models/model.rb +2 -0
- data/installer/core/rockets/keppler_frontend/app/assets/stylesheets/keppler_frontend/admin/frontend.scss +68 -0
- data/installer/core/rockets/keppler_frontend/app/controllers/keppler_frontend/admin/multimedia_controller.rb +7 -7
- data/installer/core/rockets/keppler_frontend/app/controllers/keppler_frontend/admin/themes_controller.rb +0 -15
- data/installer/core/rockets/keppler_frontend/app/controllers/keppler_frontend/admin/views_controller.rb +49 -218
- data/installer/core/rockets/keppler_frontend/app/controllers/keppler_frontend/app/app_controller.rb +5 -0
- data/installer/core/rockets/keppler_frontend/app/controllers/keppler_frontend/app/frontend_controller.rb +0 -11
- data/installer/core/rockets/keppler_frontend/app/controllers/keppler_frontend/application_controller.rb +1 -1
- data/installer/core/rockets/keppler_frontend/app/controllers/keppler_frontend/concerns/services.rb +10 -2
- data/installer/core/rockets/keppler_frontend/app/models/keppler_frontend/theme.rb +12 -14
- data/installer/core/rockets/keppler_frontend/app/policies/keppler_frontend/theme_policy.rb +12 -4
- data/installer/core/rockets/keppler_frontend/app/services/keppler_frontend/editor/resources_format.rb +1 -1
- data/installer/core/rockets/keppler_frontend/app/services/keppler_frontend/urls/assets.rb +4 -0
- data/installer/core/rockets/keppler_frontend/app/services/keppler_frontend/views/add.rb +58 -0
- data/installer/core/rockets/keppler_frontend/app/services/keppler_frontend/views/remove.rb +51 -0
- data/installer/core/rockets/keppler_frontend/app/services/keppler_frontend/views/routes_handler.rb +45 -38
- data/installer/core/rockets/keppler_frontend/app/services/keppler_frontend/views/theme_views.rb +51 -0
- data/installer/core/rockets/keppler_frontend/app/services/keppler_frontend/views/views.rb +78 -0
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/themes/_listing.html.haml +0 -3
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/themes/index.html.haml +59 -57
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/views/_new_view.html.haml +25 -0
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/views/_select_theme.html.haml +32 -0
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/views/_views_listing.html.haml +43 -0
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/views/generate.js.erb +7 -0
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/views/index.html.haml +47 -78
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/views/refresh.js.erb +1 -0
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/views/remove.js.erb +2 -0
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/app/frontend/keppler.html.haml +4 -1
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/app/partials/_devise_login.html.erb +1 -1
- data/installer/core/rockets/keppler_frontend/config/locales/en.yml +8 -0
- data/installer/core/rockets/keppler_frontend/config/locales/es.yml +8 -0
- data/installer/core/rockets/keppler_frontend/config/menu.yml +9 -24
- data/installer/core/rockets/keppler_frontend/config/routes.rb +8 -108
- data/installer/core/rockets/keppler_frontend/config/themes.yml +4 -4
- data/installer/core/rockets/keppler_frontend/lib/keppler_frontend/engine.rb +1 -1
- data/installer/core/rockets/keppler_ga_dashboard/app/controllers/keppler_ga_dashboard/admin/dashboard_controller.rb +7 -1
- data/installer/core/rockets/keppler_ga_dashboard/app/views/keppler_ga_dashboard/admin/dashboard/analytics.html.haml +0 -1
- data/installer/core/rockets/keppler_languages/app/controllers/keppler_languages/application_controller.rb +1 -1
- data/installer/core/spec/controllers/admin/admin_controller_spec.rb +8 -1
- data/installer/core/spec/controllers/admin/settings_controller_spec.rb +34 -0
- data/installer/core/spec/routing/setting_spec.rb +12 -0
- data/installer/core/vendor/cache/html-to-haml-0.0.6.gem +0 -0
- data/installer/core/yarn.lock +4 -0
- data/keppler.gemspec +3 -3
- data/lib/keppler/version.rb +1 -1
- metadata +585 -15216
- data/installer/core/app/controllers/devise/sessions_controller.rb +0 -108
- data/installer/core/app/views/devise/sessions/new.html.haml +0 -35
- data/installer/core/db/migrate/20180717160308_create_keppler_frontend_views.keppler_frontend.rb +0 -17
- data/installer/core/db/migrate/20180806203410_create_keppler_frontend_partials.keppler_frontend.rb +0 -13
- data/installer/core/db/migrate/20180827120841_create_keppler_frontend_callback_functions.keppler_frontend.rb +0 -14
- data/installer/core/db/migrate/20180827154329_create_keppler_frontend_view_callbacks.keppler_frontend.rb +0 -12
- data/installer/core/db/migrate/20180830153221_create_keppler_frontend_functions.keppler_frontend.rb +0 -14
- data/installer/core/db/migrate/20180830153222_create_keppler_frontend_parameters.keppler_frontend.rb +0 -13
- data/installer/core/rockets/keppler_frontend/app/controllers/keppler_frontend/admin/callback_functions_controller.rb +0 -194
- data/installer/core/rockets/keppler_frontend/app/controllers/keppler_frontend/admin/functions_controller.rb +0 -205
- data/installer/core/rockets/keppler_frontend/app/controllers/keppler_frontend/admin/parameters_controller.rb +0 -165
- data/installer/core/rockets/keppler_frontend/app/controllers/keppler_frontend/admin/partials_controller.rb +0 -187
- data/installer/core/rockets/keppler_frontend/app/models/keppler_frontend/callback_function.rb +0 -52
- data/installer/core/rockets/keppler_frontend/app/models/keppler_frontend/function.rb +0 -59
- data/installer/core/rockets/keppler_frontend/app/models/keppler_frontend/parameter.rb +0 -43
- data/installer/core/rockets/keppler_frontend/app/models/keppler_frontend/partial.rb +0 -102
- data/installer/core/rockets/keppler_frontend/app/models/keppler_frontend/view.rb +0 -93
- data/installer/core/rockets/keppler_frontend/app/models/keppler_frontend/view_callback.rb +0 -29
- data/installer/core/rockets/keppler_frontend/app/policies/keppler_frontend/callback_function_policy.rb +0 -19
- data/installer/core/rockets/keppler_frontend/app/policies/keppler_frontend/function_policy.rb +0 -19
- data/installer/core/rockets/keppler_frontend/app/policies/keppler_frontend/parameter_policy.rb +0 -11
- data/installer/core/rockets/keppler_frontend/app/policies/keppler_frontend/partial_policy.rb +0 -16
- data/installer/core/rockets/keppler_frontend/app/policies/keppler_frontend/view_policy.rb +0 -39
- data/installer/core/rockets/keppler_frontend/app/services/keppler_frontend/callbacks/code_handler.rb +0 -115
- data/installer/core/rockets/keppler_frontend/app/services/keppler_frontend/callbacks/code_views.rb +0 -74
- data/installer/core/rockets/keppler_frontend/app/services/keppler_frontend/functions/code_handler.rb +0 -0
- data/installer/core/rockets/keppler_frontend/app/services/keppler_frontend/views/actions_handler.rb +0 -120
- data/installer/core/rockets/keppler_frontend/app/services/keppler_frontend/views/css_handler.rb +0 -60
- data/installer/core/rockets/keppler_frontend/app/services/keppler_frontend/views/html_handler.rb +0 -85
- data/installer/core/rockets/keppler_frontend/app/services/keppler_frontend/views/install.rb +0 -57
- data/installer/core/rockets/keppler_frontend/app/services/keppler_frontend/views/js_handler.rb +0 -67
- data/installer/core/rockets/keppler_frontend/app/services/keppler_frontend/views/output.rb +0 -49
- data/installer/core/rockets/keppler_frontend/app/services/keppler_frontend/views/remote_js_handler.rb +0 -60
- data/installer/core/rockets/keppler_frontend/app/services/keppler_frontend/views/save.rb +0 -25
- data/installer/core/rockets/keppler_frontend/app/services/keppler_frontend/views/uninstall.rb +0 -60
- data/installer/core/rockets/keppler_frontend/app/services/keppler_frontend/views/update.rb +0 -57
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/callback_functions/_description.html.haml +0 -13
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/callback_functions/_editor_views.html.haml +0 -45
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/callback_functions/_form.html.haml +0 -31
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/callback_functions/_listing.html.haml +0 -48
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/callback_functions/edit.html.haml +0 -1
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/callback_functions/editor.html.haml +0 -47
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/callback_functions/index.html.haml +0 -80
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/callback_functions/new.html.haml +0 -1
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/callback_functions/reload.js.haml +0 -5
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/callback_functions/show.html.haml +0 -33
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/functions/_description.html.haml +0 -13
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/functions/_form.html.haml +0 -51
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/functions/_listing.html.haml +0 -45
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/functions/_parameter_fields.html.haml +0 -5
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/functions/_parameter_fields_edit.html.haml +0 -6
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/functions/edit.html.haml +0 -1
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/functions/editor.html.haml +0 -0
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/functions/index.html.haml +0 -78
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/functions/new.html.haml +0 -1
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/functions/reload.js.haml +0 -5
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/functions/show.html.haml +0 -65
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/parameters/_description.html.haml +0 -13
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/parameters/_form.html.haml +0 -31
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/parameters/_listing.html.haml +0 -41
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/parameters/edit.html.haml +0 -1
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/parameters/index.html.haml +0 -79
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/parameters/new.html.haml +0 -1
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/parameters/reload.js.haml +0 -5
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/parameters/show.html.haml +0 -33
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/partials/_description.html.haml +0 -13
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/partials/_editor_assets.html.haml +0 -129
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/partials/_form.html.haml +0 -29
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/partials/_listing.html.haml +0 -37
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/partials/edit.html.haml +0 -1
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/partials/index.html.haml +0 -76
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/partials/new.html.haml +0 -1
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/partials/reload.js.haml +0 -5
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/partials/show.html.haml +0 -87
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/themes/editor.html.haml +0 -82
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/views/_description.html.haml +0 -13
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/views/_editor_assets.html.haml +0 -132
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/views/_editor_themes.html.haml +0 -62
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/views/_editor_views.html.haml +0 -103
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/views/_form.html.haml +0 -66
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/views/_listing.html.haml +0 -60
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/views/_view_callback_fields.html.haml +0 -8
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/views/_view_callback_fields_edit.html.haml +0 -8
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/views/destroy_callback.js.erb +0 -5
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/views/edit.html.haml +0 -1
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/views/editor.html.haml +0 -7
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/views/editors/_html_editor.html.haml +0 -91
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/views/editors/_only_action.html.haml +0 -40
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/views/editors/_view_js_editor.html.haml +0 -56
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/views/new.html.haml +0 -1
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/views/reload.js.haml +0 -5
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/admin/views/show.html.haml +0 -33
- data/installer/core/rockets/keppler_frontend/app/views/keppler_frontend/app/partials/conf +0 -0
- data/installer/core/rockets/keppler_frontend/config/data/callback_functions.yml +0 -15
- data/installer/core/rockets/keppler_frontend/config/data/view_callbacks.yml +0 -1
- data/installer/core/rockets/keppler_frontend/config/data/views.yml +0 -18
- data/installer/core/rockets/keppler_frontend/db/migrate/20180717160248_create_keppler_frontend_views.rb +0 -17
- data/installer/core/rockets/keppler_frontend/db/migrate/20180806203329_create_keppler_frontend_partials.rb +0 -12
- data/installer/core/rockets/keppler_frontend/db/migrate/20180827120734_create_keppler_frontend_callback_functions.rb +0 -13
- data/installer/core/rockets/keppler_frontend/db/migrate/20180827154249_create_keppler_frontend_view_callbacks.rb +0 -11
- data/installer/core/rockets/keppler_frontend/db/migrate/20180830130934_create_keppler_frontend_functions.rb +0 -13
- data/installer/core/rockets/keppler_frontend/db/migrate/20180830153029_create_keppler_frontend_parameters.rb +0 -12
- data/installer/core/spec/controllers/keppler_frontend/admin/views_controller/create_view_spec.rb +0 -35
- data/installer/core/spec/controllers/keppler_frontend/admin/views_controller/editor_spec.rb +0 -20
- data/installer/core/spec/controllers/keppler_frontend/admin/views_controller/views_list_spec.rb +0 -30
- data/installer/core/spec/factories/keppler_frontend/callback_function.rb +0 -8
- data/installer/core/spec/factories/keppler_frontend/function.rb +0 -8
- data/installer/core/spec/factories/keppler_frontend/view.rb +0 -8
- data/installer/core/spec/factories/keppler_frontend/view_callback.rb +0 -6
- data/installer/core/spec/fixtures/keppler_frontend/editor/test.html +0 -16
- data/installer/core/spec/fixtures/keppler_frontend/editor/test.png +0 -0
- data/installer/core/spec/fixtures/keppler_frontend/live_editor/test_index_1.html +0 -16
- data/installer/core/spec/fixtures/keppler_frontend/live_editor/test_index_2.html +0 -0
- data/installer/core/spec/models/keppler_frontend/callback/calbacks_handler_spec.rb +0 -61
- data/installer/core/spec/models/keppler_frontend/callback/model_spec.rb +0 -19
- data/installer/core/spec/models/keppler_frontend/view/callback_view_spec.rb +0 -38
- data/installer/core/spec/models/keppler_frontend/view/model_spec.rb +0 -19
- data/installer/core/spec/models/keppler_frontend/view/view_files_handler_spec.rb +0 -64
- data/installer/core/spec/routing/keppler_frontend/callbacks_spec.rb +0 -68
- data/installer/core/spec/routing/keppler_frontend/functions_spec.rb +0 -68
- data/installer/core/spec/routing/keppler_frontend/views_spec.rb +0 -68
- data/installer/core/spec/services/keppler_frontend/callbacks/callback_view_spec.rb +0 -104
- data/installer/core/spec/services/keppler_frontend/callbacks/code_handler_spec.rb +0 -63
- data/installer/core/spec/services/keppler_frontend/editor/file_format_spec.rb +0 -35
- data/installer/core/spec/services/keppler_frontend/editor/resources_format_spec.rb +0 -45
- data/installer/core/spec/services/keppler_frontend/editor/resources_spec.rb +0 -44
- data/installer/core/spec/services/keppler_frontend/urls/assets_spec.rb +0 -25
- data/installer/core/spec/services/keppler_frontend/urls/config_spec.rb +0 -25
- data/installer/core/spec/services/keppler_frontend/urls/front_spec.rb +0 -38
- data/installer/core/spec/services/keppler_frontend/urls/roots_spec.rb +0 -22
- data/installer/core/spec/services/keppler_frontend/utils/code_search_spec.rb +0 -29
- data/installer/core/spec/services/keppler_frontend/utils/file_format_spec.rb +0 -52
- data/installer/core/spec/services/keppler_frontend/utils/yml_handle_spec.rb +0 -42
- data/installer/core/spec/services/keppler_frontend/views/actions_handler_spec.rb +0 -59
- data/installer/core/spec/services/keppler_frontend/views/css_handler_spec.rb +0 -59
- data/installer/core/spec/services/keppler_frontend/views/format_html_spec.rb +0 -99
- data/installer/core/spec/services/keppler_frontend/views/format_only_action_spec.rb +0 -91
- data/installer/core/spec/services/keppler_frontend/views/format_remote_js_spec.rb +0 -101
- data/installer/core/spec/services/keppler_frontend/views/html_handler_spec.rb +0 -52
- data/installer/core/spec/services/keppler_frontend/views/js_handler_spec.rb +0 -59
- data/installer/core/spec/services/keppler_frontend/views/output_code_spec.rb +0 -39
- data/installer/core/spec/services/keppler_frontend/views/remote_js_handler_spec.rb +0 -55
- data/installer/core/spec/services/keppler_frontend/views/routes_handler_spec.rb +0 -63
- data/installer/core/spec/services/keppler_frontend/views/save_code_spec.rb +0 -53
- data/testing-with-2.1.18/.gitignore +0 -88
- data/testing-with-2.1.18/.ruby-version +0 -1
- data/testing-with-2.1.18/Gemfile +0 -149
- data/testing-with-2.1.18/Gemfile.lock +0 -645
- data/testing-with-2.1.18/Guardfile +0 -18
- data/testing-with-2.1.18/LICENSE +0 -674
- data/testing-with-2.1.18/README.md +0 -134
- data/testing-with-2.1.18/Rakefile +0 -6
- data/testing-with-2.1.18/_config.yml +0 -1
- data/testing-with-2.1.18/app/assets/images/.keep +0 -0
- data/testing-with-2.1.18/app/assets/javascripts/admin/application.coffee +0 -25
- data/testing-with-2.1.18/app/assets/javascripts/admin/bootstrap-colorpicker.js +0 -1322
- data/testing-with-2.1.18/app/assets/javascripts/admin/bootstrap-file-input/fileinput.js +0 -4463
- data/testing-with-2.1.18/app/assets/javascripts/admin/bootstrap-file-input/locales/LANG.js +0 -100
- data/testing-with-2.1.18/app/assets/javascripts/admin/bootstrap-file-input/locales/es.js +0 -100
- data/testing-with-2.1.18/app/assets/javascripts/admin/bootstrap-file-input/plugins/piexif.js +0 -2471
- data/testing-with-2.1.18/app/assets/javascripts/admin/bootstrap-file-input/plugins/piexif.min.js +0 -1
- data/testing-with-2.1.18/app/assets/javascripts/admin/bootstrap-file-input/plugins/purify.js +0 -812
- data/testing-with-2.1.18/app/assets/javascripts/admin/bootstrap-file-input/plugins/purify.min.js +0 -1
- data/testing-with-2.1.18/app/assets/javascripts/admin/bootstrap-file-input/plugins/sortable.js +0 -1590
- data/testing-with-2.1.18/app/assets/javascripts/admin/bootstrap-file-input/plugins/sortable.min.js +0 -1
- data/testing-with-2.1.18/app/assets/javascripts/admin/code_editor.js +0 -94
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/comment/comment.js +0 -209
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/comment/continuecomment.js +0 -78
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/dialog/dialog.css +0 -32
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/dialog/dialog.js +0 -161
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/display/autorefresh.js +0 -47
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/display/fullscreen.css +0 -6
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/display/fullscreen.js +0 -41
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/display/panel.js +0 -123
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/display/placeholder.js +0 -63
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/display/rulers.js +0 -51
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/edit/closebrackets.js +0 -194
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/edit/closetag.js +0 -175
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/edit/continuelist.js +0 -89
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/edit/matchbrackets.js +0 -145
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/edit/matchtags.js +0 -66
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/edit/trailingspace.js +0 -27
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/fold/brace-fold.js +0 -105
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/fold/comment-fold.js +0 -59
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/fold/foldcode.js +0 -152
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/fold/foldgutter.css +0 -20
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/fold/foldgutter.js +0 -146
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/fold/indent-fold.js +0 -48
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/fold/markdown-fold.js +0 -49
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/fold/xml-fold.js +0 -184
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/hint/anyword-hint.js +0 -41
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/hint/css-hint.js +0 -60
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/hint/html-hint.js +0 -348
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/hint/javascript-hint.js +0 -157
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/hint/show-hint.css +0 -36
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/hint/show-hint.js +0 -433
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/hint/sql-hint.js +0 -299
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/hint/xml-hint.js +0 -110
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/mode/loadmode.js +0 -64
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/mode/multiplex.js +0 -131
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/mode/overlay.js +0 -90
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/mode/simple.js +0 -216
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/scroll/annotatescrollbar.js +0 -122
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/scroll/scrollpastend.js +0 -48
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/scroll/simplescrollbars.css +0 -66
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/scroll/simplescrollbars.js +0 -152
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/search/jump-to-line.js +0 -49
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/search/match-highlighter.js +0 -165
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/search/matchesonscrollbar.css +0 -8
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/search/matchesonscrollbar.js +0 -97
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/search/search.js +0 -252
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/addon/search/searchcursor.js +0 -293
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/codemirror.js +0 -9683
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/keymap/sublime.js +0 -691
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/mode/css/css.js +0 -832
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/mode/haml/haml.js +0 -161
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/mode/htmlembedded/htmlembedded.js +0 -37
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/mode/htmlmixed/htmlmixed.js +0 -152
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/mode/javascript/javascript.js +0 -896
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/mode/ruby/ruby.js +0 -296
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/mode/vue/vue.js +0 -77
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/mode/xml/xml.js +0 -402
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/mode/yaml-frontmatter/yaml-frontmatter.js +0 -68
- data/testing-with-2.1.18/app/assets/javascripts/admin/codemirror/mode/yaml/yaml.js +0 -119
- data/testing-with-2.1.18/app/assets/javascripts/admin/file_uploader.coffee +0 -152
- data/testing-with-2.1.18/app/assets/javascripts/admin/img_preview.js +0 -32
- data/testing-with-2.1.18/app/assets/javascripts/admin/jscolor.js +0 -1855
- data/testing-with-2.1.18/app/assets/javascripts/admin/main.coffee +0 -58
- data/testing-with-2.1.18/app/assets/javascripts/admin/notification.js +0 -14
- data/testing-with-2.1.18/app/assets/javascripts/admin/ruby_console.js +0 -14
- data/testing-with-2.1.18/app/assets/javascripts/admin/sidebar.js +0 -24
- data/testing-with-2.1.18/app/assets/javascripts/admin/sort.coffee +0 -8
- data/testing-with-2.1.18/app/assets/javascripts/admin/swal.js +0 -39
- data/testing-with-2.1.18/app/assets/javascripts/admin/sweetalert2/delete-confirm.js +0 -118
- data/testing-with-2.1.18/app/assets/javascripts/admin/sweetalert2/sweetalert2.all.min.js +0 -2
- data/testing-with-2.1.18/app/assets/javascripts/admin/switch.js +0 -6
- data/testing-with-2.1.18/app/assets/javascripts/admin/tooltips.coffee +0 -4
- data/testing-with-2.1.18/app/assets/javascripts/admin/upload_records.coffee +0 -8
- data/testing-with-2.1.18/app/assets/javascripts/app/application.js.coffee +0 -9
- data/testing-with-2.1.18/app/assets/javascripts/app/google_analytics.js.coffee +0 -5
- data/testing-with-2.1.18/app/assets/javascripts/ckeditor/config.js +0 -130
- data/testing-with-2.1.18/app/assets/javascripts/errors/application.js.coffee +0 -1
- data/testing-with-2.1.18/app/assets/javascripts/errors/errors.js +0 -113
- data/testing-with-2.1.18/app/assets/javascripts/vue_admin/index.js +0 -111
- data/testing-with-2.1.18/app/assets/stylesheets/admin/application.scss +0 -48
- data/testing-with-2.1.18/app/assets/stylesheets/admin/bootstrap-file-input/fileinput-rtl.scss +0 -133
- data/testing-with-2.1.18/app/assets/stylesheets/admin/bootstrap-file-input/fileinput.scss +0 -760
- data/testing-with-2.1.18/app/assets/stylesheets/admin/bootstrap-file-input/themes/explorer-fa/theme.scss +0 -213
- data/testing-with-2.1.18/app/assets/stylesheets/admin/bootstrap-file-input/themes/explorer-fas/theme.scss +0 -213
- data/testing-with-2.1.18/app/assets/stylesheets/admin/bootstrap-file-input/themes/explorer/theme.scss +0 -213
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/comment/comment.js +0 -209
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/comment/continuecomment.js +0 -78
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/dialog/dialog.css +0 -32
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/dialog/dialog.js +0 -161
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/display/autorefresh.js +0 -47
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/display/fullscreen.css +0 -6
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/display/fullscreen.js +0 -41
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/display/panel.js +0 -123
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/display/placeholder.js +0 -63
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/display/rulers.js +0 -51
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/edit/closebrackets.js +0 -194
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/edit/closetag.js +0 -175
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/edit/continuelist.js +0 -89
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/edit/matchbrackets.js +0 -145
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/edit/matchtags.js +0 -66
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/edit/trailingspace.js +0 -27
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/fold/brace-fold.js +0 -105
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/fold/comment-fold.js +0 -59
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/fold/foldcode.js +0 -152
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/fold/foldgutter.css +0 -20
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/fold/foldgutter.js +0 -146
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/fold/indent-fold.js +0 -48
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/fold/markdown-fold.js +0 -49
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/fold/xml-fold.js +0 -184
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/hint/anyword-hint.js +0 -41
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/hint/css-hint.js +0 -60
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/hint/html-hint.js +0 -348
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/hint/javascript-hint.js +0 -157
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/hint/show-hint.css +0 -36
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/hint/show-hint.js +0 -433
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/hint/sql-hint.js +0 -299
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/hint/xml-hint.js +0 -110
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/scroll/annotatescrollbar.js +0 -122
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/scroll/scrollpastend.js +0 -48
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/scroll/simplescrollbars.css +0 -66
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/scroll/simplescrollbars.js +0 -152
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/search/jump-to-line.js +0 -49
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/search/match-highlighter.js +0 -165
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/search/matchesonscrollbar.css +0 -8
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/search/matchesonscrollbar.js +0 -97
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/search/search.js +0 -252
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/addon/search/searchcursor.js +0 -293
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/codemirror.css +0 -366
- data/testing-with-2.1.18/app/assets/stylesheets/admin/codemirror/theme/monokai.css +0 -41
- data/testing-with-2.1.18/app/assets/stylesheets/admin/components/layouts/_footer.scss +0 -5
- data/testing-with-2.1.18/app/assets/stylesheets/admin/components/layouts/_settings.scss +0 -51
- data/testing-with-2.1.18/app/assets/stylesheets/admin/components/navigation/_navbar.scss +0 -187
- data/testing-with-2.1.18/app/assets/stylesheets/admin/components/navigation/_sidebar.scss +0 -207
- data/testing-with-2.1.18/app/assets/stylesheets/admin/components/navigation/_turbolinks.scss +0 -4
- data/testing-with-2.1.18/app/assets/stylesheets/admin/components/paginator/_paginator.scss +0 -53
- data/testing-with-2.1.18/app/assets/stylesheets/admin/fonts-and-icons/boxicons.css +0 -2918
- data/testing-with-2.1.18/app/assets/stylesheets/admin/fonts-and-icons/fonts.css +0 -8
- data/testing-with-2.1.18/app/assets/stylesheets/admin/fonts-and-icons/icons.css +0 -778
- data/testing-with-2.1.18/app/assets/stylesheets/admin/pages/_appearance.scss +0 -5
- data/testing-with-2.1.18/app/assets/stylesheets/admin/pages/_bootstrap-colorpicker.scss +0 -269
- data/testing-with-2.1.18/app/assets/stylesheets/admin/pages/_customize.scss +0 -22
- data/testing-with-2.1.18/app/assets/stylesheets/admin/pages/_datepicker.scss +0 -1086
- data/testing-with-2.1.18/app/assets/stylesheets/admin/pages/_devise.scss +0 -189
- data/testing-with-2.1.18/app/assets/stylesheets/admin/pages/_files.scss +0 -229
- data/testing-with-2.1.18/app/assets/stylesheets/admin/pages/_form.scss +0 -190
- data/testing-with-2.1.18/app/assets/stylesheets/admin/pages/_index.scss +0 -466
- data/testing-with-2.1.18/app/assets/stylesheets/admin/pages/_listing.scss +0 -40
- data/testing-with-2.1.18/app/assets/stylesheets/admin/pages/_preloader.scss +0 -224
- data/testing-with-2.1.18/app/assets/stylesheets/admin/pages/_rockets.scss +0 -13
- data/testing-with-2.1.18/app/assets/stylesheets/admin/pages/_roles.scss +0 -3
- data/testing-with-2.1.18/app/assets/stylesheets/admin/pages/_search.scss +0 -244
- data/testing-with-2.1.18/app/assets/stylesheets/admin/pages/_show.scss +0 -23
- data/testing-with-2.1.18/app/assets/stylesheets/admin/pages/_switchs.scss +0 -143
- data/testing-with-2.1.18/app/assets/stylesheets/admin/pages/_themes.scss +0 -45
- data/testing-with-2.1.18/app/assets/stylesheets/admin/pages/_timepicker.scss +0 -14
- data/testing-with-2.1.18/app/assets/stylesheets/admin/pages/_user.scss +0 -6
- data/testing-with-2.1.18/app/assets/stylesheets/admin/utils/_base.scss +0 -65
- data/testing-with-2.1.18/app/assets/stylesheets/admin/utils/_mixins.scss +0 -26
- data/testing-with-2.1.18/app/assets/stylesheets/admin/utils/_theme.scss +0 -124
- data/testing-with-2.1.18/app/assets/stylesheets/admin/utils/_variables.scss +0 -109
- data/testing-with-2.1.18/app/assets/stylesheets/app/application.scss +0 -30
- data/testing-with-2.1.18/app/assets/stylesheets/app/base/_base_project.scss +0 -17
- data/testing-with-2.1.18/app/assets/stylesheets/app/base/_typography.scss +0 -1
- data/testing-with-2.1.18/app/assets/stylesheets/app/components/_buttons.scss +0 -0
- data/testing-with-2.1.18/app/assets/stylesheets/app/components/_inputs.scss +0 -0
- data/testing-with-2.1.18/app/assets/stylesheets/app/components/_navbar.scss +0 -21
- data/testing-with-2.1.18/app/assets/stylesheets/app/layout/_container.scss +0 -0
- data/testing-with-2.1.18/app/assets/stylesheets/app/layout/_footer.scss +0 -15
- data/testing-with-2.1.18/app/assets/stylesheets/app/layout/_header.scss +0 -39
- data/testing-with-2.1.18/app/assets/stylesheets/app/pages/_front.sass +0 -83
- data/testing-with-2.1.18/app/assets/stylesheets/app/plugins/_bootstrap_override.scss +0 -37
- data/testing-with-2.1.18/app/assets/stylesheets/app/plugins/_font_awesome.scss +0 -2
- data/testing-with-2.1.18/app/assets/stylesheets/app/plugins/_keppler.scss +0 -161
- data/testing-with-2.1.18/app/assets/stylesheets/app/plugins/_npogress.scss +0 -2
- data/testing-with-2.1.18/app/assets/stylesheets/app/utils/_mixins.scss +0 -18
- data/testing-with-2.1.18/app/assets/stylesheets/app/utils/_variables.scss +0 -28
- data/testing-with-2.1.18/app/assets/stylesheets/errors/application.scss +0 -3
- data/testing-with-2.1.18/app/assets/stylesheets/errors/errors.scss +0 -161
- data/testing-with-2.1.18/app/assets/stylesheets/vendor/admin-lte/_skin-blue.scss +0 -141
- data/testing-with-2.1.18/app/assets/stylesheets/vendor/sweetalert2/sweetalert2.scss +0 -11
- data/testing-with-2.1.18/app/controllers/admin/admin_controller.rb +0 -95
- data/testing-with-2.1.18/app/controllers/admin/meta_tags_controller.rb +0 -118
- data/testing-with-2.1.18/app/controllers/admin/permissions_controller.rb +0 -55
- data/testing-with-2.1.18/app/controllers/admin/rockets_controller.rb +0 -95
- data/testing-with-2.1.18/app/controllers/admin/roles_controller.rb +0 -124
- data/testing-with-2.1.18/app/controllers/admin/scripts_controller.rb +0 -104
- data/testing-with-2.1.18/app/controllers/admin/seos_controller.rb +0 -31
- data/testing-with-2.1.18/app/controllers/admin/settings_controller.rb +0 -131
- data/testing-with-2.1.18/app/controllers/admin/users_controller.rb +0 -122
- data/testing-with-2.1.18/app/controllers/app/app_controller.rb +0 -38
- data/testing-with-2.1.18/app/controllers/app/front_controller.rb +0 -8
- data/testing-with-2.1.18/app/controllers/application_controller.rb +0 -151
- data/testing-with-2.1.18/app/controllers/concerns/.keep +0 -0
- data/testing-with-2.1.18/app/controllers/concerns/devise_params.rb +0 -33
- data/testing-with-2.1.18/app/controllers/concerns/mailer_config.rb +0 -37
- data/testing-with-2.1.18/app/controllers/concerns/object_query.rb +0 -50
- data/testing-with-2.1.18/app/controllers/concerns/settings.rb +0 -105
- data/testing-with-2.1.18/app/controllers/devise/sessions_controller.rb +0 -108
- data/testing-with-2.1.18/app/controllers/errors_controller.rb +0 -30
- data/testing-with-2.1.18/app/helpers/admin_helper.rb +0 -138
- data/testing-with-2.1.18/app/helpers/application_helper.rb +0 -33
- data/testing-with-2.1.18/app/helpers/fronts_helper.rb +0 -38
- data/testing-with-2.1.18/app/helpers/rockets_helper.rb +0 -8
- data/testing-with-2.1.18/app/helpers/roles_helper.rb +0 -5
- data/testing-with-2.1.18/app/helpers/scaffolds_helper.rb +0 -5
- data/testing-with-2.1.18/app/inputs/keppler_boolean_input.rb +0 -52
- data/testing-with-2.1.18/app/inputs/keppler_file_input.rb +0 -124
- data/testing-with-2.1.18/app/mailers/.keep +0 -0
- data/testing-with-2.1.18/app/mailers/application_mailer.rb +0 -42
- data/testing-with-2.1.18/app/models/.keep +0 -0
- data/testing-with-2.1.18/app/models/appearance.rb +0 -7
- data/testing-with-2.1.18/app/models/application_record.rb +0 -6
- data/testing-with-2.1.18/app/models/concerns/.keep +0 -0
- data/testing-with-2.1.18/app/models/concerns/activity_history.rb +0 -11
- data/testing-with-2.1.18/app/models/concerns/clone_record.rb +0 -14
- data/testing-with-2.1.18/app/models/concerns/downloadable.rb +0 -16
- data/testing-with-2.1.18/app/models/concerns/searchable.rb +0 -27
- data/testing-with-2.1.18/app/models/concerns/sortable.rb +0 -13
- data/testing-with-2.1.18/app/models/concerns/uploadable.rb +0 -13
- data/testing-with-2.1.18/app/models/front.rb +0 -5
- data/testing-with-2.1.18/app/models/google_analytics_setting.rb +0 -6
- data/testing-with-2.1.18/app/models/meta_tag.rb +0 -54
- data/testing-with-2.1.18/app/models/permission.rb +0 -6
- data/testing-with-2.1.18/app/models/rocket.rb +0 -105
- data/testing-with-2.1.18/app/models/role.rb +0 -134
- data/testing-with-2.1.18/app/models/script.rb +0 -21
- data/testing-with-2.1.18/app/models/seo.rb +0 -49
- data/testing-with-2.1.18/app/models/setting.rb +0 -19
- data/testing-with-2.1.18/app/models/smtp_setting.rb +0 -7
- data/testing-with-2.1.18/app/models/social_account.rb +0 -6
- data/testing-with-2.1.18/app/models/user.rb +0 -75
- data/testing-with-2.1.18/app/policies/application_policy.rb +0 -18
- data/testing-with-2.1.18/app/policies/controller_policy.rb +0 -59
- data/testing-with-2.1.18/app/policies/meta_tag_policy.rb +0 -11
- data/testing-with-2.1.18/app/policies/permission_policy.rb +0 -23
- data/testing-with-2.1.18/app/policies/rocket_policy.rb +0 -11
- data/testing-with-2.1.18/app/policies/role_policy.rb +0 -31
- data/testing-with-2.1.18/app/policies/script_policy.rb +0 -11
- data/testing-with-2.1.18/app/policies/seo_policy.rb +0 -23
- data/testing-with-2.1.18/app/policies/setting_policy.rb +0 -15
- data/testing-with-2.1.18/app/policies/user_policy.rb +0 -19
- data/testing-with-2.1.18/app/services/admin/appearance_service.rb +0 -49
- data/testing-with-2.1.18/app/services/admin/git_handler.rb +0 -28
- data/testing-with-2.1.18/app/uploaders/attachment_uploader.rb +0 -61
- data/testing-with-2.1.18/app/uploaders/ckeditor_attachment_file_uploader.rb +0 -38
- data/testing-with-2.1.18/app/uploaders/ckeditor_picture_uploader.rb +0 -49
- data/testing-with-2.1.18/app/uploaders/template_uploader.rb +0 -44
- data/testing-with-2.1.18/app/views/admin/layouts/_footer.html.haml +0 -0
- data/testing-with-2.1.18/app/views/admin/layouts/_git_info.html.haml +0 -13
- data/testing-with-2.1.18/app/views/admin/layouts/_head.html.haml +0 -7
- data/testing-with-2.1.18/app/views/admin/layouts/_keppler_boolean_script.haml +0 -12
- data/testing-with-2.1.18/app/views/admin/layouts/_listing_preloader.haml +0 -4
- data/testing-with-2.1.18/app/views/admin/layouts/_messages.html.haml +0 -4
- data/testing-with-2.1.18/app/views/admin/layouts/_navigation.html.haml +0 -59
- data/testing-with-2.1.18/app/views/admin/layouts/_preloader.html.haml +0 -14
- data/testing-with-2.1.18/app/views/admin/layouts/_sidebar.html.haml +0 -83
- data/testing-with-2.1.18/app/views/admin/layouts/application.html.haml +0 -23
- data/testing-with-2.1.18/app/views/admin/layouts/index/remote_messages.js.haml +0 -9
- data/testing-with-2.1.18/app/views/admin/meta_tags/_description.html.haml +0 -13
- data/testing-with-2.1.18/app/views/admin/meta_tags/_form.html.haml +0 -35
- data/testing-with-2.1.18/app/views/admin/meta_tags/_listing.html.haml +0 -40
- data/testing-with-2.1.18/app/views/admin/meta_tags/edit.html.haml +0 -2
- data/testing-with-2.1.18/app/views/admin/meta_tags/index.html.haml +0 -69
- data/testing-with-2.1.18/app/views/admin/meta_tags/new.html.haml +0 -2
- data/testing-with-2.1.18/app/views/admin/meta_tags/reload.js.haml +0 -5
- data/testing-with-2.1.18/app/views/admin/meta_tags/show.html.haml +0 -28
- data/testing-with-2.1.18/app/views/admin/permissions/_switch.html.haml +0 -13
- data/testing-with-2.1.18/app/views/admin/permissions/add.html.haml +0 -95
- data/testing-with-2.1.18/app/views/admin/permissions/create.html.haml +0 -0
- data/testing-with-2.1.18/app/views/admin/permissions/create.js.erb +0 -2
- data/testing-with-2.1.18/app/views/admin/permissions/show.js.erb +0 -2
- data/testing-with-2.1.18/app/views/admin/permissions/toggle_permissions.js.erb +0 -6
- data/testing-with-2.1.18/app/views/admin/rockets/_create_rocket.haml +0 -61
- data/testing-with-2.1.18/app/views/admin/rockets/_install_rocket.haml +0 -28
- data/testing-with-2.1.18/app/views/admin/rockets/rockets.haml +0 -54
- data/testing-with-2.1.18/app/views/admin/roles/_description.html.haml +0 -13
- data/testing-with-2.1.18/app/views/admin/roles/_form.html.haml +0 -27
- data/testing-with-2.1.18/app/views/admin/roles/_listing.html.haml +0 -42
- data/testing-with-2.1.18/app/views/admin/roles/_switch.html.haml +0 -24
- data/testing-with-2.1.18/app/views/admin/roles/edit.html.haml +0 -1
- data/testing-with-2.1.18/app/views/admin/roles/index.html.haml +0 -64
- data/testing-with-2.1.18/app/views/admin/roles/new.html.haml +0 -1
- data/testing-with-2.1.18/app/views/admin/roles/reload.js.haml +0 -5
- data/testing-with-2.1.18/app/views/admin/roles/show.html.haml +0 -29
- data/testing-with-2.1.18/app/views/admin/scripts/_description.html.haml +0 -13
- data/testing-with-2.1.18/app/views/admin/scripts/_form.html.haml +0 -30
- data/testing-with-2.1.18/app/views/admin/scripts/_listing.html.haml +0 -40
- data/testing-with-2.1.18/app/views/admin/scripts/edit.html.haml +0 -1
- data/testing-with-2.1.18/app/views/admin/scripts/index.html.haml +0 -70
- data/testing-with-2.1.18/app/views/admin/scripts/new.html.haml +0 -1
- data/testing-with-2.1.18/app/views/admin/scripts/reload.js.haml +0 -5
- data/testing-with-2.1.18/app/views/admin/scripts/show.html.haml +0 -28
- data/testing-with-2.1.18/app/views/admin/seos/robots.html.haml +0 -35
- data/testing-with-2.1.18/app/views/admin/seos/sitemap.html.haml +0 -36
- data/testing-with-2.1.18/app/views/admin/settings/_form.html.haml +0 -10
- data/testing-with-2.1.18/app/views/admin/settings/components/_preview.html.haml +0 -30
- data/testing-with-2.1.18/app/views/admin/settings/edit.html.haml +0 -4
- data/testing-with-2.1.18/app/views/admin/settings/fields/_appearance.html.haml +0 -64
- data/testing-with-2.1.18/app/views/admin/settings/fields/_basic_information.html.haml +0 -40
- data/testing-with-2.1.18/app/views/admin/settings/fields/_email_setting.html.haml +0 -18
- data/testing-with-2.1.18/app/views/admin/settings/fields/_google_analytics_setting.html.haml +0 -21
- data/testing-with-2.1.18/app/views/admin/settings/fields/_social_accounts.html.haml +0 -43
- data/testing-with-2.1.18/app/views/admin/users/_description.html.haml +0 -13
- data/testing-with-2.1.18/app/views/admin/users/_form.html.haml +0 -45
- data/testing-with-2.1.18/app/views/admin/users/_listing.html.haml +0 -47
- data/testing-with-2.1.18/app/views/admin/users/delete_avatar.js.haml +0 -3
- data/testing-with-2.1.18/app/views/admin/users/edit.html.haml +0 -1
- data/testing-with-2.1.18/app/views/admin/users/filter_by_role.js.erb +0 -9
- data/testing-with-2.1.18/app/views/admin/users/index.html.haml +0 -69
- data/testing-with-2.1.18/app/views/admin/users/new.html.haml +0 -1
- data/testing-with-2.1.18/app/views/admin/users/reload.js.haml +0 -5
- data/testing-with-2.1.18/app/views/admin/users/show.html.haml +0 -34
- data/testing-with-2.1.18/app/views/app/front/index.html.haml +0 -223
- data/testing-with-2.1.18/app/views/app/front/message.haml +0 -1
- data/testing-with-2.1.18/app/views/app/layouts/_footer.html.haml +0 -3
- data/testing-with-2.1.18/app/views/app/layouts/_google_analytics.html.haml +0 -13
- data/testing-with-2.1.18/app/views/app/layouts/_head.html.haml +0 -15
- data/testing-with-2.1.18/app/views/app/layouts/_messages.html.haml +0 -6
- data/testing-with-2.1.18/app/views/app/layouts/_meta_tags.html.haml +0 -40
- data/testing-with-2.1.18/app/views/app/layouts/_navigation.html.haml +0 -13
- data/testing-with-2.1.18/app/views/app/layouts/_navigation_links.html.haml +0 -6
- data/testing-with-2.1.18/app/views/app/layouts/application.html.haml +0 -10
- data/testing-with-2.1.18/app/views/application_mailer/testing.html.haml +0 -1
- data/testing-with-2.1.18/app/views/devise/confirmations/new.html.erb +0 -16
- data/testing-with-2.1.18/app/views/devise/mailer/reset_password_instructions.html.haml +0 -6
- data/testing-with-2.1.18/app/views/devise/passwords/edit.html.haml +0 -31
- data/testing-with-2.1.18/app/views/devise/passwords/new.html.haml +0 -27
- data/testing-with-2.1.18/app/views/devise/registrations/edit.html.erb +0 -48
- data/testing-with-2.1.18/app/views/devise/registrations/new.html.erb +0 -19
- data/testing-with-2.1.18/app/views/devise/sessions/new.html.haml +0 -35
- data/testing-with-2.1.18/app/views/devise/shared/_links.html.erb +0 -21
- data/testing-with-2.1.18/app/views/errors/internal_server_error.html.haml +0 -50
- data/testing-with-2.1.18/app/views/errors/not_authorized.html.haml +0 -76
- data/testing-with-2.1.18/app/views/errors/not_found.html.haml +0 -101
- data/testing-with-2.1.18/app/views/errors/unprocessable.html.haml +0 -50
- data/testing-with-2.1.18/app/views/kaminari/_first_page.html.haml +0 -11
- data/testing-with-2.1.18/app/views/kaminari/_gap.html.haml +0 -8
- data/testing-with-2.1.18/app/views/kaminari/_last_page.html.haml +0 -11
- data/testing-with-2.1.18/app/views/kaminari/_next_page.html.haml +0 -11
- data/testing-with-2.1.18/app/views/kaminari/_page.html.haml +0 -10
- data/testing-with-2.1.18/app/views/kaminari/_paginator.html.haml +0 -18
- data/testing-with-2.1.18/app/views/kaminari/_prev_page.html.haml +0 -11
- data/testing-with-2.1.18/app/views/layouts/errors/_head.html.haml +0 -3
- data/testing-with-2.1.18/app/views/layouts/errors/application.html.haml +0 -11
- data/testing-with-2.1.18/app/views/layouts/mailers/mailer.html.haml +0 -3
- data/testing-with-2.1.18/app/views/layouts/mailers/mailer.text.haml +0 -1
- data/testing-with-2.1.18/app/views/layouts/templates/application.html.haml +0 -1
- data/testing-with-2.1.18/app/views/public_activity/layout/_create.html.haml +0 -44
- data/testing-with-2.1.18/app/views/public_activity/layout/_destroy.html.haml +0 -15
- data/testing-with-2.1.18/app/views/public_activity/layout/_update.html.haml +0 -44
- data/testing-with-2.1.18/app/views/public_activity/session/_create.html.haml +0 -13
- data/testing-with-2.1.18/app/views/public_activity/session/_destroy.html.haml +0 -13
- data/testing-with-2.1.18/app/views/templates/kaminari/_first_page.html.haml +0 -9
- data/testing-with-2.1.18/app/views/templates/kaminari/_gap.html.haml +0 -8
- data/testing-with-2.1.18/app/views/templates/kaminari/_last_page.html.haml +0 -9
- data/testing-with-2.1.18/app/views/templates/kaminari/_next_page.html.haml +0 -9
- data/testing-with-2.1.18/app/views/templates/kaminari/_page.html.haml +0 -10
- data/testing-with-2.1.18/app/views/templates/kaminari/_paginator.html.haml +0 -18
- data/testing-with-2.1.18/app/views/templates/kaminari/_prev_page.html.haml +0 -9
- data/testing-with-2.1.18/bin/bundle +0 -3
- data/testing-with-2.1.18/bin/rails +0 -4
- data/testing-with-2.1.18/bin/rake +0 -4
- data/testing-with-2.1.18/bin/setup +0 -29
- data/testing-with-2.1.18/bin/spring +0 -15
- data/testing-with-2.1.18/bin/update +0 -31
- data/testing-with-2.1.18/bin/yarn +0 -11
- data/testing-with-2.1.18/config.ru +0 -4
- data/testing-with-2.1.18/config/application.rb +0 -46
- data/testing-with-2.1.18/config/attachments.yml +0 -24
- data/testing-with-2.1.18/config/boot.rb +0 -7
- data/testing-with-2.1.18/config/circleci/db_config.yml +0 -51
- data/testing-with-2.1.18/config/database.yml +0 -25
- data/testing-with-2.1.18/config/environment.rb +0 -10
- data/testing-with-2.1.18/config/environments/development.rb +0 -61
- data/testing-with-2.1.18/config/environments/production.rb +0 -109
- data/testing-with-2.1.18/config/environments/test.rb +0 -45
- data/testing-with-2.1.18/config/gaAuth/gauth_key.p12 +0 -0
- data/testing-with-2.1.18/config/initializers/assets.rb +0 -14
- data/testing-with-2.1.18/config/initializers/carrierwave.rb +0 -12
- data/testing-with-2.1.18/config/initializers/compression.rb +0 -47
- data/testing-with-2.1.18/config/initializers/cookies_serializer.rb +0 -3
- data/testing-with-2.1.18/config/initializers/date_formats.rb +0 -2
- data/testing-with-2.1.18/config/initializers/devise.rb +0 -259
- data/testing-with-2.1.18/config/initializers/filter_parameter_logging.rb +0 -5
- data/testing-with-2.1.18/config/initializers/inflections.rb +0 -16
- data/testing-with-2.1.18/config/initializers/keppler_configuration.rb +0 -9
- data/testing-with-2.1.18/config/initializers/mime_types.rb +0 -6
- data/testing-with-2.1.18/config/initializers/paginate_kaminari_configuration.rb +0 -12
- data/testing-with-2.1.18/config/initializers/ransack.rb +0 -7
- data/testing-with-2.1.18/config/initializers/rolify.rb +0 -10
- data/testing-with-2.1.18/config/initializers/route_traslator.rb +0 -3
- data/testing-with-2.1.18/config/initializers/session_store.rb +0 -5
- data/testing-with-2.1.18/config/initializers/simple_form.rb +0 -170
- data/testing-with-2.1.18/config/initializers/simple_form_bootstrap.rb +0 -174
- data/testing-with-2.1.18/config/initializers/simple_form_components.rb +0 -61
- data/testing-with-2.1.18/config/initializers/time_formats.rb +0 -2
- data/testing-with-2.1.18/config/initializers/wrap_parameters.rb +0 -15
- data/testing-with-2.1.18/config/jshint.yml +0 -21
- data/testing-with-2.1.18/config/locales/devise.en.yml +0 -61
- data/testing-with-2.1.18/config/locales/devise.es.yml +0 -62
- data/testing-with-2.1.18/config/locales/en.yml +0 -477
- data/testing-with-2.1.18/config/locales/es.yml +0 -510
- data/testing-with-2.1.18/config/locales/routes.en.yml +0 -4
- data/testing-with-2.1.18/config/locales/routes.es.yml +0 -5
- data/testing-with-2.1.18/config/locales/simple_form.en.yml +0 -46
- data/testing-with-2.1.18/config/locales/simple_form.es.yml +0 -96
- data/testing-with-2.1.18/config/locales/social_share_button.es.yml +0 -10
- data/testing-with-2.1.18/config/menu.yml +0 -58
- data/testing-with-2.1.18/config/permissions.yml +0 -39
- data/testing-with-2.1.18/config/puma.rb +0 -56
- data/testing-with-2.1.18/config/roles.yml +0 -2
- data/testing-with-2.1.18/config/routes.rb +0 -191
- data/testing-with-2.1.18/config/settings.yml +0 -30
- data/testing-with-2.1.18/config/sitemap.rb +0 -30
- data/testing-with-2.1.18/config/spring.rb +0 -6
- data/testing-with-2.1.18/db/migrate/20140812203549_devise_create_users.rb +0 -50
- data/testing-with-2.1.18/db/migrate/20140812210925_rolify_create_roles.rb +0 -21
- data/testing-with-2.1.18/db/migrate/20151221173228_create_activities.rb +0 -23
- data/testing-with-2.1.18/db/migrate/20160122201215_create_settings.rb +0 -15
- data/testing-with-2.1.18/db/migrate/20160126141856_create_smtp_settings.rb +0 -15
- data/testing-with-2.1.18/db/migrate/20160128131802_create_scripts.rb +0 -12
- data/testing-with-2.1.18/db/migrate/20160128151351_create_google_analytics_settings.rb +0 -13
- data/testing-with-2.1.18/db/migrate/20160128193740_create_social_accounts.rb +0 -26
- data/testing-with-2.1.18/db/migrate/20160201134918_create_meta_tags.rb +0 -13
- data/testing-with-2.1.18/db/migrate/20160201210520_create_appearances.rb +0 -14
- data/testing-with-2.1.18/db/migrate/20171225023933_create_scaffolds.rb +0 -10
- data/testing-with-2.1.18/db/migrate/20180503174351_create_permissions.rb +0 -11
- data/testing-with-2.1.18/db/migrate/20180717160308_create_keppler_frontend_views.keppler_frontend.rb +0 -17
- data/testing-with-2.1.18/db/migrate/20180730194655_create_keppler_frontend_themes.rb +0 -13
- data/testing-with-2.1.18/db/migrate/20180802184429_create_keppler_capsules_capsules.keppler_capsules.rb +0 -13
- data/testing-with-2.1.18/db/migrate/20180802184430_create_keppler_capsules_capsule_fields.keppler_capsules.rb +0 -12
- data/testing-with-2.1.18/db/migrate/20180806192023_create_keppler_capsules_capsule_validations.keppler_capsules.rb +0 -13
- data/testing-with-2.1.18/db/migrate/20180806203410_create_keppler_frontend_partials.keppler_frontend.rb +0 -13
- data/testing-with-2.1.18/db/migrate/20180807204310_create_keppler_capsules_capsule_associations.keppler_capsules.rb +0 -13
- data/testing-with-2.1.18/db/migrate/20180813160624_create_keppler_languages_languages.keppler_languages.rb +0 -14
- data/testing-with-2.1.18/db/migrate/20180813160625_create_keppler_languages_fields.keppler_languages.rb +0 -14
- data/testing-with-2.1.18/db/migrate/20180818073305_create_active_storage_tables.active_storage.rb +0 -26
- data/testing-with-2.1.18/db/migrate/20180827120841_create_keppler_frontend_callback_functions.keppler_frontend.rb +0 -14
- data/testing-with-2.1.18/db/migrate/20180827154329_create_keppler_frontend_view_callbacks.keppler_frontend.rb +0 -12
- data/testing-with-2.1.18/db/migrate/20180827154647_add_position_to_users_table.rb +0 -5
- data/testing-with-2.1.18/db/migrate/20180830153221_create_keppler_frontend_functions.keppler_frontend.rb +0 -14
- data/testing-with-2.1.18/db/migrate/20180830153222_create_keppler_frontend_parameters.keppler_frontend.rb +0 -13
- data/testing-with-2.1.18/db/migrate/20180904144238_create_seos.rb +0 -11
- data/testing-with-2.1.18/db/seeds.rb +0 -162
- data/testing-with-2.1.18/docs/diagrams/keppler_core/config +0 -0
- data/testing-with-2.1.18/docs/diagrams/keppler_frontend/editor/resources_editor.dia +0 -0
- data/testing-with-2.1.18/docs/diagrams/keppler_frontend/views/create_view.dia +0 -0
- data/testing-with-2.1.18/docs/diagrams/keppler_frontend/views/delete_view.dia +0 -0
- data/testing-with-2.1.18/docs/diagrams/keppler_frontend/views/delete_view.dia.autosave +0 -0
- data/testing-with-2.1.18/lib/generators/install_rocket/USAGE +0 -44
- data/testing-with-2.1.18/lib/generators/install_rocket/install_rocket_generator.rb +0 -107
- data/testing-with-2.1.18/lib/generators/keppler_add_module/USAGE +0 -5
- data/testing-with-2.1.18/lib/generators/keppler_add_module/keppler_add_module_generator.rb +0 -324
- data/testing-with-2.1.18/lib/generators/keppler_add_module/templates/controllers/controller.rb +0 -106
- data/testing-with-2.1.18/lib/generators/keppler_add_module/templates/models/model.rb +0 -29
- data/testing-with-2.1.18/lib/generators/keppler_add_module/templates/policies/policy.rb +0 -11
- data/testing-with-2.1.18/lib/generators/keppler_add_module/templates/views/_description.haml +0 -13
- data/testing-with-2.1.18/lib/generators/keppler_add_module/templates/views/_form.haml +0 -49
- data/testing-with-2.1.18/lib/generators/keppler_add_module/templates/views/_listing.haml +0 -58
- data/testing-with-2.1.18/lib/generators/keppler_add_module/templates/views/edit.haml +0 -1
- data/testing-with-2.1.18/lib/generators/keppler_add_module/templates/views/index.haml +0 -70
- data/testing-with-2.1.18/lib/generators/keppler_add_module/templates/views/new.haml +0 -1
- data/testing-with-2.1.18/lib/generators/keppler_add_module/templates/views/reload.js.haml +0 -5
- data/testing-with-2.1.18/lib/generators/keppler_add_module/templates/views/show.haml +0 -35
- data/testing-with-2.1.18/lib/generators/keppler_delete_module/USAGE +0 -5
- data/testing-with-2.1.18/lib/generators/keppler_delete_module/keppler_delete_module_generator.rb +0 -305
- data/testing-with-2.1.18/lib/generators/keppler_front/keppler_front_generator.rb +0 -139
- data/testing-with-2.1.18/lib/generators/keppler_front/templates/controllers/controller.rb +0 -17
- data/testing-with-2.1.18/lib/generators/keppler_front/templates/views/template.html.haml +0 -225
- data/testing-with-2.1.18/lib/generators/keppler_relation/keppler_relation_generator.rb +0 -219
- data/testing-with-2.1.18/lib/generators/new_rocket/USAGE +0 -44
- data/testing-with-2.1.18/lib/generators/new_rocket/new_rocket_generator.rb +0 -258
- data/testing-with-2.1.18/lib/generators/uninstall_rocket/USAGE +0 -32
- data/testing-with-2.1.18/lib/generators/uninstall_rocket/uninstall_rocket_generator.rb +0 -140
- data/testing-with-2.1.18/lib/keppler_configuration.rb +0 -12
- data/testing-with-2.1.18/lib/plugins/config/locales/en.yml +0 -16
- data/testing-with-2.1.18/lib/plugins/config/locales/es.yml +0 -16
- data/testing-with-2.1.18/lib/plugins/config/menu.yml +0 -16
- data/testing-with-2.1.18/lib/plugins/config/permissions.yml +0 -1
- data/testing-with-2.1.18/lib/plugins/generators/keppler_scaffold/keppler_scaffold_generator.rb +0 -223
- data/testing-with-2.1.18/lib/plugins/generators/keppler_scaffold/templates/controllers/controller.rb +0 -107
- data/testing-with-2.1.18/lib/plugins/generators/keppler_scaffold/templates/models/model.rb +0 -29
- data/testing-with-2.1.18/lib/plugins/generators/keppler_scaffold/templates/policies/policy.rb +0 -14
- data/testing-with-2.1.18/lib/plugins/generators/keppler_scaffold/templates/views/_description.haml +0 -13
- data/testing-with-2.1.18/lib/plugins/generators/keppler_scaffold/templates/views/_form.haml +0 -49
- data/testing-with-2.1.18/lib/plugins/generators/keppler_scaffold/templates/views/_listing.haml +0 -58
- data/testing-with-2.1.18/lib/plugins/generators/keppler_scaffold/templates/views/edit.haml +0 -1
- data/testing-with-2.1.18/lib/plugins/generators/keppler_scaffold/templates/views/index.haml +0 -69
- data/testing-with-2.1.18/lib/plugins/generators/keppler_scaffold/templates/views/new.haml +0 -1
- data/testing-with-2.1.18/lib/plugins/generators/keppler_scaffold/templates/views/reload.js.haml +0 -5
- data/testing-with-2.1.18/lib/plugins/generators/keppler_scaffold/templates/views/show.haml +0 -35
- data/testing-with-2.1.18/lib/plugins/install.rb +0 -151
- data/testing-with-2.1.18/lib/plugins/layouts/application.html.haml +0 -23
- data/testing-with-2.1.18/lib/templates/haml/scaffold/_form.html.haml +0 -10
Binary file
|
@@ -0,0 +1,2221 @@
|
|
1
|
+
/*
|
2
|
+
* jQuery Templates Plugin 1.0.0pre
|
3
|
+
* http://github.com/jquery/jquery-tmpl
|
4
|
+
* Requires jQuery 1.4.2
|
5
|
+
*
|
6
|
+
* Copyright Software Freedom Conservancy, Inc.
|
7
|
+
* Dual licensed under the MIT or GPL Version 2 licenses.
|
8
|
+
* http://jquery.org/license
|
9
|
+
*/
|
10
|
+
|
11
|
+
(function(a){var r=a.fn.domManip,d="_tmplitem",q=/^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,b={},f={},e,p={key:0,data:{}},i=0,c=0,l=[];function g(g,d,h,e){var c={data:e||(e===0||e===false)?e:d?d.data:{},_wrap:d?d._wrap:null,tmpl:null,parent:d||null,nodes:[],calls:u,nest:w,wrap:x,html:v,update:t};g&&a.extend(c,g,{nodes:[],parent:d});if(h){c.tmpl=h;c._ctnt=c._ctnt||c.tmpl(a,c);c.key=++i;(l.length?f:b)[i]=c}return c}a.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(f,d){a.fn[f]=function(n){var g=[],i=a(n),k,h,m,l,j=this.length===1&&this[0].parentNode;e=b||{};if(j&&j.nodeType===11&&j.childNodes.length===1&&i.length===1){i[d](this[0]);g=this}else{for(h=0,m=i.length;h<m;h++){c=h;k=(h>0?this.clone(true):this).get();a(i[h])[d](k);g=g.concat(k)}c=0;g=this.pushStack(g,f,i.selector)}l=e;e=null;a.tmpl.complete(l);return g}});a.fn.extend({tmpl:function(d,c,b){return a.tmpl(this[0],d,c,b)},tmplItem:function(){return a.tmplItem(this[0])},template:function(b){return a.template(b,this[0])},domManip:function(d,m,k){if(d[0]&&a.isArray(d[0])){var g=a.makeArray(arguments),h=d[0],j=h.length,i=0,f;while(i<j&&!(f=a.data(h[i++],"tmplItem")));if(f&&c)g[2]=function(b){a.tmpl.afterManip(this,b,k)};r.apply(this,g)}else r.apply(this,arguments);c=0;!e&&a.tmpl.complete(b);return this}});a.extend({tmpl:function(d,h,e,c){var i,k=!c;if(k){c=p;d=a.template[d]||a.template(null,d);f={}}else if(!d){d=c.tmpl;b[c.key]=c;c.nodes=[];c.wrapped&&n(c,c.wrapped);return a(j(c,null,c.tmpl(a,c)))}if(!d)return[];if(typeof h==="function")h=h.call(c||{});e&&e.wrapped&&n(e,e.wrapped);i=a.isArray(h)?a.map(h,function(a){return a?g(e,c,d,a):null}):[g(e,c,d,h)];return k?a(j(c,null,i)):i},tmplItem:function(b){var c;if(b instanceof a)b=b[0];while(b&&b.nodeType===1&&!(c=a.data(b,"tmplItem"))&&(b=b.parentNode));return c||p},template:function(c,b){if(b){if(typeof b==="string")b=o(b);else if(b instanceof a)b=b[0]||{};if(b.nodeType)b=a.data(b,"tmpl")||a.data(b,"tmpl",o(b.innerHTML));return typeof c==="string"?(a.template[c]=b):b}return c?typeof c!=="string"?a.template(null,c):a.template[c]||a.template(null,q.test(c)?c:a(c)):null},encode:function(a){return(""+a).split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'")}});a.extend(a.tmpl,{tag:{tmpl:{_default:{$2:"null"},open:"if($notnull_1){__=__.concat($item.nest($1,$2));}"},wrap:{_default:{$2:"null"},open:"$item.calls(__,$1,$2);__=[];",close:"call=$item.calls();__=call._.concat($item.wrap(call,__));"},each:{_default:{$2:"$index, $value"},open:"if($notnull_1){$.each($1a,function($2){with(this){",close:"}});}"},"if":{open:"if(($notnull_1) && $1a){",close:"}"},"else":{_default:{$1:"true"},open:"}else if(($notnull_1) && $1a){"},html:{open:"if($notnull_1){__.push($1a);}"},"=":{_default:{$1:"$data"},open:"if($notnull_1){__.push($.encode($1a));}"},"!":{open:""}},complete:function(){b={}},afterManip:function(f,b,d){var e=b.nodeType===11?a.makeArray(b.childNodes):b.nodeType===1?[b]:[];d.call(f,b);m(e);c++}});function j(e,g,f){var b,c=f?a.map(f,function(a){return typeof a==="string"?e.key?a.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,"$1 "+d+'="'+e.key+'" $2'):a:j(a,e,a._ctnt)}):e;if(g)return c;c=c.join("");c.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/,function(f,c,e,d){b=a(e).get();m(b);if(c)b=k(c).concat(b);if(d)b=b.concat(k(d))});return b?b:k(c)}function k(c){var b=document.createElement("div");b.innerHTML=c;return a.makeArray(b.childNodes)}function o(b){return new Function("jQuery","$item","var $=jQuery,call,__=[],$data=$item.data;with($data){__.push('"+a.trim(b).replace(/([\\'])/g,"\\$1").replace(/[\r\t\n]/g," ").replace(/\$\{([^\}]*)\}/g,"{{= $1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g,function(m,l,k,g,b,c,d){var j=a.tmpl.tag[k],i,e,f;if(!j)throw"Unknown template tag: "+k;i=j._default||[];if(c&&!/\w$/.test(b)){b+=c;c=""}if(b){b=h(b);d=d?","+h(d)+")":c?")":"";e=c?b.indexOf(".")>-1?b+h(c):"("+b+").call($item"+d:b;f=c?e:"(typeof("+b+")==='function'?("+b+").call($item):("+b+"))"}else f=e=i.$1||"null";g=h(g);return"');"+j[l?"close":"open"].split("$notnull_1").join(b?"typeof("+b+")!=='undefined' && ("+b+")!=null":"true").split("$1a").join(f).split("$1").join(e).split("$2").join(g||i.$2||"")+"__.push('"})+"');}return __;")}function n(c,b){c._wrap=j(c,true,a.isArray(b)?b:[q.test(b)?b:a(b).html()]).join("")}function h(a){return a?a.replace(/\\'/g,"'").replace(/\\\\/g,"\\"):null}function s(b){var a=document.createElement("div");a.appendChild(b.cloneNode(true));return a.innerHTML}function m(o){var n="_"+c,k,j,l={},e,p,h;for(e=0,p=o.length;e<p;e++){if((k=o[e]).nodeType!==1)continue;j=k.getElementsByTagName("*");for(h=j.length-1;h>=0;h--)m(j[h]);m(k)}function m(j){var p,h=j,k,e,m;if(m=j.getAttribute(d)){while(h.parentNode&&(h=h.parentNode).nodeType===1&&!(p=h.getAttribute(d)));if(p!==m){h=h.parentNode?h.nodeType===11?0:h.getAttribute(d)||0:0;if(!(e=b[m])){e=f[m];e=g(e,b[h]||f[h]);e.key=++i;b[i]=e}c&&o(m)}j.removeAttribute(d)}else if(c&&(e=a.data(j,"tmplItem"))){o(e.key);b[e.key]=e;h=a.data(j.parentNode,"tmplItem");h=h?h.key:0}if(e){k=e;while(k&&k.key!=h){k.nodes.push(j);k=k.parent}delete e._ctnt;delete e._wrap;a.data(j,"tmplItem",e)}function o(a){a=a+n;e=l[a]=l[a]||g(e,b[e.parent.key+n]||e.parent)}}}function u(a,d,c,b){if(!a)return l.pop();l.push({_:a,tmpl:d,item:this,data:c,options:b})}function w(d,c,b){return a.tmpl(a.template(d),c,b,this)}function x(b,d){var c=b.options||{};c.wrapped=d;return a.tmpl(a.template(b.tmpl),b.data,c,b.item)}function v(d,c){var b=this._wrap;return a.map(a(a.isArray(b)?b.join(""):b).filter(d||"*"),function(a){return c?a.innerText||a.textContent:a.outerHTML||s(a)})}function t(){var b=this.nodes;a.tmpl(null,null,null,this).insertBefore(b[0]);a(b).remove()}})(jQuery);
|
12
|
+
/**
|
13
|
+
* http://github.com/valums/file-uploader
|
14
|
+
*
|
15
|
+
* Multiple file upload component with progress-bar, drag-and-drop.
|
16
|
+
* © 2010 Andrew Valums ( andrew(at)valums.com )
|
17
|
+
*
|
18
|
+
* Licensed under GNU GPL 2 or later, see license.txt.
|
19
|
+
*/
|
20
|
+
|
21
|
+
//
|
22
|
+
// Helper functions
|
23
|
+
//
|
24
|
+
|
25
|
+
var qq = qq || {};
|
26
|
+
|
27
|
+
/**
|
28
|
+
* Adds all missing properties from second obj to first obj
|
29
|
+
*/
|
30
|
+
qq.extend = function(first, second){
|
31
|
+
for (var prop in second){
|
32
|
+
first[prop] = second[prop];
|
33
|
+
}
|
34
|
+
};
|
35
|
+
|
36
|
+
/**
|
37
|
+
* Searches for a given element in the array, returns -1 if it is not present.
|
38
|
+
* @param {Number} [from] The index at which to begin the search
|
39
|
+
*/
|
40
|
+
qq.indexOf = function(arr, elt, from){
|
41
|
+
if (arr.indexOf) return arr.indexOf(elt, from);
|
42
|
+
|
43
|
+
from = from || 0;
|
44
|
+
var len = arr.length;
|
45
|
+
|
46
|
+
if (from < 0) from += len;
|
47
|
+
|
48
|
+
for (; from < len; from++){
|
49
|
+
if (from in arr && arr[from] === elt){
|
50
|
+
return from;
|
51
|
+
}
|
52
|
+
}
|
53
|
+
return -1;
|
54
|
+
};
|
55
|
+
|
56
|
+
qq.getUniqueId = (function(){
|
57
|
+
var id = 0;
|
58
|
+
return function(){ return id++; };
|
59
|
+
})();
|
60
|
+
|
61
|
+
//
|
62
|
+
// Events
|
63
|
+
|
64
|
+
qq.attach = function(element, type, fn){
|
65
|
+
if (element.addEventListener){
|
66
|
+
element.addEventListener(type, fn, false);
|
67
|
+
} else if (element.attachEvent){
|
68
|
+
element.attachEvent('on' + type, fn);
|
69
|
+
}
|
70
|
+
};
|
71
|
+
qq.detach = function(element, type, fn){
|
72
|
+
if (element.removeEventListener){
|
73
|
+
element.removeEventListener(type, fn, false);
|
74
|
+
} else if (element.attachEvent){
|
75
|
+
element.detachEvent('on' + type, fn);
|
76
|
+
}
|
77
|
+
};
|
78
|
+
|
79
|
+
qq.preventDefault = function(e){
|
80
|
+
if (e.preventDefault){
|
81
|
+
e.preventDefault();
|
82
|
+
} else{
|
83
|
+
e.returnValue = false;
|
84
|
+
}
|
85
|
+
};
|
86
|
+
|
87
|
+
//
|
88
|
+
// Node manipulations
|
89
|
+
|
90
|
+
/**
|
91
|
+
* Insert node a before node b.
|
92
|
+
*/
|
93
|
+
qq.insertBefore = function(a, b){
|
94
|
+
b.parentNode.insertBefore(a, b);
|
95
|
+
};
|
96
|
+
qq.remove = function(element){
|
97
|
+
element.parentNode.removeChild(element);
|
98
|
+
};
|
99
|
+
|
100
|
+
qq.contains = function(parent, descendant){
|
101
|
+
// compareposition returns false in this case
|
102
|
+
if (parent == descendant) return true;
|
103
|
+
|
104
|
+
if (parent.contains){
|
105
|
+
return parent.contains(descendant);
|
106
|
+
} else {
|
107
|
+
return !!(descendant.compareDocumentPosition(parent) & 8);
|
108
|
+
}
|
109
|
+
};
|
110
|
+
|
111
|
+
/**
|
112
|
+
* Creates and returns element from html string
|
113
|
+
* Uses innerHTML to create an element
|
114
|
+
*/
|
115
|
+
qq.toElement = (function(){
|
116
|
+
var div = document.createElement('div');
|
117
|
+
return function(html){
|
118
|
+
div.innerHTML = html;
|
119
|
+
var element = div.firstChild;
|
120
|
+
div.removeChild(element);
|
121
|
+
return element;
|
122
|
+
};
|
123
|
+
})();
|
124
|
+
|
125
|
+
//
|
126
|
+
// Node properties and attributes
|
127
|
+
|
128
|
+
/**
|
129
|
+
* Sets styles for an element.
|
130
|
+
* Fixes opacity in IE6-8.
|
131
|
+
*/
|
132
|
+
qq.css = function(element, styles){
|
133
|
+
if (styles.opacity != null){
|
134
|
+
if (typeof element.style.opacity != 'string' && typeof(element.filters) != 'undefined'){
|
135
|
+
styles.filter = 'alpha(opacity=' + Math.round(100 * styles.opacity) + ')';
|
136
|
+
}
|
137
|
+
}
|
138
|
+
qq.extend(element.style, styles);
|
139
|
+
};
|
140
|
+
qq.hasClass = function(element, name){
|
141
|
+
var re = new RegExp('(^| )' + name + '( |$)');
|
142
|
+
return re.test(element.className);
|
143
|
+
};
|
144
|
+
qq.addClass = function(element, name){
|
145
|
+
if (!qq.hasClass(element, name)){
|
146
|
+
element.className += ' ' + name;
|
147
|
+
}
|
148
|
+
};
|
149
|
+
qq.removeClass = function(element, name){
|
150
|
+
var re = new RegExp('(^| )' + name + '( |$)');
|
151
|
+
element.className = element.className.replace(re, ' ').replace(/^\s+|\s+$/g, "");
|
152
|
+
};
|
153
|
+
qq.setText = function(element, text){
|
154
|
+
element.innerText = text;
|
155
|
+
element.textContent = text;
|
156
|
+
};
|
157
|
+
|
158
|
+
//
|
159
|
+
// Selecting elements
|
160
|
+
|
161
|
+
qq.children = function(element){
|
162
|
+
var children = [],
|
163
|
+
child = element.firstChild;
|
164
|
+
|
165
|
+
while (child){
|
166
|
+
if (child.nodeType == 1){
|
167
|
+
children.push(child);
|
168
|
+
}
|
169
|
+
child = child.nextSibling;
|
170
|
+
}
|
171
|
+
|
172
|
+
return children;
|
173
|
+
};
|
174
|
+
|
175
|
+
qq.getByClass = function(element, className){
|
176
|
+
if (element.querySelectorAll){
|
177
|
+
return element.querySelectorAll('.' + className);
|
178
|
+
}
|
179
|
+
|
180
|
+
var result = [];
|
181
|
+
var candidates = element.getElementsByTagName("*");
|
182
|
+
var len = candidates.length;
|
183
|
+
|
184
|
+
for (var i = 0; i < len; i++){
|
185
|
+
if (qq.hasClass(candidates[i], className)){
|
186
|
+
result.push(candidates[i]);
|
187
|
+
}
|
188
|
+
}
|
189
|
+
return result;
|
190
|
+
};
|
191
|
+
|
192
|
+
/**
|
193
|
+
* obj2url() takes a json-object as argument and generates
|
194
|
+
* a querystring. pretty much like jQuery.param()
|
195
|
+
*
|
196
|
+
* how to use:
|
197
|
+
*
|
198
|
+
* `qq.obj2url({a:'b',c:'d'},'http://any.url/upload?otherParam=value');`
|
199
|
+
*
|
200
|
+
* will result in:
|
201
|
+
*
|
202
|
+
* `http://any.url/upload?otherParam=value&a=b&c=d`
|
203
|
+
*
|
204
|
+
* @param Object JSON-Object
|
205
|
+
* @param String current querystring-part
|
206
|
+
* @return String encoded querystring
|
207
|
+
*/
|
208
|
+
qq.obj2url = function(obj, temp, prefixDone){
|
209
|
+
var uristrings = [],
|
210
|
+
prefix = '&',
|
211
|
+
add = function(nextObj, i){
|
212
|
+
var nextTemp = temp
|
213
|
+
? (/\[\]$/.test(temp)) // prevent double-encoding
|
214
|
+
? temp
|
215
|
+
: temp+'['+i+']'
|
216
|
+
: i;
|
217
|
+
if ((nextTemp != 'undefined') && (i != 'undefined')) {
|
218
|
+
uristrings.push(
|
219
|
+
(typeof nextObj === 'object')
|
220
|
+
? qq.obj2url(nextObj, nextTemp, true)
|
221
|
+
: (Object.prototype.toString.call(nextObj) === '[object Function]')
|
222
|
+
? encodeURIComponent(nextTemp) + '=' + encodeURIComponent(nextObj())
|
223
|
+
: encodeURIComponent(nextTemp) + '=' + encodeURIComponent(nextObj)
|
224
|
+
);
|
225
|
+
}
|
226
|
+
};
|
227
|
+
|
228
|
+
if (!prefixDone && temp) {
|
229
|
+
prefix = (/\?/.test(temp)) ? (/\?$/.test(temp)) ? '' : '&' : '?';
|
230
|
+
uristrings.push(temp);
|
231
|
+
uristrings.push(qq.obj2url(obj));
|
232
|
+
} else if ((Object.prototype.toString.call(obj) === '[object Array]') && (typeof obj != 'undefined') ) {
|
233
|
+
// we wont use a for-in-loop on an array (performance)
|
234
|
+
for (var i = 0, len = obj.length; i < len; ++i){
|
235
|
+
add(obj[i], i);
|
236
|
+
}
|
237
|
+
} else if ((typeof obj != 'undefined') && (obj !== null) && (typeof obj === "object")){
|
238
|
+
// for anything else but a scalar, we will use for-in-loop
|
239
|
+
for (var i in obj){
|
240
|
+
add(obj[i], i);
|
241
|
+
}
|
242
|
+
} else {
|
243
|
+
uristrings.push(encodeURIComponent(temp) + '=' + encodeURIComponent(obj));
|
244
|
+
}
|
245
|
+
|
246
|
+
return uristrings.join(prefix)
|
247
|
+
.replace(/^&/, '')
|
248
|
+
.replace(/%20/g, '+');
|
249
|
+
};
|
250
|
+
|
251
|
+
//
|
252
|
+
//
|
253
|
+
// Uploader Classes
|
254
|
+
//
|
255
|
+
//
|
256
|
+
|
257
|
+
var qq = qq || {};
|
258
|
+
|
259
|
+
/**
|
260
|
+
* Creates upload button, validates upload, but doesn't create file list or dd.
|
261
|
+
*/
|
262
|
+
qq.FileUploaderBasic = function(o){
|
263
|
+
this._options = {
|
264
|
+
// set to true to see the server response
|
265
|
+
debug: false,
|
266
|
+
action: '/server/upload',
|
267
|
+
params: {},
|
268
|
+
button: null,
|
269
|
+
multiple: true,
|
270
|
+
maxConnections: 3,
|
271
|
+
method: 'POST',
|
272
|
+
fieldName: 'qqfile',
|
273
|
+
// validation
|
274
|
+
allowedExtensions: [],
|
275
|
+
sizeLimit: 0,
|
276
|
+
minSizeLimit: 0,
|
277
|
+
maxFilesCount: 0, // 0 - no limit, works only in multiple mode
|
278
|
+
minFilesCount: 0, // 0 - no limit, works only in multiple mode
|
279
|
+
// events
|
280
|
+
// return false to cancel submit
|
281
|
+
onSubmit: function(id, fileName){},
|
282
|
+
onProgress: function(id, fileName, loaded, total){},
|
283
|
+
onComplete: function(id, fileName, responseJSON){},
|
284
|
+
onCancel: function(id, fileName){},
|
285
|
+
// messages
|
286
|
+
messages: {
|
287
|
+
typeError: "{file} has invalid extension. Only {extensions} are allowed.",
|
288
|
+
sizeError: "{file} is too large, maximum file size is {sizeLimit}.",
|
289
|
+
minSizeError: "{file} is too small, minimum file size is {minSizeLimit}.",
|
290
|
+
emptyError: "{file} is empty, please select files again without it.",
|
291
|
+
onLeave: "The files are being uploaded, if you leave now the upload will be cancelled.",
|
292
|
+
maxFilesError: "You must select less then {maxFilesCount} files.",
|
293
|
+
minFilesError: "You must select more then {minFilesCount} files."
|
294
|
+
},
|
295
|
+
showMessage: function(message){
|
296
|
+
alert(message);
|
297
|
+
}
|
298
|
+
};
|
299
|
+
qq.extend(this._options, o);
|
300
|
+
|
301
|
+
// number of files being uploaded
|
302
|
+
this._filesInProgress = 0;
|
303
|
+
// number of files was processed
|
304
|
+
this._filesUploaded = 0;
|
305
|
+
this._handler = this._createUploadHandler();
|
306
|
+
|
307
|
+
if (this._options.button){
|
308
|
+
this._button = this._createUploadButton(this._options.button);
|
309
|
+
}
|
310
|
+
|
311
|
+
this._preventLeaveInProgress();
|
312
|
+
};
|
313
|
+
|
314
|
+
qq.FileUploaderBasic.prototype = {
|
315
|
+
setParams: function(params){
|
316
|
+
this._options.params = params;
|
317
|
+
},
|
318
|
+
getInProgress: function(){
|
319
|
+
return this._filesInProgress;
|
320
|
+
},
|
321
|
+
_createUploadButton: function(element){
|
322
|
+
var self = this;
|
323
|
+
|
324
|
+
return new qq.UploadButton({
|
325
|
+
element: element,
|
326
|
+
multiple: this._options.multiple && qq.UploadHandlerXhr.isSupported(),
|
327
|
+
onChange: function(input){
|
328
|
+
self._onInputChange(input);
|
329
|
+
}
|
330
|
+
});
|
331
|
+
},
|
332
|
+
_createUploadHandler: function(){
|
333
|
+
var self = this,
|
334
|
+
handlerClass;
|
335
|
+
|
336
|
+
if(qq.UploadHandlerXhr.isSupported()){
|
337
|
+
handlerClass = 'UploadHandlerXhr';
|
338
|
+
} else {
|
339
|
+
handlerClass = 'UploadHandlerForm';
|
340
|
+
}
|
341
|
+
|
342
|
+
var handler = new qq[handlerClass]({
|
343
|
+
debug: this._options.debug,
|
344
|
+
action: this._options.action,
|
345
|
+
maxConnections: this._options.maxConnections,
|
346
|
+
fieldName: this._options.fieldName,
|
347
|
+
method: this._options.method,
|
348
|
+
onProgress: function(id, fileName, loaded, total){
|
349
|
+
self._onProgress(id, fileName, loaded, total);
|
350
|
+
self._options.onProgress(id, fileName, loaded, total);
|
351
|
+
},
|
352
|
+
onComplete: function(id, fileName, result){
|
353
|
+
self._onComplete(id, fileName, result);
|
354
|
+
self._options.onComplete(id, fileName, result);
|
355
|
+
},
|
356
|
+
onCancel: function(id, fileName){
|
357
|
+
self._onCancel(id, fileName);
|
358
|
+
self._options.onCancel(id, fileName);
|
359
|
+
}
|
360
|
+
});
|
361
|
+
|
362
|
+
return handler;
|
363
|
+
},
|
364
|
+
_preventLeaveInProgress: function(){
|
365
|
+
var self = this;
|
366
|
+
|
367
|
+
qq.attach(window, 'beforeunload', function(e){
|
368
|
+
if (!self._filesInProgress){return;}
|
369
|
+
|
370
|
+
var e = e || window.event;
|
371
|
+
// for ie, ff
|
372
|
+
e.returnValue = self._options.messages.onLeave;
|
373
|
+
// for webkit
|
374
|
+
return self._options.messages.onLeave;
|
375
|
+
});
|
376
|
+
},
|
377
|
+
_onSubmit: function(id, fileName){
|
378
|
+
this._filesInProgress++;
|
379
|
+
},
|
380
|
+
_onProgress: function(id, fileName, loaded, total){
|
381
|
+
},
|
382
|
+
_onComplete: function(id, fileName, result){
|
383
|
+
this._filesInProgress--;
|
384
|
+
if (result.error){
|
385
|
+
this._options.showMessage(result.error);
|
386
|
+
} else {
|
387
|
+
this._filesUploaded++;
|
388
|
+
}
|
389
|
+
},
|
390
|
+
_onCancel: function(id, fileName){
|
391
|
+
this._filesInProgress--;
|
392
|
+
},
|
393
|
+
_onInputChange: function(input){
|
394
|
+
if (this._handler instanceof qq.UploadHandlerXhr){
|
395
|
+
this._uploadFileList(input.files);
|
396
|
+
} else {
|
397
|
+
if (this._validateFile(input)){
|
398
|
+
this._uploadFile(input);
|
399
|
+
}
|
400
|
+
}
|
401
|
+
this._button.reset();
|
402
|
+
},
|
403
|
+
_uploadFileList: function(files){
|
404
|
+
if ( this._validateFiles(files) ) {
|
405
|
+
for (var i=0; i<files.length; i++){
|
406
|
+
this._uploadFile(files[i]);
|
407
|
+
}
|
408
|
+
}
|
409
|
+
},
|
410
|
+
_uploadFile: function(fileContainer){
|
411
|
+
var id = this._handler.add(fileContainer);
|
412
|
+
var fileName = this._handler.getName(id);
|
413
|
+
|
414
|
+
if (this._options.onSubmit(id, fileName) !== false){
|
415
|
+
this._onSubmit(id, fileName);
|
416
|
+
this._handler.upload(id, this._options.params);
|
417
|
+
}
|
418
|
+
},
|
419
|
+
_validateFiles: function(files){
|
420
|
+
var uploadedCount = this._filesUploaded + files.length;
|
421
|
+
|
422
|
+
if (this._options.maxFilesCount > 0) {
|
423
|
+
if ( uploadedCount > this._options.maxFilesCount) {
|
424
|
+
this._error('maxFilesError', 'name');
|
425
|
+
return false;
|
426
|
+
}
|
427
|
+
}
|
428
|
+
|
429
|
+
if (this._options.minFilesCount > 0) {
|
430
|
+
if ( uploadedCount < this._options.minFilesCount) {
|
431
|
+
this._error('minFilesError', 'name');
|
432
|
+
return false;
|
433
|
+
}
|
434
|
+
}
|
435
|
+
|
436
|
+
for (var i=0; i<files.length; i++){
|
437
|
+
if ( !this._validateFile(files[i])){
|
438
|
+
return false;
|
439
|
+
}
|
440
|
+
}
|
441
|
+
|
442
|
+
return true;
|
443
|
+
},
|
444
|
+
_validateFile: function(file){
|
445
|
+
var name, size;
|
446
|
+
|
447
|
+
if (file.value){
|
448
|
+
// it is a file input
|
449
|
+
// get input value and remove path to normalize
|
450
|
+
name = file.value.replace(/.*(\/|\\)/, "");
|
451
|
+
} else {
|
452
|
+
// fix missing properties in Safari
|
453
|
+
name = file.fileName != null ? file.fileName : file.name;
|
454
|
+
size = file.fileSize != null ? file.fileSize : file.size;
|
455
|
+
}
|
456
|
+
|
457
|
+
if (! this._isAllowedExtension(name)){
|
458
|
+
this._error('typeError', name);
|
459
|
+
return false;
|
460
|
+
|
461
|
+
} else if (size === 0){
|
462
|
+
this._error('emptyError', name);
|
463
|
+
return false;
|
464
|
+
|
465
|
+
} else if (size && this._options.sizeLimit && size > this._options.sizeLimit){
|
466
|
+
this._error('sizeError', name);
|
467
|
+
return false;
|
468
|
+
|
469
|
+
} else if (size && size < this._options.minSizeLimit){
|
470
|
+
this._error('minSizeError', name);
|
471
|
+
return false;
|
472
|
+
}
|
473
|
+
|
474
|
+
return true;
|
475
|
+
},
|
476
|
+
_error: function(code, fileName){
|
477
|
+
var message = this._options.messages[code];
|
478
|
+
function r(name, replacement){ message = message.replace(name, replacement); }
|
479
|
+
|
480
|
+
r('{file}', this._formatFileName(fileName));
|
481
|
+
r('{extensions}', this._options.allowedExtensions.join(', '));
|
482
|
+
r('{sizeLimit}', this._formatSize(this._options.sizeLimit));
|
483
|
+
r('{minSizeLimit}', this._formatSize(this._options.minSizeLimit));
|
484
|
+
r('{maxFilesCount}', this._options.maxFilesCount);
|
485
|
+
r('{minFilesCount}', this._options.minFilesCount);
|
486
|
+
|
487
|
+
this._options.showMessage(message);
|
488
|
+
},
|
489
|
+
_formatFileName: function(name){
|
490
|
+
if (name.length > 33){
|
491
|
+
name = name.slice(0, 19) + '...' + name.slice(-13);
|
492
|
+
}
|
493
|
+
return name;
|
494
|
+
},
|
495
|
+
_isAllowedExtension: function(fileName){
|
496
|
+
var ext = (-1 !== fileName.indexOf('.')) ? fileName.replace(/.*[.]/, '').toLowerCase() : '';
|
497
|
+
var allowed = this._options.allowedExtensions;
|
498
|
+
|
499
|
+
if (!allowed.length){return true;}
|
500
|
+
|
501
|
+
for (var i=0; i<allowed.length; i++){
|
502
|
+
if (allowed[i].toLowerCase() == ext){ return true;}
|
503
|
+
}
|
504
|
+
|
505
|
+
return false;
|
506
|
+
},
|
507
|
+
_formatSize: function(bytes){
|
508
|
+
var i = -1;
|
509
|
+
do {
|
510
|
+
bytes = bytes / 1024;
|
511
|
+
i++;
|
512
|
+
} while (bytes > 99);
|
513
|
+
|
514
|
+
return Math.max(bytes, 0.1).toFixed(1) + ['kB', 'MB', 'GB', 'TB', 'PB', 'EB'][i];
|
515
|
+
}
|
516
|
+
};
|
517
|
+
|
518
|
+
|
519
|
+
/**
|
520
|
+
* Class that creates upload widget with drag-and-drop and file list
|
521
|
+
* @inherits qq.FileUploaderBasic
|
522
|
+
*/
|
523
|
+
qq.FileUploader = function(o){
|
524
|
+
// call parent constructor
|
525
|
+
qq.FileUploaderBasic.apply(this, arguments);
|
526
|
+
|
527
|
+
// additional options
|
528
|
+
qq.extend(this._options, {
|
529
|
+
element: null,
|
530
|
+
// if set, will be used instead of qq-upload-list in template
|
531
|
+
listElement: null,
|
532
|
+
|
533
|
+
template: '<div class="qq-uploader">' +
|
534
|
+
'<div class="qq-upload-drop-area"><span>Drop files here to upload</span></div>' +
|
535
|
+
'<div class="qq-upload-button">Upload a file</div>' +
|
536
|
+
'<ul class="qq-upload-list"></ul>' +
|
537
|
+
'</div>',
|
538
|
+
|
539
|
+
// template for one item in file list
|
540
|
+
fileTemplate: '<li>' +
|
541
|
+
'<span class="qq-upload-file"></span>' +
|
542
|
+
'<span class="qq-upload-spinner"></span>' +
|
543
|
+
'<span class="qq-upload-size"></span>' +
|
544
|
+
'<a class="qq-upload-cancel" href="#">Cancel</a>' +
|
545
|
+
'<span class="qq-upload-failed-text">Failed</span>' +
|
546
|
+
'</li>',
|
547
|
+
|
548
|
+
classes: {
|
549
|
+
// used to get elements from templates
|
550
|
+
button: 'qq-upload-button',
|
551
|
+
drop: 'qq-upload-drop-area',
|
552
|
+
dropActive: 'qq-upload-drop-area-active',
|
553
|
+
list: 'qq-upload-list',
|
554
|
+
|
555
|
+
file: 'qq-upload-file',
|
556
|
+
spinner: 'qq-upload-spinner',
|
557
|
+
size: 'qq-upload-size',
|
558
|
+
cancel: 'qq-upload-cancel',
|
559
|
+
|
560
|
+
// added to list item when upload completes
|
561
|
+
// used in css to hide progress spinner
|
562
|
+
success: 'qq-upload-success',
|
563
|
+
fail: 'qq-upload-fail'
|
564
|
+
}
|
565
|
+
});
|
566
|
+
// overwrite options with user supplied
|
567
|
+
qq.extend(this._options, o);
|
568
|
+
|
569
|
+
this._element = this._options.element;
|
570
|
+
this._element.innerHTML = this._options.template;
|
571
|
+
this._listElement = this._options.listElement || this._find(this._element, 'list');
|
572
|
+
|
573
|
+
this._classes = this._options.classes;
|
574
|
+
|
575
|
+
this._button = this._createUploadButton(this._find(this._element, 'button'));
|
576
|
+
|
577
|
+
this._bindCancelEvent();
|
578
|
+
this._setupDragDrop();
|
579
|
+
};
|
580
|
+
|
581
|
+
// inherit from Basic Uploader
|
582
|
+
qq.extend(qq.FileUploader.prototype, qq.FileUploaderBasic.prototype);
|
583
|
+
|
584
|
+
qq.extend(qq.FileUploader.prototype, {
|
585
|
+
/**
|
586
|
+
* Gets one of the elements listed in this._options.classes
|
587
|
+
**/
|
588
|
+
_find: function(parent, type){
|
589
|
+
var element = qq.getByClass(parent, this._options.classes[type])[0];
|
590
|
+
if (!element){
|
591
|
+
throw new Error('element not found ' + type);
|
592
|
+
}
|
593
|
+
|
594
|
+
return element;
|
595
|
+
},
|
596
|
+
_setupDragDrop: function(){
|
597
|
+
var self = this,
|
598
|
+
dropArea = this._find(this._element, 'drop');
|
599
|
+
|
600
|
+
var dz = new qq.UploadDropZone({
|
601
|
+
element: dropArea,
|
602
|
+
onEnter: function(e){
|
603
|
+
qq.addClass(dropArea, self._classes.dropActive);
|
604
|
+
e.stopPropagation();
|
605
|
+
},
|
606
|
+
onLeave: function(e){
|
607
|
+
e.stopPropagation();
|
608
|
+
},
|
609
|
+
onLeaveNotDescendants: function(e){
|
610
|
+
qq.removeClass(dropArea, self._classes.dropActive);
|
611
|
+
},
|
612
|
+
onDrop: function(e){
|
613
|
+
dropArea.style.display = 'none';
|
614
|
+
qq.removeClass(dropArea, self._classes.dropActive);
|
615
|
+
self._uploadFileList(e.dataTransfer.files);
|
616
|
+
}
|
617
|
+
});
|
618
|
+
|
619
|
+
dropArea.style.display = 'none';
|
620
|
+
|
621
|
+
qq.attach(document, 'dragenter', function(e){
|
622
|
+
if (!dz._isValidFileDrag(e)) return;
|
623
|
+
|
624
|
+
dropArea.style.display = 'block';
|
625
|
+
});
|
626
|
+
qq.attach(document, 'dragleave', function(e){
|
627
|
+
if (!dz._isValidFileDrag(e)) return;
|
628
|
+
|
629
|
+
var relatedTarget = document.elementFromPoint(e.clientX, e.clientY);
|
630
|
+
// only fire when leaving document out
|
631
|
+
if ( ! relatedTarget || relatedTarget.nodeName == "HTML"){
|
632
|
+
dropArea.style.display = 'none';
|
633
|
+
}
|
634
|
+
});
|
635
|
+
},
|
636
|
+
_onSubmit: function(id, fileName){
|
637
|
+
qq.FileUploaderBasic.prototype._onSubmit.apply(this, arguments);
|
638
|
+
this._addToList(id, fileName);
|
639
|
+
},
|
640
|
+
_onProgress: function(id, fileName, loaded, total){
|
641
|
+
qq.FileUploaderBasic.prototype._onProgress.apply(this, arguments);
|
642
|
+
|
643
|
+
var item = this._getItemByFileId(id);
|
644
|
+
var size = this._find(item, 'size');
|
645
|
+
size.style.display = 'inline';
|
646
|
+
|
647
|
+
var text;
|
648
|
+
if (loaded != total){
|
649
|
+
text = Math.round(loaded / total * 100) + '% from ' + this._formatSize(total);
|
650
|
+
} else {
|
651
|
+
text = this._formatSize(total);
|
652
|
+
}
|
653
|
+
|
654
|
+
qq.setText(size, text);
|
655
|
+
},
|
656
|
+
_onComplete: function(id, fileName, result){
|
657
|
+
qq.FileUploaderBasic.prototype._onComplete.apply(this, arguments);
|
658
|
+
|
659
|
+
// mark completed
|
660
|
+
var item = this._getItemByFileId(id);
|
661
|
+
qq.remove(this._find(item, 'cancel'));
|
662
|
+
qq.remove(this._find(item, 'spinner'));
|
663
|
+
|
664
|
+
if (result.success){
|
665
|
+
qq.addClass(item, this._classes.success);
|
666
|
+
} else {
|
667
|
+
qq.addClass(item, this._classes.fail);
|
668
|
+
}
|
669
|
+
},
|
670
|
+
_addToList: function(id, fileName){
|
671
|
+
var item = qq.toElement(this._options.fileTemplate);
|
672
|
+
item.qqFileId = id;
|
673
|
+
|
674
|
+
var fileElement = this._find(item, 'file');
|
675
|
+
qq.setText(fileElement, this._formatFileName(fileName));
|
676
|
+
this._find(item, 'size').style.display = 'none';
|
677
|
+
|
678
|
+
this._listElement.appendChild(item);
|
679
|
+
},
|
680
|
+
_getItemByFileId: function(id){
|
681
|
+
var item = this._listElement.firstChild;
|
682
|
+
|
683
|
+
// there can't be txt nodes in dynamically created list
|
684
|
+
// and we can use nextSibling
|
685
|
+
while (item){
|
686
|
+
if (item.qqFileId == id) return item;
|
687
|
+
item = item.nextSibling;
|
688
|
+
}
|
689
|
+
},
|
690
|
+
/**
|
691
|
+
* delegate click event for cancel link
|
692
|
+
**/
|
693
|
+
_bindCancelEvent: function(){
|
694
|
+
var self = this,
|
695
|
+
list = this._listElement;
|
696
|
+
|
697
|
+
qq.attach(list, 'click', function(e){
|
698
|
+
e = e || window.event;
|
699
|
+
var target = e.target || e.srcElement;
|
700
|
+
|
701
|
+
if (qq.hasClass(target, self._classes.cancel)){
|
702
|
+
qq.preventDefault(e);
|
703
|
+
|
704
|
+
var item = target.parentNode;
|
705
|
+
self._handler.cancel(item.qqFileId);
|
706
|
+
qq.remove(item);
|
707
|
+
}
|
708
|
+
});
|
709
|
+
}
|
710
|
+
});
|
711
|
+
|
712
|
+
qq.UploadDropZone = function(o){
|
713
|
+
this._options = {
|
714
|
+
element: null,
|
715
|
+
onEnter: function(e){},
|
716
|
+
onLeave: function(e){},
|
717
|
+
// is not fired when leaving element by hovering descendants
|
718
|
+
onLeaveNotDescendants: function(e){},
|
719
|
+
onDrop: function(e){}
|
720
|
+
};
|
721
|
+
qq.extend(this._options, o);
|
722
|
+
|
723
|
+
this._element = this._options.element;
|
724
|
+
|
725
|
+
this._disableDropOutside();
|
726
|
+
this._attachEvents();
|
727
|
+
};
|
728
|
+
|
729
|
+
qq.UploadDropZone.prototype = {
|
730
|
+
_disableDropOutside: function(e){
|
731
|
+
// run only once for all instances
|
732
|
+
if (!qq.UploadDropZone.dropOutsideDisabled ){
|
733
|
+
|
734
|
+
qq.attach(document, 'dragover', function(e){
|
735
|
+
if (e.dataTransfer){
|
736
|
+
e.dataTransfer.dropEffect = 'none';
|
737
|
+
e.preventDefault();
|
738
|
+
}
|
739
|
+
});
|
740
|
+
|
741
|
+
qq.UploadDropZone.dropOutsideDisabled = true;
|
742
|
+
}
|
743
|
+
},
|
744
|
+
_attachEvents: function(){
|
745
|
+
var self = this;
|
746
|
+
|
747
|
+
qq.attach(self._element, 'dragover', function(e){
|
748
|
+
if (!self._isValidFileDrag(e)) return;
|
749
|
+
|
750
|
+
var effect = e.dataTransfer.effectAllowed;
|
751
|
+
if (effect == 'move' || effect == 'linkMove'){
|
752
|
+
e.dataTransfer.dropEffect = 'move'; // for FF (only move allowed)
|
753
|
+
} else {
|
754
|
+
e.dataTransfer.dropEffect = 'copy'; // for Chrome
|
755
|
+
}
|
756
|
+
|
757
|
+
e.stopPropagation();
|
758
|
+
e.preventDefault();
|
759
|
+
});
|
760
|
+
|
761
|
+
qq.attach(self._element, 'dragenter', function(e){
|
762
|
+
if (!self._isValidFileDrag(e)) return;
|
763
|
+
|
764
|
+
self._options.onEnter(e);
|
765
|
+
});
|
766
|
+
|
767
|
+
qq.attach(self._element, 'dragleave', function(e){
|
768
|
+
if (!self._isValidFileDrag(e)) return;
|
769
|
+
|
770
|
+
self._options.onLeave(e);
|
771
|
+
|
772
|
+
var relatedTarget = document.elementFromPoint(e.clientX, e.clientY);
|
773
|
+
// do not fire when moving a mouse over a descendant
|
774
|
+
if (qq.contains(this, relatedTarget)) return;
|
775
|
+
|
776
|
+
self._options.onLeaveNotDescendants(e);
|
777
|
+
});
|
778
|
+
|
779
|
+
qq.attach(self._element, 'drop', function(e){
|
780
|
+
if (!self._isValidFileDrag(e)) return;
|
781
|
+
|
782
|
+
e.preventDefault();
|
783
|
+
self._options.onDrop(e);
|
784
|
+
});
|
785
|
+
},
|
786
|
+
_isValidFileDrag: function(e){
|
787
|
+
var dt = e.dataTransfer,
|
788
|
+
// do not check dt.types.contains in webkit, because it crashes safari 4
|
789
|
+
isWebkit = navigator.userAgent.indexOf("AppleWebKit") > -1;
|
790
|
+
|
791
|
+
// dt.effectAllowed is none in Safari 5
|
792
|
+
// dt.types.contains check is for firefox
|
793
|
+
return dt && dt.effectAllowed != 'none' &&
|
794
|
+
(dt.files || (!isWebkit && dt.types.contains && dt.types.contains('Files')));
|
795
|
+
|
796
|
+
}
|
797
|
+
};
|
798
|
+
|
799
|
+
qq.UploadButton = function(o){
|
800
|
+
this._options = {
|
801
|
+
element: null,
|
802
|
+
// if set to true adds multiple attribute to file input
|
803
|
+
multiple: false,
|
804
|
+
// name attribute of file input
|
805
|
+
name: 'file',
|
806
|
+
onChange: function(input){},
|
807
|
+
hoverClass: 'qq-upload-button-hover',
|
808
|
+
focusClass: 'qq-upload-button-focus'
|
809
|
+
};
|
810
|
+
|
811
|
+
qq.extend(this._options, o);
|
812
|
+
|
813
|
+
this._element = this._options.element;
|
814
|
+
|
815
|
+
// make button suitable container for input
|
816
|
+
qq.css(this._element, {
|
817
|
+
position: 'relative',
|
818
|
+
overflow: 'hidden',
|
819
|
+
// Make sure browse button is in the right side
|
820
|
+
// in Internet Explorer
|
821
|
+
direction: 'ltr'
|
822
|
+
});
|
823
|
+
|
824
|
+
this._input = this._createInput();
|
825
|
+
};
|
826
|
+
|
827
|
+
qq.UploadButton.prototype = {
|
828
|
+
/* returns file input element */
|
829
|
+
getInput: function(){
|
830
|
+
return this._input;
|
831
|
+
},
|
832
|
+
/* cleans/recreates the file input */
|
833
|
+
reset: function(){
|
834
|
+
if (this._input.parentNode){
|
835
|
+
qq.remove(this._input);
|
836
|
+
}
|
837
|
+
|
838
|
+
qq.removeClass(this._element, this._options.focusClass);
|
839
|
+
this._input = this._createInput();
|
840
|
+
},
|
841
|
+
_createInput: function(){
|
842
|
+
var input = document.createElement("input");
|
843
|
+
|
844
|
+
if (this._options.multiple){
|
845
|
+
input.setAttribute("multiple", "multiple");
|
846
|
+
}
|
847
|
+
|
848
|
+
input.setAttribute("type", "file");
|
849
|
+
input.setAttribute("name", this._options.name);
|
850
|
+
|
851
|
+
qq.css(input, {
|
852
|
+
position: 'absolute',
|
853
|
+
// in Opera only 'browse' button
|
854
|
+
// is clickable and it is located at
|
855
|
+
// the right side of the input
|
856
|
+
right: 0,
|
857
|
+
top: 0,
|
858
|
+
fontFamily: 'Arial',
|
859
|
+
// 4 persons reported this, the max values that worked for them were 243, 236, 236, 118
|
860
|
+
fontSize: '118px',
|
861
|
+
margin: 0,
|
862
|
+
padding: 0,
|
863
|
+
cursor: 'pointer',
|
864
|
+
opacity: 0
|
865
|
+
});
|
866
|
+
|
867
|
+
this._element.appendChild(input);
|
868
|
+
|
869
|
+
var self = this;
|
870
|
+
qq.attach(input, 'change', function(){
|
871
|
+
self._options.onChange(input);
|
872
|
+
});
|
873
|
+
|
874
|
+
qq.attach(input, 'mouseover', function(){
|
875
|
+
qq.addClass(self._element, self._options.hoverClass);
|
876
|
+
});
|
877
|
+
qq.attach(input, 'mouseout', function(){
|
878
|
+
qq.removeClass(self._element, self._options.hoverClass);
|
879
|
+
});
|
880
|
+
qq.attach(input, 'focus', function(){
|
881
|
+
qq.addClass(self._element, self._options.focusClass);
|
882
|
+
});
|
883
|
+
qq.attach(input, 'blur', function(){
|
884
|
+
qq.removeClass(self._element, self._options.focusClass);
|
885
|
+
});
|
886
|
+
|
887
|
+
// IE and Opera, unfortunately have 2 tab stops on file input
|
888
|
+
// which is unacceptable in our case, disable keyboard access
|
889
|
+
if (window.attachEvent){
|
890
|
+
// it is IE or Opera
|
891
|
+
input.setAttribute('tabIndex', "-1");
|
892
|
+
}
|
893
|
+
|
894
|
+
return input;
|
895
|
+
}
|
896
|
+
};
|
897
|
+
|
898
|
+
/**
|
899
|
+
* Class for uploading files, uploading itself is handled by child classes
|
900
|
+
*/
|
901
|
+
qq.UploadHandlerAbstract = function(o){
|
902
|
+
this._options = {
|
903
|
+
debug: false,
|
904
|
+
action: '/upload.php',
|
905
|
+
method: 'POST',
|
906
|
+
fieldName: 'qqfile',
|
907
|
+
// maximum number of concurrent uploads
|
908
|
+
maxConnections: 999,
|
909
|
+
onProgress: function(id, fileName, loaded, total){},
|
910
|
+
onComplete: function(id, fileName, response){},
|
911
|
+
onCancel: function(id, fileName){}
|
912
|
+
};
|
913
|
+
qq.extend(this._options, o);
|
914
|
+
|
915
|
+
this._queue = [];
|
916
|
+
// params for files in queue
|
917
|
+
this._params = [];
|
918
|
+
};
|
919
|
+
qq.UploadHandlerAbstract.prototype = {
|
920
|
+
log: function(str){
|
921
|
+
if (this._options.debug && window.console) console.log('[uploader] ' + str);
|
922
|
+
},
|
923
|
+
/**
|
924
|
+
* Adds file or file input to the queue
|
925
|
+
* @returns id
|
926
|
+
**/
|
927
|
+
add: function(file){},
|
928
|
+
/**
|
929
|
+
* Sends the file identified by id and additional query params to the server
|
930
|
+
*/
|
931
|
+
upload: function(id, params){
|
932
|
+
var len = this._queue.push(id);
|
933
|
+
|
934
|
+
var copy = {};
|
935
|
+
qq.extend(copy, params);
|
936
|
+
this._params[id] = copy;
|
937
|
+
|
938
|
+
// if too many active uploads, wait...
|
939
|
+
if (len <= this._options.maxConnections){
|
940
|
+
this._upload(id, this._params[id]);
|
941
|
+
}
|
942
|
+
},
|
943
|
+
/**
|
944
|
+
* Cancels file upload by id
|
945
|
+
*/
|
946
|
+
cancel: function(id){
|
947
|
+
this._cancel(id);
|
948
|
+
this._dequeue(id);
|
949
|
+
},
|
950
|
+
/**
|
951
|
+
* Cancells all uploads
|
952
|
+
*/
|
953
|
+
cancelAll: function(){
|
954
|
+
for (var i=0; i<this._queue.length; i++){
|
955
|
+
this._cancel(this._queue[i]);
|
956
|
+
}
|
957
|
+
this._queue = [];
|
958
|
+
},
|
959
|
+
/**
|
960
|
+
* Returns name of the file identified by id
|
961
|
+
*/
|
962
|
+
getName: function(id){},
|
963
|
+
/**
|
964
|
+
* Returns size of the file identified by id
|
965
|
+
*/
|
966
|
+
getSize: function(id){},
|
967
|
+
/**
|
968
|
+
* Returns id of files being uploaded or
|
969
|
+
* waiting for their turn
|
970
|
+
*/
|
971
|
+
getQueue: function(){
|
972
|
+
return this._queue;
|
973
|
+
},
|
974
|
+
/**
|
975
|
+
* Actual upload method
|
976
|
+
*/
|
977
|
+
_upload: function(id){},
|
978
|
+
/**
|
979
|
+
* Actual cancel method
|
980
|
+
*/
|
981
|
+
_cancel: function(id){},
|
982
|
+
/**
|
983
|
+
* Removes element from queue, starts upload of next
|
984
|
+
*/
|
985
|
+
_dequeue: function(id){
|
986
|
+
var i = qq.indexOf(this._queue, id);
|
987
|
+
this._queue.splice(i, 1);
|
988
|
+
|
989
|
+
var max = this._options.maxConnections;
|
990
|
+
|
991
|
+
if (this._queue.length >= max && i < max){
|
992
|
+
var nextId = this._queue[max-1];
|
993
|
+
this._upload(nextId, this._params[nextId]);
|
994
|
+
}
|
995
|
+
}
|
996
|
+
};
|
997
|
+
|
998
|
+
/**
|
999
|
+
* Class for uploading files using form and iframe
|
1000
|
+
* @inherits qq.UploadHandlerAbstract
|
1001
|
+
*/
|
1002
|
+
qq.UploadHandlerForm = function(o){
|
1003
|
+
qq.UploadHandlerAbstract.apply(this, arguments);
|
1004
|
+
|
1005
|
+
this._inputs = {};
|
1006
|
+
};
|
1007
|
+
// @inherits qq.UploadHandlerAbstract
|
1008
|
+
qq.extend(qq.UploadHandlerForm.prototype, qq.UploadHandlerAbstract.prototype);
|
1009
|
+
|
1010
|
+
qq.extend(qq.UploadHandlerForm.prototype, {
|
1011
|
+
add: function(fileInput){
|
1012
|
+
fileInput.setAttribute('name', this._options.fieldName);
|
1013
|
+
var id = 'qq-upload-handler-iframe' + qq.getUniqueId();
|
1014
|
+
|
1015
|
+
this._inputs[id] = fileInput;
|
1016
|
+
|
1017
|
+
// remove file input from DOM
|
1018
|
+
if (fileInput.parentNode){
|
1019
|
+
qq.remove(fileInput);
|
1020
|
+
}
|
1021
|
+
|
1022
|
+
return id;
|
1023
|
+
},
|
1024
|
+
getName: function(id){
|
1025
|
+
// get input value and remove path to normalize
|
1026
|
+
return this._inputs[id].value.replace(/.*(\/|\\)/, "");
|
1027
|
+
},
|
1028
|
+
_cancel: function(id){
|
1029
|
+
this._options.onCancel(id, this.getName(id));
|
1030
|
+
|
1031
|
+
delete this._inputs[id];
|
1032
|
+
|
1033
|
+
var iframe = document.getElementById(id);
|
1034
|
+
if (iframe){
|
1035
|
+
// to cancel request set src to something else
|
1036
|
+
// we use src="javascript:false;" because it doesn't
|
1037
|
+
// trigger ie6 prompt on https
|
1038
|
+
iframe.setAttribute('src', 'javascript:false;');
|
1039
|
+
|
1040
|
+
qq.remove(iframe);
|
1041
|
+
}
|
1042
|
+
},
|
1043
|
+
_upload: function(id, params){
|
1044
|
+
var input = this._inputs[id];
|
1045
|
+
|
1046
|
+
if (!input){
|
1047
|
+
throw new Error('file with passed id was not added, or already uploaded or cancelled');
|
1048
|
+
}
|
1049
|
+
|
1050
|
+
var fileName = this.getName(id);
|
1051
|
+
|
1052
|
+
var iframe = this._createIframe(id);
|
1053
|
+
var form = this._createForm(iframe, params);
|
1054
|
+
form.appendChild(input);
|
1055
|
+
|
1056
|
+
var self = this;
|
1057
|
+
this._attachLoadEvent(iframe, function(){
|
1058
|
+
self.log('iframe loaded');
|
1059
|
+
|
1060
|
+
var response = self._getIframeContentJSON(iframe);
|
1061
|
+
|
1062
|
+
self._options.onComplete(id, fileName, response);
|
1063
|
+
self._dequeue(id);
|
1064
|
+
|
1065
|
+
delete self._inputs[id];
|
1066
|
+
// timeout added to fix busy state in FF3.6
|
1067
|
+
setTimeout(function(){
|
1068
|
+
qq.remove(iframe);
|
1069
|
+
}, 1);
|
1070
|
+
});
|
1071
|
+
|
1072
|
+
form.submit();
|
1073
|
+
qq.remove(form);
|
1074
|
+
|
1075
|
+
return id;
|
1076
|
+
},
|
1077
|
+
_attachLoadEvent: function(iframe, callback){
|
1078
|
+
qq.attach(iframe, 'load', function(){
|
1079
|
+
// when we remove iframe from dom
|
1080
|
+
// the request stops, but in IE load
|
1081
|
+
// event fires
|
1082
|
+
if (!iframe.parentNode){
|
1083
|
+
return;
|
1084
|
+
}
|
1085
|
+
|
1086
|
+
// fixing Opera 10.53
|
1087
|
+
if (iframe.contentDocument &&
|
1088
|
+
iframe.contentDocument.body &&
|
1089
|
+
iframe.contentDocument.body.innerHTML == "false"){
|
1090
|
+
// In Opera event is fired second time
|
1091
|
+
// when body.innerHTML changed from false
|
1092
|
+
// to server response approx. after 1 sec
|
1093
|
+
// when we upload file with iframe
|
1094
|
+
return;
|
1095
|
+
}
|
1096
|
+
|
1097
|
+
callback();
|
1098
|
+
});
|
1099
|
+
},
|
1100
|
+
/**
|
1101
|
+
* Returns json object received by iframe from server.
|
1102
|
+
*/
|
1103
|
+
_getIframeContentJSON: function(iframe){
|
1104
|
+
// iframe.contentWindow.document - for IE<7
|
1105
|
+
var doc = iframe.contentDocument ? iframe.contentDocument: iframe.contentWindow.document,
|
1106
|
+
response;
|
1107
|
+
|
1108
|
+
this.log("converting iframe's innerHTML to JSON");
|
1109
|
+
this.log("innerHTML = " + doc.body.innerHTML);
|
1110
|
+
|
1111
|
+
try {
|
1112
|
+
response = eval("(" + doc.body.innerHTML + ")");
|
1113
|
+
} catch(err){
|
1114
|
+
response = {};
|
1115
|
+
}
|
1116
|
+
|
1117
|
+
return response;
|
1118
|
+
},
|
1119
|
+
/**
|
1120
|
+
* Creates iframe with unique name
|
1121
|
+
*/
|
1122
|
+
_createIframe: function(id){
|
1123
|
+
// We can't use following code as the name attribute
|
1124
|
+
// won't be properly registered in IE6, and new window
|
1125
|
+
// on form submit will open
|
1126
|
+
// var iframe = document.createElement('iframe');
|
1127
|
+
// iframe.setAttribute('name', id);
|
1128
|
+
|
1129
|
+
var iframe = qq.toElement('<iframe src="javascript:false;" name="' + id + '" />');
|
1130
|
+
// src="javascript:false;" removes ie6 prompt on https
|
1131
|
+
|
1132
|
+
iframe.setAttribute('id', id);
|
1133
|
+
|
1134
|
+
iframe.style.display = 'none';
|
1135
|
+
document.body.appendChild(iframe);
|
1136
|
+
|
1137
|
+
return iframe;
|
1138
|
+
},
|
1139
|
+
/**
|
1140
|
+
* Creates form, that will be submitted to iframe
|
1141
|
+
*/
|
1142
|
+
_createForm: function(iframe, params){
|
1143
|
+
// We can't use the following code in IE6
|
1144
|
+
// var form = document.createElement('form');
|
1145
|
+
// form.setAttribute('method', 'post');
|
1146
|
+
// form.setAttribute('enctype', 'multipart/form-data');
|
1147
|
+
// Because in this case file won't be attached to request
|
1148
|
+
var form = qq.toElement('<form enctype="multipart/form-data"></form>');
|
1149
|
+
|
1150
|
+
var queryString = qq.obj2url(params, this._options.action);
|
1151
|
+
|
1152
|
+
form.setAttribute('method', this._options.method);
|
1153
|
+
form.setAttribute('action', queryString);
|
1154
|
+
form.setAttribute('target', iframe.name);
|
1155
|
+
form.style.display = 'none';
|
1156
|
+
|
1157
|
+
// Rails CSRFProtection
|
1158
|
+
var token = $('meta[name="csrf-token"]').attr('content');
|
1159
|
+
var param = $('meta[name="csrf-param"]').attr('content');
|
1160
|
+
var input = qq.toElement('<input type="hidden" />');
|
1161
|
+
|
1162
|
+
input.setAttribute('name', param);
|
1163
|
+
input.setAttribute('value', token);
|
1164
|
+
|
1165
|
+
form.appendChild(input);
|
1166
|
+
document.body.appendChild(form);
|
1167
|
+
|
1168
|
+
return form;
|
1169
|
+
}
|
1170
|
+
});
|
1171
|
+
|
1172
|
+
/**
|
1173
|
+
* Class for uploading files using xhr
|
1174
|
+
* @inherits qq.UploadHandlerAbstract
|
1175
|
+
*/
|
1176
|
+
qq.UploadHandlerXhr = function(o){
|
1177
|
+
qq.UploadHandlerAbstract.apply(this, arguments);
|
1178
|
+
|
1179
|
+
this._files = [];
|
1180
|
+
this._xhrs = [];
|
1181
|
+
|
1182
|
+
// current loaded size in bytes for each file
|
1183
|
+
this._loaded = [];
|
1184
|
+
};
|
1185
|
+
|
1186
|
+
// static method
|
1187
|
+
qq.UploadHandlerXhr.isSupported = function(){
|
1188
|
+
var input = document.createElement('input');
|
1189
|
+
input.type = 'file';
|
1190
|
+
|
1191
|
+
return (
|
1192
|
+
'multiple' in input &&
|
1193
|
+
typeof File != "undefined" &&
|
1194
|
+
typeof (new XMLHttpRequest()).upload != "undefined" );
|
1195
|
+
};
|
1196
|
+
|
1197
|
+
// @inherits qq.UploadHandlerAbstract
|
1198
|
+
qq.extend(qq.UploadHandlerXhr.prototype, qq.UploadHandlerAbstract.prototype)
|
1199
|
+
|
1200
|
+
qq.extend(qq.UploadHandlerXhr.prototype, {
|
1201
|
+
/**
|
1202
|
+
* Adds file to the queue
|
1203
|
+
* Returns id to use with upload, cancel
|
1204
|
+
**/
|
1205
|
+
add: function(file){
|
1206
|
+
if (!(file instanceof File)){
|
1207
|
+
throw new Error('Passed obj in not a File (in qq.UploadHandlerXhr)');
|
1208
|
+
}
|
1209
|
+
|
1210
|
+
return this._files.push(file) - 1;
|
1211
|
+
},
|
1212
|
+
getName: function(id){
|
1213
|
+
var file = this._files[id];
|
1214
|
+
// fix missing name in Safari 4
|
1215
|
+
return file.fileName != null ? file.fileName : file.name;
|
1216
|
+
},
|
1217
|
+
getSize: function(id){
|
1218
|
+
var file = this._files[id];
|
1219
|
+
return file.fileSize != null ? file.fileSize : file.size;
|
1220
|
+
},
|
1221
|
+
/**
|
1222
|
+
* Returns uploaded bytes for file identified by id
|
1223
|
+
*/
|
1224
|
+
getLoaded: function(id){
|
1225
|
+
return this._loaded[id] || 0;
|
1226
|
+
},
|
1227
|
+
/**
|
1228
|
+
* Sends the file identified by id and additional query params to the server
|
1229
|
+
* @param {Object} params name-value string pairs
|
1230
|
+
*/
|
1231
|
+
_upload: function(id, params){
|
1232
|
+
var file = this._files[id],
|
1233
|
+
name = this.getName(id),
|
1234
|
+
size = this.getSize(id);
|
1235
|
+
|
1236
|
+
this._loaded[id] = 0;
|
1237
|
+
|
1238
|
+
var xhr = this._xhrs[id] = new XMLHttpRequest();
|
1239
|
+
var self = this;
|
1240
|
+
|
1241
|
+
xhr.upload.onprogress = function(e){
|
1242
|
+
if (e.lengthComputable){
|
1243
|
+
self._loaded[id] = e.loaded;
|
1244
|
+
self._options.onProgress(id, name, e.loaded, e.total);
|
1245
|
+
}
|
1246
|
+
};
|
1247
|
+
|
1248
|
+
xhr.onreadystatechange = function(){
|
1249
|
+
if (xhr.readyState == 4){
|
1250
|
+
self._onComplete(id, xhr);
|
1251
|
+
}
|
1252
|
+
};
|
1253
|
+
|
1254
|
+
// build query string
|
1255
|
+
params = params || {};
|
1256
|
+
params[this._options.fieldName] = name;
|
1257
|
+
var queryString = qq.obj2url(params, this._options.action);
|
1258
|
+
|
1259
|
+
xhr.open(this._options.method, queryString, true);
|
1260
|
+
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
|
1261
|
+
xhr.setRequestHeader("X-File-Name", encodeURIComponent(name));
|
1262
|
+
xhr.setRequestHeader('X-File-Size', size);
|
1263
|
+
xhr.setRequestHeader('X-File-Type', file.type);
|
1264
|
+
xhr.setRequestHeader("Content-Type", "application/octet-stream");
|
1265
|
+
|
1266
|
+
// Rails CSRFProtection
|
1267
|
+
if ($.rails) $.rails.CSRFProtection(xhr);
|
1268
|
+
|
1269
|
+
xhr.send(file);
|
1270
|
+
},
|
1271
|
+
_onComplete: function(id, xhr){
|
1272
|
+
// the request was aborted/cancelled
|
1273
|
+
if (!this._files[id]) return;
|
1274
|
+
|
1275
|
+
var name = this.getName(id);
|
1276
|
+
var size = this.getSize(id);
|
1277
|
+
|
1278
|
+
this._options.onProgress(id, name, size, size);
|
1279
|
+
|
1280
|
+
if ([200, 201].indexOf( xhr.status ) > -1){
|
1281
|
+
this.log("xhr - server response received");
|
1282
|
+
this.log("responseText = " + xhr.responseText);
|
1283
|
+
|
1284
|
+
var response;
|
1285
|
+
|
1286
|
+
try {
|
1287
|
+
response = eval("(" + xhr.responseText + ")");
|
1288
|
+
} catch(err){
|
1289
|
+
response = {};
|
1290
|
+
}
|
1291
|
+
|
1292
|
+
this._options.onComplete(id, name, response);
|
1293
|
+
|
1294
|
+
} else {
|
1295
|
+
this._options.onComplete(id, name, {});
|
1296
|
+
}
|
1297
|
+
|
1298
|
+
this._files[id] = null;
|
1299
|
+
this._xhrs[id] = null;
|
1300
|
+
this._dequeue(id);
|
1301
|
+
},
|
1302
|
+
_cancel: function(id){
|
1303
|
+
this._options.onCancel(id, this.getName(id));
|
1304
|
+
|
1305
|
+
this._files[id] = null;
|
1306
|
+
|
1307
|
+
if (this._xhrs[id]){
|
1308
|
+
this._xhrs[id].abort();
|
1309
|
+
this._xhrs[id] = null;
|
1310
|
+
}
|
1311
|
+
}
|
1312
|
+
});
|
1313
|
+
/**
|
1314
|
+
* Author: Sergey Kukunin
|
1315
|
+
* See: https://github.com/Kukunin/jquery-endless-scroll
|
1316
|
+
*/
|
1317
|
+
|
1318
|
+
(function($) {
|
1319
|
+
'use strict';
|
1320
|
+
|
1321
|
+
// Is pushState supported by this browser?
|
1322
|
+
$.support.pushState =
|
1323
|
+
window.history && window.history.pushState && window.history.replaceState &&
|
1324
|
+
// pushState isn't reliable on iOS until 5.
|
1325
|
+
!navigator.userAgent.match(/((iPod|iPhone|iPad).+\bOS\s+[1-4]|WebApps\/.+CFNetwork)/)
|
1326
|
+
|
1327
|
+
//Declaration of modules
|
1328
|
+
var scrollModule = {
|
1329
|
+
init: function(options, obj) {
|
1330
|
+
obj.options = $.extend({
|
1331
|
+
scrollContainer: window,
|
1332
|
+
scrollPadding: 100,
|
1333
|
+
scrollEventDelay: 300
|
1334
|
+
}, options);
|
1335
|
+
this.options = obj.options;
|
1336
|
+
this.container = obj.container;
|
1337
|
+
obj.scrollModule = this;
|
1338
|
+
|
1339
|
+
this._toplock = true;
|
1340
|
+
this._bottomlock = true;
|
1341
|
+
|
1342
|
+
this.scrollContainer = $(this.options.scrollContainer);
|
1343
|
+
|
1344
|
+
this.updateEntities();
|
1345
|
+
this.sortMarkers();
|
1346
|
+
|
1347
|
+
this.currentPage = null;
|
1348
|
+
|
1349
|
+
this.container.on("jes:afterPageLoad", $.proxy(function(event, url, placement) {
|
1350
|
+
this.updateEntities();
|
1351
|
+
this.sortMarkers();
|
1352
|
+
this.checkMarker();
|
1353
|
+
|
1354
|
+
if ( placement == "top" ) {
|
1355
|
+
//Get offset between first and second pages
|
1356
|
+
var offset = this.markers[1].top,
|
1357
|
+
scrollTop = this.scrollContainer.scrollTop();
|
1358
|
+
|
1359
|
+
this.scrollContainer.scrollTop(scrollTop + offset);
|
1360
|
+
}
|
1361
|
+
}, this));
|
1362
|
+
|
1363
|
+
this.bind();
|
1364
|
+
},
|
1365
|
+
updateEntities: function() {
|
1366
|
+
this.entities = $(this.options.entity, this.container);
|
1367
|
+
},
|
1368
|
+
sortMarkers: function() {
|
1369
|
+
var markers = [];
|
1370
|
+
$(".jes-marker", this.container).each(function() {
|
1371
|
+
markers.push({ top: $(this).position().top, url: $(this).data("jesUrl") });
|
1372
|
+
});
|
1373
|
+
this.markers = markers;
|
1374
|
+
},
|
1375
|
+
//Check, whether user scrolled to another page
|
1376
|
+
checkMarker: function() {
|
1377
|
+
var newPage = this.markers[0],
|
1378
|
+
scrollTop = this.scrollContainer.scrollTop();
|
1379
|
+
|
1380
|
+
//Determine, what is current page
|
1381
|
+
for ( var i = 1; i < this.markers.length; i++ ) {
|
1382
|
+
if ( scrollTop > this.markers[i].top ) {
|
1383
|
+
newPage = this.markers[i];
|
1384
|
+
} else {
|
1385
|
+
break;
|
1386
|
+
}
|
1387
|
+
}
|
1388
|
+
if ( newPage.url != this.currentPage ) {
|
1389
|
+
this.currentPage = newPage.url;
|
1390
|
+
$(this.container).trigger("jes:scrollToPage", newPage.url);
|
1391
|
+
}
|
1392
|
+
},
|
1393
|
+
bind: function() {
|
1394
|
+
this.scrollContainer.on("scroll.jes", $.proxy(function(event) {
|
1395
|
+
if ( this._tId ) { return; }
|
1396
|
+
|
1397
|
+
this.scrollHandler(event);
|
1398
|
+
//Clean up mark
|
1399
|
+
this._tId= setTimeout($.proxy(function(){
|
1400
|
+
this._tId = null;
|
1401
|
+
},this), this.options.scrollEventDelay);
|
1402
|
+
|
1403
|
+
}, this));
|
1404
|
+
},
|
1405
|
+
unbind: function() {
|
1406
|
+
$(this.options.scrollContainer).off("scroll.jes");
|
1407
|
+
},
|
1408
|
+
scrollHandler: function(ev) {
|
1409
|
+
var $scrollable = this.scrollContainer,
|
1410
|
+
$entities = this.entities,
|
1411
|
+
$firstEntity = $entities.first(),
|
1412
|
+
$lastEntity = $entities.last();
|
1413
|
+
|
1414
|
+
var scrollTop = $scrollable.scrollTop(),
|
1415
|
+
height = $scrollable.height(),
|
1416
|
+
scrollBottom = scrollTop + height;
|
1417
|
+
|
1418
|
+
var topEntityPosition = $firstEntity.position().top,
|
1419
|
+
topTarget = topEntityPosition + this.options.scrollPadding,
|
1420
|
+
bottomEntityPosition = $lastEntity.outerHeight() + $lastEntity.position().top,
|
1421
|
+
bottomTarget = bottomEntityPosition - this.options.scrollPadding;
|
1422
|
+
|
1423
|
+
//Don't trigger event again, if already fired
|
1424
|
+
//Visitor have to leave the area and get back to fire event again
|
1425
|
+
//Process top threshold
|
1426
|
+
if ( scrollTop < topTarget ) {
|
1427
|
+
if ( !this._toplock ) {
|
1428
|
+
$(this.container).trigger("jes:topThreshold");
|
1429
|
+
this._toplock = true;
|
1430
|
+
}
|
1431
|
+
} else {
|
1432
|
+
this._toplock = false;
|
1433
|
+
}
|
1434
|
+
|
1435
|
+
//Process bottom threshold
|
1436
|
+
if ( scrollBottom > bottomTarget ) {
|
1437
|
+
if ( !this._bottomlock ) {
|
1438
|
+
$(this.container).trigger("jes:bottomThreshold");
|
1439
|
+
this._bottomlock = true;
|
1440
|
+
}
|
1441
|
+
} else {
|
1442
|
+
this._bottomlock = false;
|
1443
|
+
}
|
1444
|
+
|
1445
|
+
this.checkMarker();
|
1446
|
+
}
|
1447
|
+
}
|
1448
|
+
|
1449
|
+
var ajaxModule = {
|
1450
|
+
init: function(options, obj) {
|
1451
|
+
obj.options = $.extend({
|
1452
|
+
}, options);
|
1453
|
+
|
1454
|
+
this.options = obj.options;
|
1455
|
+
this.container = obj.container;
|
1456
|
+
|
1457
|
+
//markers
|
1458
|
+
this.setMarker($(this.options.entity, this.container).first(), location.href);
|
1459
|
+
|
1460
|
+
obj.ajaxModule = this;
|
1461
|
+
},
|
1462
|
+
loadPage: function(url, placement, callback) {
|
1463
|
+
//The hash with methods list
|
1464
|
+
//depends from placement
|
1465
|
+
var actions = {
|
1466
|
+
top: {
|
1467
|
+
find: 'first',
|
1468
|
+
inject: 'insertBefore'
|
1469
|
+
},
|
1470
|
+
bottom: {
|
1471
|
+
find: 'last',
|
1472
|
+
inject: 'insertAfter'
|
1473
|
+
}
|
1474
|
+
},
|
1475
|
+
action = actions[placement];
|
1476
|
+
|
1477
|
+
this.container.trigger("jes:beforePageLoad", [url, placement]);
|
1478
|
+
|
1479
|
+
//Make AJAX query
|
1480
|
+
$.get(url, null, $.proxy(function (_data) {
|
1481
|
+
var data = $("<div>").html(_data),
|
1482
|
+
containerSelector = this.options.container,
|
1483
|
+
container = $(containerSelector, data).first();
|
1484
|
+
|
1485
|
+
if ( container.length ) {
|
1486
|
+
//Find entities
|
1487
|
+
var entities = container.find(this.options.entity);
|
1488
|
+
|
1489
|
+
if ( placement == "bottom" ) {
|
1490
|
+
//Remove duplicated (staled) entities from page
|
1491
|
+
entities.each(function(i) {
|
1492
|
+
var id = $(this).attr("id");
|
1493
|
+
if ( id ) {
|
1494
|
+
$('#' + id, this.container).remove();
|
1495
|
+
}
|
1496
|
+
});
|
1497
|
+
}
|
1498
|
+
|
1499
|
+
//Find the cursor
|
1500
|
+
var cursor = $(this.options.entity, containerSelector)[action.find]();
|
1501
|
+
|
1502
|
+
//Find and insert entities
|
1503
|
+
entities[action.inject](cursor);
|
1504
|
+
this.setMarker(entities.first(), url);
|
1505
|
+
}
|
1506
|
+
|
1507
|
+
if ( $.isFunction(callback) ) {
|
1508
|
+
callback(data);
|
1509
|
+
}
|
1510
|
+
this.container.trigger("jes:afterPageLoad", [url, placement, data, entities]);
|
1511
|
+
}, this), 'html');
|
1512
|
+
},
|
1513
|
+
setMarker: function(entity, url) {
|
1514
|
+
entity.addClass("jes-marker").data("jesUrl", url);
|
1515
|
+
}
|
1516
|
+
}
|
1517
|
+
|
1518
|
+
var navigationModule = {
|
1519
|
+
init: function(options, obj) {
|
1520
|
+
obj.options = $.extend({
|
1521
|
+
nextPage: ".pagination a[rel=next]",
|
1522
|
+
previousPage: ".pagination a[rel=previous]"
|
1523
|
+
}, options);
|
1524
|
+
|
1525
|
+
this.options = obj.options;
|
1526
|
+
this.container = obj.container;
|
1527
|
+
|
1528
|
+
$.each([{
|
1529
|
+
selector: this.options.nextPage,
|
1530
|
+
event: "jes:bottomThreshold.navigation",
|
1531
|
+
placement: 'bottom'
|
1532
|
+
}, {
|
1533
|
+
selector: this.options.previousPage,
|
1534
|
+
event: "jes:topThreshold.navigation",
|
1535
|
+
placement: 'top'
|
1536
|
+
}], $.proxy(function(i, v) {
|
1537
|
+
v.element = $(v.selector);
|
1538
|
+
if ( v.element.length ) {
|
1539
|
+
var url = v.element.prop("href"),
|
1540
|
+
lock = false;
|
1541
|
+
|
1542
|
+
var handler = function() {
|
1543
|
+
//this object is container
|
1544
|
+
if ( lock || !url ) return;
|
1545
|
+
|
1546
|
+
lock = true;
|
1547
|
+
obj.ajaxModule.loadPage(url, v.placement, $.proxy(function( data ) {
|
1548
|
+
//Search new next link
|
1549
|
+
var newElement = $(v.selector, $(data));
|
1550
|
+
if ( newElement.length ) {
|
1551
|
+
//Update URL and remove lock
|
1552
|
+
lock = false;
|
1553
|
+
url = newElement.prop("href");
|
1554
|
+
v.element.attr("href", url);
|
1555
|
+
} else {
|
1556
|
+
//Remove event at all
|
1557
|
+
$(this).off(v.event);
|
1558
|
+
v.element.remove();
|
1559
|
+
}
|
1560
|
+
}, this));
|
1561
|
+
};
|
1562
|
+
|
1563
|
+
$(this.container).on(v.event, handler);
|
1564
|
+
$(v.element).on("click", $.proxy(function(ev) {
|
1565
|
+
ev.preventDefault();
|
1566
|
+
handler.apply(this.container)
|
1567
|
+
}, this));
|
1568
|
+
}
|
1569
|
+
},this));
|
1570
|
+
}
|
1571
|
+
}
|
1572
|
+
|
1573
|
+
var pushStateHistory = {
|
1574
|
+
init: function(options, obj) {
|
1575
|
+
if ( !$.support.pushState ) {
|
1576
|
+
return;
|
1577
|
+
}
|
1578
|
+
|
1579
|
+
obj.container.on("jes:scrollToPage", function(event, url) {
|
1580
|
+
history.replaceState({}, null, url);
|
1581
|
+
});
|
1582
|
+
}
|
1583
|
+
}
|
1584
|
+
|
1585
|
+
$.endlessScroll = function(options) {
|
1586
|
+
|
1587
|
+
//Initialize modules
|
1588
|
+
this.options = $.extend(true, {
|
1589
|
+
container: "#container",
|
1590
|
+
entity: ".entity",
|
1591
|
+
_modules: [ ajaxModule, scrollModule, navigationModule, pushStateHistory ],
|
1592
|
+
modules: []
|
1593
|
+
}, options);
|
1594
|
+
|
1595
|
+
this.container = $(this.options.container);
|
1596
|
+
if ( !this.container.length ) {
|
1597
|
+
throw "Container for endless scroll isn't available on the page";
|
1598
|
+
return;
|
1599
|
+
}
|
1600
|
+
|
1601
|
+
|
1602
|
+
//Merge custom options with default
|
1603
|
+
$.merge(this.options.modules, this.options._modules);
|
1604
|
+
//Init modules
|
1605
|
+
this.options.modules.forEach($.proxy(function(module) {
|
1606
|
+
module.init(this.options, this);
|
1607
|
+
},this));
|
1608
|
+
|
1609
|
+
|
1610
|
+
return this;
|
1611
|
+
}
|
1612
|
+
|
1613
|
+
})(jQuery);
|
1614
|
+
(function($, undefined) {
|
1615
|
+
|
1616
|
+
/**
|
1617
|
+
* Unobtrusive scripting adapter for jQuery
|
1618
|
+
*
|
1619
|
+
* Requires jQuery 1.6.0 or later.
|
1620
|
+
* https://github.com/rails/jquery-ujs
|
1621
|
+
|
1622
|
+
* Uploading file using rails.js
|
1623
|
+
* =============================
|
1624
|
+
*
|
1625
|
+
* By default, browsers do not allow files to be uploaded via AJAX. As a result, if there are any non-blank file fields
|
1626
|
+
* in the remote form, this adapter aborts the AJAX submission and allows the form to submit through standard means.
|
1627
|
+
*
|
1628
|
+
* The `ajax:aborted:file` event allows you to bind your own handler to process the form submission however you wish.
|
1629
|
+
*
|
1630
|
+
* Ex:
|
1631
|
+
* $('form').live('ajax:aborted:file', function(event, elements){
|
1632
|
+
* // Implement own remote file-transfer handler here for non-blank file inputs passed in `elements`.
|
1633
|
+
* // Returning false in this handler tells rails.js to disallow standard form submission
|
1634
|
+
* return false;
|
1635
|
+
* });
|
1636
|
+
*
|
1637
|
+
* The `ajax:aborted:file` event is fired when a file-type input is detected with a non-blank value.
|
1638
|
+
*
|
1639
|
+
* Third-party tools can use this hook to detect when an AJAX file upload is attempted, and then use
|
1640
|
+
* techniques like the iframe method to upload the file instead.
|
1641
|
+
*
|
1642
|
+
* Required fields in rails.js
|
1643
|
+
* ===========================
|
1644
|
+
*
|
1645
|
+
* If any blank required inputs (required="required") are detected in the remote form, the whole form submission
|
1646
|
+
* is canceled. Note that this is unlike file inputs, which still allow standard (non-AJAX) form submission.
|
1647
|
+
*
|
1648
|
+
* The `ajax:aborted:required` event allows you to bind your own handler to inform the user of blank required inputs.
|
1649
|
+
*
|
1650
|
+
* !! Note that Opera does not fire the form's submit event if there are blank required inputs, so this event may never
|
1651
|
+
* get fired in Opera. This event is what causes other browsers to exhibit the same submit-aborting behavior.
|
1652
|
+
*
|
1653
|
+
* Ex:
|
1654
|
+
* $('form').live('ajax:aborted:required', function(event, elements){
|
1655
|
+
* // Returning false in this handler tells rails.js to submit the form anyway.
|
1656
|
+
* // The blank required inputs are passed to this function in `elements`.
|
1657
|
+
* return ! confirm("Would you like to submit the form with missing info?");
|
1658
|
+
* });
|
1659
|
+
*/
|
1660
|
+
|
1661
|
+
// Shorthand to make it a little easier to call public rails functions from within rails.js
|
1662
|
+
var rails;
|
1663
|
+
|
1664
|
+
$.rails = rails = {
|
1665
|
+
// Link elements bound by jquery-ujs
|
1666
|
+
linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote], a[data-disable-with]',
|
1667
|
+
|
1668
|
+
// Select elements bound by jquery-ujs
|
1669
|
+
inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',
|
1670
|
+
|
1671
|
+
// Form elements bound by jquery-ujs
|
1672
|
+
formSubmitSelector: 'form',
|
1673
|
+
|
1674
|
+
// Form input elements bound by jquery-ujs
|
1675
|
+
formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not(button[type])',
|
1676
|
+
|
1677
|
+
// Form input elements disabled during form submission
|
1678
|
+
disableSelector: 'input[data-disable-with], button[data-disable-with], textarea[data-disable-with]',
|
1679
|
+
|
1680
|
+
// Form input elements re-enabled after form submission
|
1681
|
+
enableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled',
|
1682
|
+
|
1683
|
+
// Form required input elements
|
1684
|
+
requiredInputSelector: 'input[name][required]:not([disabled]),textarea[name][required]:not([disabled])',
|
1685
|
+
|
1686
|
+
// Form file input elements
|
1687
|
+
fileInputSelector: 'input:file',
|
1688
|
+
|
1689
|
+
// Link onClick disable selector with possible reenable after remote submission
|
1690
|
+
linkDisableSelector: 'a[data-disable-with]',
|
1691
|
+
|
1692
|
+
// Make sure that every Ajax request sends the CSRF token
|
1693
|
+
CSRFProtection: function(xhr) {
|
1694
|
+
var token = $('meta[name="csrf-token"]').attr('content');
|
1695
|
+
if (token) xhr.setRequestHeader('X-CSRF-Token', token);
|
1696
|
+
},
|
1697
|
+
|
1698
|
+
// Triggers an event on an element and returns false if the event result is false
|
1699
|
+
fire: function(obj, name, data) {
|
1700
|
+
var event = $.Event(name);
|
1701
|
+
obj.trigger(event, data);
|
1702
|
+
return event.result !== false;
|
1703
|
+
},
|
1704
|
+
|
1705
|
+
// Default confirm dialog, may be overridden with custom confirm dialog in $.rails.confirm
|
1706
|
+
confirm: function(message) {
|
1707
|
+
return confirm(message);
|
1708
|
+
},
|
1709
|
+
|
1710
|
+
// Default ajax function, may be overridden with custom function in $.rails.ajax
|
1711
|
+
ajax: function(options) {
|
1712
|
+
return $.ajax(options);
|
1713
|
+
},
|
1714
|
+
|
1715
|
+
// Submits "remote" forms and links with ajax
|
1716
|
+
handleRemote: function(element) {
|
1717
|
+
var method, url, data,
|
1718
|
+
crossDomain = element.data('cross-domain') || null,
|
1719
|
+
dataType = element.data('type') || ($.ajaxSettings && $.ajaxSettings.dataType),
|
1720
|
+
options;
|
1721
|
+
|
1722
|
+
if (rails.fire(element, 'ajax:before')) {
|
1723
|
+
|
1724
|
+
if (element.is('form')) {
|
1725
|
+
method = element.attr('method');
|
1726
|
+
url = element.attr('action');
|
1727
|
+
data = element.serializeArray();
|
1728
|
+
// memoized value from clicked submit button
|
1729
|
+
var button = element.data('ujs:submit-button');
|
1730
|
+
if (button) {
|
1731
|
+
data.push(button);
|
1732
|
+
element.data('ujs:submit-button', null);
|
1733
|
+
}
|
1734
|
+
} else if (element.is(rails.inputChangeSelector)) {
|
1735
|
+
method = element.data('method');
|
1736
|
+
url = element.data('url');
|
1737
|
+
data = element.serialize();
|
1738
|
+
if (element.data('params')) data = data + "&" + element.data('params');
|
1739
|
+
} else {
|
1740
|
+
method = element.data('method');
|
1741
|
+
url = element.attr('href');
|
1742
|
+
data = element.data('params') || null;
|
1743
|
+
}
|
1744
|
+
|
1745
|
+
options = {
|
1746
|
+
type: method || 'GET', data: data, dataType: dataType, crossDomain: crossDomain,
|
1747
|
+
// stopping the "ajax:beforeSend" event will cancel the ajax request
|
1748
|
+
beforeSend: function(xhr, settings) {
|
1749
|
+
if (settings.dataType === undefined) {
|
1750
|
+
xhr.setRequestHeader('accept', '*/*;q=0.5, ' + settings.accepts.script);
|
1751
|
+
}
|
1752
|
+
return rails.fire(element, 'ajax:beforeSend', [xhr, settings]);
|
1753
|
+
},
|
1754
|
+
success: function(data, status, xhr) {
|
1755
|
+
element.trigger('ajax:success', [data, status, xhr]);
|
1756
|
+
},
|
1757
|
+
complete: function(xhr, status) {
|
1758
|
+
element.trigger('ajax:complete', [xhr, status]);
|
1759
|
+
},
|
1760
|
+
error: function(xhr, status, error) {
|
1761
|
+
element.trigger('ajax:error', [xhr, status, error]);
|
1762
|
+
}
|
1763
|
+
};
|
1764
|
+
// Only pass url to `ajax` options if not blank
|
1765
|
+
if (url) { options.url = url; }
|
1766
|
+
|
1767
|
+
return rails.ajax(options);
|
1768
|
+
} else {
|
1769
|
+
return false;
|
1770
|
+
}
|
1771
|
+
},
|
1772
|
+
|
1773
|
+
// Handles "data-method" on links such as:
|
1774
|
+
// <a href="/users/5" data-method="delete" rel="nofollow" data-confirm="Are you sure?">Delete</a>
|
1775
|
+
handleMethod: function(link) {
|
1776
|
+
var href = link.attr('href'),
|
1777
|
+
method = link.data('method'),
|
1778
|
+
target = link.attr('target'),
|
1779
|
+
csrf_token = $('meta[name=csrf-token]').attr('content'),
|
1780
|
+
csrf_param = $('meta[name=csrf-param]').attr('content'),
|
1781
|
+
form = $('<form method="post" action="' + href + '"></form>'),
|
1782
|
+
metadata_input = '<input name="_method" value="' + method + '" type="hidden" />';
|
1783
|
+
|
1784
|
+
if (csrf_param !== undefined && csrf_token !== undefined) {
|
1785
|
+
metadata_input += '<input name="' + csrf_param + '" value="' + csrf_token + '" type="hidden" />';
|
1786
|
+
}
|
1787
|
+
|
1788
|
+
if (target) { form.attr('target', target); }
|
1789
|
+
|
1790
|
+
form.hide().append(metadata_input).appendTo('body');
|
1791
|
+
form.submit();
|
1792
|
+
},
|
1793
|
+
|
1794
|
+
/* Disables form elements:
|
1795
|
+
- Caches element value in 'ujs:enable-with' data store
|
1796
|
+
- Replaces element text with value of 'data-disable-with' attribute
|
1797
|
+
- Sets disabled property to true
|
1798
|
+
*/
|
1799
|
+
disableFormElements: function(form) {
|
1800
|
+
form.find(rails.disableSelector).each(function() {
|
1801
|
+
var element = $(this), method = element.is('button') ? 'html' : 'val';
|
1802
|
+
element.data('ujs:enable-with', element[method]());
|
1803
|
+
element[method](element.data('disable-with'));
|
1804
|
+
element.prop('disabled', true);
|
1805
|
+
});
|
1806
|
+
},
|
1807
|
+
|
1808
|
+
/* Re-enables disabled form elements:
|
1809
|
+
- Replaces element text with cached value from 'ujs:enable-with' data store (created in `disableFormElements`)
|
1810
|
+
- Sets disabled property to false
|
1811
|
+
*/
|
1812
|
+
enableFormElements: function(form) {
|
1813
|
+
form.find(rails.enableSelector).each(function() {
|
1814
|
+
var element = $(this), method = element.is('button') ? 'html' : 'val';
|
1815
|
+
if (element.data('ujs:enable-with')) element[method](element.data('ujs:enable-with'));
|
1816
|
+
element.prop('disabled', false);
|
1817
|
+
});
|
1818
|
+
},
|
1819
|
+
|
1820
|
+
/* For 'data-confirm' attribute:
|
1821
|
+
- Fires `confirm` event
|
1822
|
+
- Shows the confirmation dialog
|
1823
|
+
- Fires the `confirm:complete` event
|
1824
|
+
|
1825
|
+
Returns `true` if no function stops the chain and user chose yes; `false` otherwise.
|
1826
|
+
Attaching a handler to the element's `confirm` event that returns a `falsy` value cancels the confirmation dialog.
|
1827
|
+
Attaching a handler to the element's `confirm:complete` event that returns a `falsy` value makes this function
|
1828
|
+
return false. The `confirm:complete` event is fired whether or not the user answered true or false to the dialog.
|
1829
|
+
*/
|
1830
|
+
allowAction: function(element) {
|
1831
|
+
var message = element.data('confirm'),
|
1832
|
+
answer = false, callback;
|
1833
|
+
if (!message) { return true; }
|
1834
|
+
|
1835
|
+
if (rails.fire(element, 'confirm')) {
|
1836
|
+
answer = rails.confirm(message);
|
1837
|
+
callback = rails.fire(element, 'confirm:complete', [answer]);
|
1838
|
+
}
|
1839
|
+
return answer && callback;
|
1840
|
+
},
|
1841
|
+
|
1842
|
+
// Helper function which checks for blank inputs in a form that match the specified CSS selector
|
1843
|
+
blankInputs: function(form, specifiedSelector, nonBlank) {
|
1844
|
+
var inputs = $(), input,
|
1845
|
+
selector = specifiedSelector || 'input,textarea';
|
1846
|
+
form.find(selector).each(function() {
|
1847
|
+
input = $(this);
|
1848
|
+
// Collect non-blank inputs if nonBlank option is true, otherwise, collect blank inputs
|
1849
|
+
if (nonBlank ? input.val() : !input.val()) {
|
1850
|
+
inputs = inputs.add(input);
|
1851
|
+
}
|
1852
|
+
});
|
1853
|
+
return inputs.length ? inputs : false;
|
1854
|
+
},
|
1855
|
+
|
1856
|
+
// Helper function which checks for non-blank inputs in a form that match the specified CSS selector
|
1857
|
+
nonBlankInputs: function(form, specifiedSelector) {
|
1858
|
+
return rails.blankInputs(form, specifiedSelector, true); // true specifies nonBlank
|
1859
|
+
},
|
1860
|
+
|
1861
|
+
// Helper function, needed to provide consistent behavior in IE
|
1862
|
+
stopEverything: function(e) {
|
1863
|
+
$(e.target).trigger('ujs:everythingStopped');
|
1864
|
+
e.stopImmediatePropagation();
|
1865
|
+
return false;
|
1866
|
+
},
|
1867
|
+
|
1868
|
+
// find all the submit events directly bound to the form and
|
1869
|
+
// manually invoke them. If anyone returns false then stop the loop
|
1870
|
+
callFormSubmitBindings: function(form, event) {
|
1871
|
+
var events = form.data('events'), continuePropagation = true;
|
1872
|
+
if (events !== undefined && events['submit'] !== undefined) {
|
1873
|
+
$.each(events['submit'], function(i, obj){
|
1874
|
+
if (typeof obj.handler === 'function') return continuePropagation = obj.handler(event);
|
1875
|
+
});
|
1876
|
+
}
|
1877
|
+
return continuePropagation;
|
1878
|
+
},
|
1879
|
+
|
1880
|
+
// replace element's html with the 'data-disable-with' after storing original html
|
1881
|
+
// and prevent clicking on it
|
1882
|
+
disableElement: function(element) {
|
1883
|
+
element.data('ujs:enable-with', element.html()); // store enabled state
|
1884
|
+
element.html(element.data('disable-with')); // set to disabled state
|
1885
|
+
element.bind('click.railsDisable', function(e) { // prevent further clicking
|
1886
|
+
return rails.stopEverything(e)
|
1887
|
+
});
|
1888
|
+
},
|
1889
|
+
|
1890
|
+
// restore element to its original state which was disabled by 'disableElement' above
|
1891
|
+
enableElement: function(element) {
|
1892
|
+
if (element.data('ujs:enable-with') !== undefined) {
|
1893
|
+
element.html(element.data('ujs:enable-with')); // set to old enabled state
|
1894
|
+
// this should be element.removeData('ujs:enable-with')
|
1895
|
+
// but, there is currently a bug in jquery which makes hyphenated data attributes not get removed
|
1896
|
+
element.data('ujs:enable-with', false); // clean up cache
|
1897
|
+
}
|
1898
|
+
element.unbind('click.railsDisable'); // enable element
|
1899
|
+
}
|
1900
|
+
|
1901
|
+
};
|
1902
|
+
|
1903
|
+
$.ajaxPrefilter(function(options, originalOptions, xhr){ if ( !options.crossDomain ) { rails.CSRFProtection(xhr); }});
|
1904
|
+
|
1905
|
+
$(document).delegate(rails.linkDisableSelector, 'ajax:complete', function() {
|
1906
|
+
rails.enableElement($(this));
|
1907
|
+
});
|
1908
|
+
|
1909
|
+
$(document).delegate(rails.linkClickSelector, 'click.rails', function(e) {
|
1910
|
+
var link = $(this), method = link.data('method'), data = link.data('params');
|
1911
|
+
if (!rails.allowAction(link)) return rails.stopEverything(e);
|
1912
|
+
|
1913
|
+
if (link.is(rails.linkDisableSelector)) rails.disableElement(link);
|
1914
|
+
|
1915
|
+
if (link.data('remote') !== undefined) {
|
1916
|
+
if ( (e.metaKey || e.ctrlKey) && (!method || method === 'GET') && !data ) { return true; }
|
1917
|
+
|
1918
|
+
if (rails.handleRemote(link) === false) { rails.enableElement(link); }
|
1919
|
+
return false;
|
1920
|
+
|
1921
|
+
} else if (link.data('method')) {
|
1922
|
+
rails.handleMethod(link);
|
1923
|
+
return false;
|
1924
|
+
}
|
1925
|
+
});
|
1926
|
+
|
1927
|
+
$(document).delegate(rails.inputChangeSelector, 'change.rails', function(e) {
|
1928
|
+
var link = $(this);
|
1929
|
+
if (!rails.allowAction(link)) return rails.stopEverything(e);
|
1930
|
+
|
1931
|
+
rails.handleRemote(link);
|
1932
|
+
return false;
|
1933
|
+
});
|
1934
|
+
|
1935
|
+
$(document).delegate(rails.formSubmitSelector, 'submit.rails', function(e) {
|
1936
|
+
var form = $(this),
|
1937
|
+
remote = form.data('remote') !== undefined,
|
1938
|
+
blankRequiredInputs = rails.blankInputs(form, rails.requiredInputSelector),
|
1939
|
+
nonBlankFileInputs = rails.nonBlankInputs(form, rails.fileInputSelector);
|
1940
|
+
|
1941
|
+
if (!rails.allowAction(form)) return rails.stopEverything(e);
|
1942
|
+
|
1943
|
+
// skip other logic when required values are missing or file upload is present
|
1944
|
+
if (blankRequiredInputs && form.attr("novalidate") == undefined && rails.fire(form, 'ajax:aborted:required', [blankRequiredInputs])) {
|
1945
|
+
return rails.stopEverything(e);
|
1946
|
+
}
|
1947
|
+
|
1948
|
+
if (remote) {
|
1949
|
+
if (nonBlankFileInputs) {
|
1950
|
+
return rails.fire(form, 'ajax:aborted:file', [nonBlankFileInputs]);
|
1951
|
+
}
|
1952
|
+
|
1953
|
+
// If browser does not support submit bubbling, then this live-binding will be called before direct
|
1954
|
+
// bindings. Therefore, we should directly call any direct bindings before remotely submitting form.
|
1955
|
+
if (!$.support.submitBubbles && $().jquery < '1.7' && rails.callFormSubmitBindings(form, e) === false) return rails.stopEverything(e);
|
1956
|
+
|
1957
|
+
rails.handleRemote(form);
|
1958
|
+
return false;
|
1959
|
+
|
1960
|
+
} else {
|
1961
|
+
// slight timeout so that the submit button gets properly serialized
|
1962
|
+
setTimeout(function(){ rails.disableFormElements(form); }, 13);
|
1963
|
+
}
|
1964
|
+
});
|
1965
|
+
|
1966
|
+
$(document).delegate(rails.formInputClickSelector, 'click.rails', function(event) {
|
1967
|
+
var button = $(this);
|
1968
|
+
|
1969
|
+
if (!rails.allowAction(button)) return rails.stopEverything(event);
|
1970
|
+
|
1971
|
+
// register the pressed submit button
|
1972
|
+
var name = button.attr('name'),
|
1973
|
+
data = name ? {name:name, value:button.val()} : null;
|
1974
|
+
|
1975
|
+
button.closest('form').data('ujs:submit-button', data);
|
1976
|
+
});
|
1977
|
+
|
1978
|
+
$(document).delegate(rails.formSubmitSelector, 'ajax:beforeSend.rails', function(event) {
|
1979
|
+
if (this == event.target) rails.disableFormElements($(this));
|
1980
|
+
});
|
1981
|
+
|
1982
|
+
$(document).delegate(rails.formSubmitSelector, 'ajax:complete.rails', function(event) {
|
1983
|
+
if (this == event.target) rails.enableFormElements($(this));
|
1984
|
+
});
|
1985
|
+
|
1986
|
+
})( jQuery );
|
1987
|
+
$.QueryString = (function(a) {
|
1988
|
+
if (a == "") return {};
|
1989
|
+
var b = {};
|
1990
|
+
for (var i = 0; i < a.length; ++i)
|
1991
|
+
{
|
1992
|
+
var p=a[i].split('=');
|
1993
|
+
if (p.length != 2) continue;
|
1994
|
+
b[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " "));
|
1995
|
+
}
|
1996
|
+
return b;
|
1997
|
+
})(window.location.search.substr(1).split('&'))
|
1998
|
+
|
1999
|
+
$(document).ready(function(){
|
2000
|
+
var selector = "div.gal-item div.gal-inner-holder";
|
2001
|
+
|
2002
|
+
$(document)
|
2003
|
+
.on('mouseover', selector, function(e){
|
2004
|
+
$(this).addClass('hover');
|
2005
|
+
})
|
2006
|
+
.on('mouseout', selector, function(e){
|
2007
|
+
$(this).removeClass('hover');
|
2008
|
+
})
|
2009
|
+
.on('click', selector, function(e){
|
2010
|
+
var url = $(this).parents('div.gal-item').data('url');
|
2011
|
+
CKEDITOR.tools.callFunction(CKEditorFuncNum, url);
|
2012
|
+
window.close();
|
2013
|
+
});
|
2014
|
+
|
2015
|
+
$(document).on('ajax:complete', "div.gal-item a.gal-del", function(xhr, status){
|
2016
|
+
$(this).parents('div.gal-item').remove();
|
2017
|
+
});
|
2018
|
+
|
2019
|
+
var endlessScroll = $.endlessScroll({
|
2020
|
+
container: ".fileupload-list",
|
2021
|
+
entity: ".gal-item",
|
2022
|
+
scrollPadding: 100
|
2023
|
+
});
|
2024
|
+
|
2025
|
+
// Don't listen events first second
|
2026
|
+
endlessScroll.scrollModule.unbind();
|
2027
|
+
window.setTimeout(function() { endlessScroll.scrollModule.bind();}, 1000);
|
2028
|
+
});
|
2029
|
+
|
2030
|
+
// Collection of all instances on page
|
2031
|
+
qq.FileUploader.instances = new Object();
|
2032
|
+
|
2033
|
+
/**
|
2034
|
+
* Class that creates upload widget with drag-and-drop and file list
|
2035
|
+
* @inherits qq.FileUploaderBasic
|
2036
|
+
*/
|
2037
|
+
qq.FileUploaderInput = function(o){
|
2038
|
+
// call parent constructor
|
2039
|
+
qq.FileUploaderBasic.apply(this, arguments);
|
2040
|
+
|
2041
|
+
// additional options
|
2042
|
+
qq.extend(this._options, {
|
2043
|
+
element: null,
|
2044
|
+
// if set, will be used instead of qq-upload-list in template
|
2045
|
+
listElement: null,
|
2046
|
+
|
2047
|
+
template_id: '#fileupload_tmpl',
|
2048
|
+
|
2049
|
+
classes: {
|
2050
|
+
// used to get elements from templates
|
2051
|
+
button: 'fileupload-button',
|
2052
|
+
drop: 'fileupload-drop-area',
|
2053
|
+
dropActive: 'fileupload-drop-area-active',
|
2054
|
+
list: 'fileupload-list',
|
2055
|
+
preview: 'fileupload-preview',
|
2056
|
+
|
2057
|
+
file: 'fileupload-file',
|
2058
|
+
spinner: 'fileupload-spinner',
|
2059
|
+
size: 'fileupload-size',
|
2060
|
+
cancel: 'fileupload-cancel',
|
2061
|
+
|
2062
|
+
// added to list item when upload completes
|
2063
|
+
// used in css to hide progress spinner
|
2064
|
+
success: 'fileupload-success',
|
2065
|
+
fail: 'fileupload-fail'
|
2066
|
+
}
|
2067
|
+
});
|
2068
|
+
// overwrite options with user supplied
|
2069
|
+
qq.extend(this._options, o);
|
2070
|
+
|
2071
|
+
this._element = document.getElementById(this._options.element);
|
2072
|
+
this._listElement = this._options.listElement || this._find(this._element, 'list');
|
2073
|
+
|
2074
|
+
this._classes = this._options.classes;
|
2075
|
+
|
2076
|
+
this._button = this._createUploadButton(this._find(this._element, 'button'));
|
2077
|
+
|
2078
|
+
//this._setupDragDrop();
|
2079
|
+
|
2080
|
+
qq.FileUploader.instances[this._element.id] = this;
|
2081
|
+
};
|
2082
|
+
|
2083
|
+
// inherit from Basic Uploader
|
2084
|
+
qq.extend(qq.FileUploaderInput.prototype, qq.FileUploaderBasic.prototype);
|
2085
|
+
|
2086
|
+
qq.extend(qq.FileUploaderInput.prototype, {
|
2087
|
+
/**
|
2088
|
+
* Gets one of the elements listed in this._options.classes
|
2089
|
+
**/
|
2090
|
+
_find: function(parent, type){
|
2091
|
+
var element = qq.getByClass(parent, this._options.classes[type])[0];
|
2092
|
+
if (!element){
|
2093
|
+
alert(type);
|
2094
|
+
throw new Error('element not found ' + type);
|
2095
|
+
}
|
2096
|
+
|
2097
|
+
return element;
|
2098
|
+
},
|
2099
|
+
_setupDragDrop: function(){
|
2100
|
+
var self = this,
|
2101
|
+
dropArea = this._find(this._element, 'drop');
|
2102
|
+
|
2103
|
+
var dz = new qq.UploadDropZone({
|
2104
|
+
element: dropArea,
|
2105
|
+
onEnter: function(e){
|
2106
|
+
qq.addClass(dropArea, self._classes.dropActive);
|
2107
|
+
e.stopPropagation();
|
2108
|
+
},
|
2109
|
+
onLeave: function(e){
|
2110
|
+
e.stopPropagation();
|
2111
|
+
},
|
2112
|
+
onLeaveNotDescendants: function(e){
|
2113
|
+
qq.removeClass(dropArea, self._classes.dropActive);
|
2114
|
+
},
|
2115
|
+
onDrop: function(e){
|
2116
|
+
dropArea.style.display = 'none';
|
2117
|
+
qq.removeClass(dropArea, self._classes.dropActive);
|
2118
|
+
self._uploadFileList(e.dataTransfer.files);
|
2119
|
+
}
|
2120
|
+
});
|
2121
|
+
|
2122
|
+
dropArea.style.display = 'none';
|
2123
|
+
|
2124
|
+
qq.attach(document, 'dragenter', function(e){
|
2125
|
+
if (!dz._isValidFileDrag(e)) return;
|
2126
|
+
|
2127
|
+
dropArea.style.display = 'block';
|
2128
|
+
});
|
2129
|
+
qq.attach(document, 'dragleave', function(e){
|
2130
|
+
if (!dz._isValidFileDrag(e)) return;
|
2131
|
+
|
2132
|
+
var relatedTarget = document.elementFromPoint(e.clientX, e.clientY);
|
2133
|
+
// only fire when leaving document out
|
2134
|
+
if ( ! relatedTarget || relatedTarget.nodeName == "HTML"){
|
2135
|
+
dropArea.style.display = 'none';
|
2136
|
+
}
|
2137
|
+
});
|
2138
|
+
},
|
2139
|
+
_onSubmit: function(id, fileName){
|
2140
|
+
qq.FileUploaderBasic.prototype._onSubmit.apply(this, arguments);
|
2141
|
+
this._addToList(id, fileName);
|
2142
|
+
},
|
2143
|
+
_onProgress: function(id, fileName, loaded, total){
|
2144
|
+
qq.FileUploaderBasic.prototype._onProgress.apply(this, arguments);
|
2145
|
+
|
2146
|
+
var item = this._getItemByFileId(id);
|
2147
|
+
var size = this._find(item, 'size');
|
2148
|
+
|
2149
|
+
var text;
|
2150
|
+
if (loaded != total){
|
2151
|
+
text = Math.round(loaded / total * 100) + '% from ' + this._formatSize(total);
|
2152
|
+
} else {
|
2153
|
+
text = this._formatSize(total);
|
2154
|
+
}
|
2155
|
+
|
2156
|
+
qq.setText(size, text);
|
2157
|
+
},
|
2158
|
+
_onComplete: function(id, fileName, result){
|
2159
|
+
qq.FileUploaderBasic.prototype._onComplete.apply(this, arguments);
|
2160
|
+
|
2161
|
+
var item = this._getItemByFileId(id);
|
2162
|
+
var asset = result.asset ? result.asset : result;
|
2163
|
+
|
2164
|
+
if (asset && asset.id){
|
2165
|
+
qq.addClass(item, this._classes.success);
|
2166
|
+
|
2167
|
+
asset.size = this._formatSize(asset.size);
|
2168
|
+
asset.controller = (asset.type !== undefined && asset.type.toLowerCase() == "ckeditor::picture" ? "pictures" : "attachment_files");
|
2169
|
+
|
2170
|
+
$(item).replaceWith($(this._options.template_id).tmpl(asset));
|
2171
|
+
} else {
|
2172
|
+
qq.addClass(item, this._classes.fail);
|
2173
|
+
}
|
2174
|
+
},
|
2175
|
+
_addToList: function(id, fileName){
|
2176
|
+
if (this._listElement) {
|
2177
|
+
if (this._options.multiple === false) {
|
2178
|
+
$(this._listElement).empty();
|
2179
|
+
}
|
2180
|
+
|
2181
|
+
var asset = {
|
2182
|
+
id: 0,
|
2183
|
+
filename: this._formatFileName(fileName),
|
2184
|
+
size: 0,
|
2185
|
+
format_created_at: '',
|
2186
|
+
url_content: "#",
|
2187
|
+
controller: "assets",
|
2188
|
+
url_thumb: ""
|
2189
|
+
};
|
2190
|
+
|
2191
|
+
var item = $(this._options.template_id).tmpl(asset).attr('qqfileid', id)
|
2192
|
+
|
2193
|
+
item.find('div.img').html('').addClass('preloader');
|
2194
|
+
item.prependTo( this._listElement );
|
2195
|
+
|
2196
|
+
this._bindCancelEvent(item);
|
2197
|
+
}
|
2198
|
+
},
|
2199
|
+
_getItemByFileId: function(id){
|
2200
|
+
return $(this._listElement).find('div[qqfileid=' + id +']').get(0);
|
2201
|
+
},
|
2202
|
+
/**
|
2203
|
+
* delegate click event for cancel link
|
2204
|
+
**/
|
2205
|
+
_bindCancelEvent: function(element){
|
2206
|
+
var self = this,
|
2207
|
+
item = $(element);
|
2208
|
+
|
2209
|
+
item.find('a.' + this._classes.cancel).bind('click', function(e){
|
2210
|
+
self._handler.cancel( item.attr('qqfileid') );
|
2211
|
+
item.remove();
|
2212
|
+
qq.preventDefault(e);
|
2213
|
+
return false;
|
2214
|
+
});
|
2215
|
+
}
|
2216
|
+
});
|
2217
|
+
|
2218
|
+
|
2219
|
+
|
2220
|
+
|
2221
|
+
|