cardboard_cms 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/Gemfile +42 -0
- data/Gemfile.lock +324 -0
- data/Guardfile +23 -0
- data/LICENSE.txt +677 -0
- data/README.md +370 -0
- data/Rakefile +23 -0
- data/app/assets/images/cardboard/.gitkeep +0 -0
- data/app/assets/images/cardboard/bg.png +0 -0
- data/app/assets/images/cardboard/calendar.png +0 -0
- data/app/assets/images/cardboard/lorem-ipsum-coffe-mug.jpg +0 -0
- data/app/assets/javascripts/cardboard.js +1 -0
- data/app/assets/javascripts/cardboard/admin.js +62 -0
- data/app/assets/javascripts/cardboard/content_sidebar.js +27 -0
- data/app/assets/javascripts/cardboard/datepicker.js +19 -0
- data/app/assets/javascripts/cardboard/main_sidebar.js +32 -0
- data/app/assets/javascripts/cardboard/rich_text.js +81 -0
- data/app/assets/javascripts/cardboard/search_filter.js +28 -0
- data/app/assets/stylesheets/cardboard.css.scss +2 -0
- data/app/assets/stylesheets/cardboard/_bootstrap-select.css.scss +183 -0
- data/app/assets/stylesheets/cardboard/_content.css.scss +35 -0
- data/app/assets/stylesheets/cardboard/_content_sidebar.css.scss +96 -0
- data/app/assets/stylesheets/cardboard/_framework.css.scss +129 -0
- data/app/assets/stylesheets/cardboard/_main_sidebar.css.scss +38 -0
- data/app/assets/stylesheets/cardboard/_main_topbar.css.scss +62 -0
- data/app/assets/stylesheets/cardboard/_resources.css.scss +28 -0
- data/app/assets/stylesheets/cardboard/_rich_text.css.scss +6 -0
- data/app/assets/stylesheets/cardboard/_variables.scss +326 -0
- data/app/assets/stylesheets/cardboard/admin.css.scss +63 -0
- data/app/controllers/cardboard/application_controller.rb +45 -0
- data/app/controllers/cardboard/dashboard_controller.rb +9 -0
- data/app/controllers/cardboard/my_account_controller.rb +27 -0
- data/app/controllers/cardboard/pages_controller.rb +34 -0
- data/app/controllers/cardboard/resource_controller.rb +61 -0
- data/app/controllers/cardboard/settings_controller.rb +28 -0
- data/app/controllers/cardboard/super_user_controller.rb +8 -0
- data/app/controllers/pages_controller.rb +29 -0
- data/app/decorators/controllers/application_controller_decorator.rb +9 -0
- data/app/decorators/lib/cardboard/user_class_decorator.rb +32 -0
- data/app/helpers/cardboard/application_helper.rb +4 -0
- data/app/helpers/cardboard/public_helper.rb +53 -0
- data/app/helpers/cardboard/resource_helper.rb +80 -0
- data/app/inputs/date_picker_input.rb +10 -0
- data/app/inputs/date_time_input.rb +7 -0
- data/app/inputs/image_input.rb +3 -0
- data/app/inputs/rich_text_input.rb +6 -0
- data/app/models/cardboard/field.rb +67 -0
- data/app/models/cardboard/field/boolean.rb +29 -0
- data/app/models/cardboard/field/date.rb +24 -0
- data/app/models/cardboard/field/decimal.rb +25 -0
- data/app/models/cardboard/field/external_link.rb +4 -0
- data/app/models/cardboard/field/file.rb +19 -0
- data/app/models/cardboard/field/image.rb +33 -0
- data/app/models/cardboard/field/integer.rb +26 -0
- data/app/models/cardboard/field/resource_link.rb +4 -0
- data/app/models/cardboard/field/rich_text.rb +21 -0
- data/app/models/cardboard/field/string.rb +16 -0
- data/app/models/cardboard/field/text.rb +15 -0
- data/app/models/cardboard/page.rb +253 -0
- data/app/models/cardboard/page_part.rb +79 -0
- data/app/models/cardboard/setting.rb +46 -0
- data/app/views/cardboard/dashboard/index.html.slim +1 -0
- data/app/views/cardboard/fields/_base_input.html.slim +1 -0
- data/app/views/cardboard/fields/_boolean.html.slim +4 -0
- data/app/views/cardboard/fields/_date.html.slim +1 -0
- data/app/views/cardboard/fields/_external_link.html.slim +2 -0
- data/app/views/cardboard/fields/_file.html.slim +12 -0
- data/app/views/cardboard/fields/_image.html.slim +11 -0
- data/app/views/cardboard/fields/_resource_link.html.slim +2 -0
- data/app/views/cardboard/fields/_rich_text.html.slim +3 -0
- data/app/views/cardboard/fields/_string.html.slim +1 -0
- data/app/views/cardboard/my_account/edit.html.slim +29 -0
- data/app/views/cardboard/pages/_error.html.slim +7 -0
- data/app/views/cardboard/pages/_seo.html.slim +6 -0
- data/app/views/cardboard/pages/_sidebar.html.slim +17 -0
- data/app/views/cardboard/pages/_subpart_fields.html.slim +20 -0
- data/app/views/cardboard/pages/_url_field.html.slim +20 -0
- data/app/views/cardboard/pages/edit.html.slim +43 -0
- data/app/views/cardboard/pages/index.html.slim +2 -0
- data/app/views/cardboard/pages/show.html.slim +9 -0
- data/app/views/cardboard/resources/_advanced_search.html.slim +40 -0
- data/app/views/cardboard/resources/_search_button.html.slim +2 -0
- data/app/views/cardboard/resources/_search_helper.html.slim +17 -0
- data/app/views/cardboard/resources/_simple_search.html.slim +6 -0
- data/app/views/cardboard/rich_editor/_links_modal.html.slim +39 -0
- data/app/views/cardboard/settings/index.html.slim +8 -0
- data/app/views/cardboard/super_user/index.html.slim +10 -0
- data/app/views/layouts/cardboard/_flash_message.html.slim +6 -0
- data/app/views/layouts/cardboard/_head.html.slim +16 -0
- data/app/views/layouts/cardboard/_main_sidebar.html.slim +12 -0
- data/app/views/layouts/cardboard/_main_topbar.html.slim +32 -0
- data/app/views/layouts/cardboard/application.html.slim +28 -0
- data/cardboard.gemspec +57 -0
- data/config/initializers/dragonfly.rb +27 -0
- data/config/initializers/ranker_mapper_finder_bugfix.rb +43 -0
- data/config/initializers/simple_form.rb +142 -0
- data/config/initializers/simple_form_bootstrap.rb +45 -0
- data/config/locales/simple_form.en.yml +26 -0
- data/config/routes.rb +53 -0
- data/doc/apple-touch-icon.png +0 -0
- data/doc/classes/Cardboard.html +190 -0
- data/doc/classes/Cardboard/AdminController.html +134 -0
- data/doc/classes/Cardboard/AdminHelper.html +307 -0
- data/doc/classes/Cardboard/ApplicationController.html +76 -0
- data/doc/classes/Cardboard/ApplicationHelper.html +70 -0
- data/doc/classes/Cardboard/DashboardController.html +131 -0
- data/doc/classes/Cardboard/Field.html +283 -0
- data/doc/classes/Cardboard/Field/Boolean.html +218 -0
- data/doc/classes/Cardboard/Field/Date.html +218 -0
- data/doc/classes/Cardboard/Field/Decimal.html +218 -0
- data/doc/classes/Cardboard/Field/ExternalLink.html +76 -0
- data/doc/classes/Cardboard/Field/File.html +131 -0
- data/doc/classes/Cardboard/Field/Image.html +181 -0
- data/doc/classes/Cardboard/Field/Integer.html +218 -0
- data/doc/classes/Cardboard/Field/ResourceLink.html +76 -0
- data/doc/classes/Cardboard/Field/RichText.html +131 -0
- data/doc/classes/Cardboard/Field/String.html +131 -0
- data/doc/classes/Cardboard/Page.html +1184 -0
- data/doc/classes/Cardboard/PagePart.html +304 -0
- data/doc/classes/Cardboard/PagesController.html +186 -0
- data/doc/classes/Cardboard/PublicHelper.html +252 -0
- data/doc/classes/Cardboard/Setting.html +240 -0
- data/doc/classes/Cardboard/SettingsController.html +184 -0
- data/doc/classes/Cardboard/SuperUserController.html +130 -0
- data/doc/classes/Cardboard/UsersController.html +191 -0
- data/doc/classes/DatePickerInput.html +132 -0
- data/doc/classes/ImageInput.html +76 -0
- data/doc/classes/Object.html +211 -0
- data/doc/classes/PagesController.html +145 -0
- data/doc/classes/RichTextInput.html +132 -0
- data/doc/created.rid +31 -0
- data/doc/css/github.css +129 -0
- data/doc/css/main.css +333 -0
- data/doc/css/panel.css +384 -0
- data/doc/css/reset.css +48 -0
- data/doc/favicon.ico +0 -0
- data/doc/files/app/controllers/cardboard/admin_controller_rb.html +79 -0
- data/doc/files/app/controllers/cardboard/application_controller_rb.html +84 -0
- data/doc/files/app/controllers/cardboard/dashboard_controller_rb.html +84 -0
- data/doc/files/app/controllers/cardboard/pages_controller_rb.html +84 -0
- data/doc/files/app/controllers/cardboard/settings_controller_rb.html +84 -0
- data/doc/files/app/controllers/cardboard/super_user_controller_rb.html +84 -0
- data/doc/files/app/controllers/cardboard/users_controller_rb.html +84 -0
- data/doc/files/app/controllers/pages_controller_rb.html +79 -0
- data/doc/files/app/decorators/controllers/application_controller_decorator_rb.html +68 -0
- data/doc/files/app/decorators/lib/cardboard/user_class_decorator_rb.html +68 -0
- data/doc/files/app/helpers/cardboard/admin_helper_rb.html +84 -0
- data/doc/files/app/helpers/cardboard/application_helper_rb.html +84 -0
- data/doc/files/app/helpers/cardboard/public_helper_rb.html +84 -0
- data/doc/files/app/inputs/date_picker_input_rb.html +79 -0
- data/doc/files/app/inputs/image_input_rb.html +79 -0
- data/doc/files/app/inputs/rich_text_input_rb.html +79 -0
- data/doc/files/app/models/cardboard/field/boolean_rb.html +84 -0
- data/doc/files/app/models/cardboard/field/date_rb.html +84 -0
- data/doc/files/app/models/cardboard/field/decimal_rb.html +84 -0
- data/doc/files/app/models/cardboard/field/external_link_rb.html +84 -0
- data/doc/files/app/models/cardboard/field/file_rb.html +84 -0
- data/doc/files/app/models/cardboard/field/image_rb.html +84 -0
- data/doc/files/app/models/cardboard/field/integer_rb.html +84 -0
- data/doc/files/app/models/cardboard/field/resource_link_rb.html +84 -0
- data/doc/files/app/models/cardboard/field/rich_text_rb.html +84 -0
- data/doc/files/app/models/cardboard/field/string_rb.html +84 -0
- data/doc/files/app/models/cardboard/field_rb.html +84 -0
- data/doc/files/app/models/cardboard/page_part_rb.html +84 -0
- data/doc/files/app/models/cardboard/page_rb.html +84 -0
- data/doc/files/app/models/cardboard/setting_rb.html +84 -0
- data/doc/i/arrows.png +0 -0
- data/doc/i/results_bg.png +0 -0
- data/doc/i/tree_bg.png +0 -0
- data/doc/index.html +13 -0
- data/doc/js/highlight.pack.js +1 -0
- data/doc/js/jquery-1.3.2.min.js +19 -0
- data/doc/js/jquery-effect.js +593 -0
- data/doc/js/main.js +24 -0
- data/doc/js/navigation.js +142 -0
- data/doc/js/search_index.js +1 -0
- data/doc/js/searchdoc.js +449 -0
- data/doc/js/searcher.js +228 -0
- data/doc/panel/index.html +73 -0
- data/doc/panel/links.html +66 -0
- data/doc/panel/tree.js +1 -0
- data/lib/cardboard/application.rb +67 -0
- data/lib/cardboard/engine.rb +83 -0
- data/lib/cardboard/helpers/seed.rb +80 -0
- data/lib/cardboard/helpers/settings.rb +58 -0
- data/lib/cardboard/version.rb +3 -0
- data/lib/cardboard_cms.rb +34 -0
- data/lib/generators/cardboard/assets/assets_generator.rb +18 -0
- data/lib/generators/cardboard/install/install_generator.rb +96 -0
- data/lib/generators/cardboard/install/templates/cardboard.rb.erb +53 -0
- data/lib/generators/cardboard/install/templates/cardboard.yml +29 -0
- data/lib/generators/cardboard/install/templates/index.html.erb +0 -0
- data/lib/generators/cardboard/install/templates/migrations/1_create_cardboard_fields.rb +21 -0
- data/lib/generators/cardboard/install/templates/migrations/2_create_cardboard_page_parts.rb +17 -0
- data/lib/generators/cardboard/install/templates/migrations/3_create_cardboard_pages.rb +18 -0
- data/lib/generators/cardboard/install/templates/migrations/4_create_cardboard_settings.rb +14 -0
- data/lib/generators/cardboard/resource/resource_generator.rb +52 -0
- data/lib/generators/cardboard/resource/templates/admin_controller.rb +9 -0
- data/lib/generators/cardboard/resource/templates/slim/_fields.html.slim +5 -0
- data/lib/generators/cardboard/resource/templates/slim/edit.html.slim +4 -0
- data/lib/generators/cardboard/resource/templates/slim/index.html.slim +18 -0
- data/lib/generators/cardboard/resource/templates/slim/new.html.slim +4 -0
- data/lib/tasks/cardboard_tasks.rake +22 -0
- data/lib/templates/erb/scaffold/_form.html.erb +13 -0
- data/script/rails +8 -0
- data/test/dummy/README.rdoc +261 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/assets/images/defaults/CrashTest.jpg +0 -0
- data/test/dummy/app/assets/javascripts/admins.js +2 -0
- data/test/dummy/app/assets/javascripts/application.js +5 -0
- data/test/dummy/app/assets/javascripts/beans.js +2 -0
- data/test/dummy/app/assets/javascripts/cardboard.js +1 -0
- data/test/dummy/app/assets/javascripts/icescreams.js +2 -0
- data/test/dummy/app/assets/javascripts/main.js +2 -0
- data/test/dummy/app/assets/javascripts/news_posts.js +2 -0
- data/test/dummy/app/assets/javascripts/pianos.js +2 -0
- data/test/dummy/app/assets/stylesheets/admins.css.scss +3 -0
- data/test/dummy/app/assets/stylesheets/application.css.scss +9 -0
- data/test/dummy/app/assets/stylesheets/beans.css.scss +3 -0
- data/test/dummy/app/assets/stylesheets/cardboard.css.scss +5 -0
- data/test/dummy/app/assets/stylesheets/icescreams.css.scss +3 -0
- data/test/dummy/app/assets/stylesheets/main.css +4 -0
- data/test/dummy/app/assets/stylesheets/news_posts.css.scss +3 -0
- data/test/dummy/app/assets/stylesheets/pianos.css.scss +3 -0
- data/test/dummy/app/assets/stylesheets/scaffolds.css.scss +69 -0
- data/test/dummy/app/controllers/application_controller.rb +3 -0
- data/test/dummy/app/controllers/cardboard/pianos_controller.rb +6 -0
- data/test/dummy/app/controllers/pianos_controller.rb +83 -0
- data/test/dummy/app/helpers/application_helper.rb +9 -0
- data/test/dummy/app/helpers/cardboard/pianos_helper.rb +7 -0
- data/test/dummy/app/mailers/.gitkeep +0 -0
- data/test/dummy/app/models/.gitkeep +0 -0
- data/test/dummy/app/models/admin_user.rb +28 -0
- data/test/dummy/app/models/piano.rb +3 -0
- data/test/dummy/app/views/cardboard/pianos/_fields.html.slim +5 -0
- data/test/dummy/app/views/cardboard/pianos/edit.html.slim +6 -0
- data/test/dummy/app/views/cardboard/pianos/index.html.slim +18 -0
- data/test/dummy/app/views/cardboard/pianos/new.html.slim +6 -0
- data/test/dummy/app/views/cardboard/pianos/show.html.slim +11 -0
- data/test/dummy/app/views/layouts/application.html.slim +24 -0
- data/test/dummy/app/views/main/index.html.slim +1 -0
- data/test/dummy/app/views/pages/about-us.html.slim +1 -0
- data/test/dummy/app/views/pages/home.html.slim +3 -0
- data/test/dummy/app/views/pianos/_form.html.erb +25 -0
- data/test/dummy/app/views/pianos/edit.html.erb +6 -0
- data/test/dummy/app/views/pianos/index.html.erb +25 -0
- data/test/dummy/app/views/pianos/new.html.erb +5 -0
- data/test/dummy/app/views/pianos/show.html.erb +15 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +50 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/cardboard.yml +126 -0
- data/test/dummy/config/database.yml +17 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +24 -0
- data/test/dummy/config/environments/production.rb +70 -0
- data/test/dummy/config/environments/test.rb +33 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/cardboard.rb +53 -0
- data/test/dummy/config/initializers/devise.rb +240 -0
- data/test/dummy/config/initializers/inflections.rb +15 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +8 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/devise.en.yml +59 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/routes.rb +16 -0
- data/test/dummy/db/migrate/20130403142235_create_pianos.rb +10 -0
- data/test/dummy/db/migrate/20130417134832_add_devise_to_admin_users.rb +53 -0
- data/test/dummy/db/migrate/20130426021522_create_news_posts.rb +10 -0
- data/test/dummy/db/migrate/20130501195423_create_icescreams.rb +10 -0
- data/test/dummy/db/migrate/20130502165540_create_beans.rb +12 -0
- data/test/dummy/db/migrate/20130522151358_create_cardboard_fields.rb +21 -0
- data/test/dummy/db/migrate/20130522151359_create_cardboard_page_parts.rb +17 -0
- data/test/dummy/db/migrate/20130522151400_create_cardboard_pages.rb +18 -0
- data/test/dummy/db/migrate/20130522151401_create_cardboard_settings.rb +14 -0
- data/test/dummy/db/migrate/20130607132558_create_admins.rb +9 -0
- data/test/dummy/db/schema.rb +129 -0
- data/test/dummy/db/seeds.rb +2 -0
- data/test/dummy/lib/assets/.gitkeep +0 -0
- data/test/dummy/log/.gitkeep +0 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +25 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/10_39_10_816_404_no_file.png +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/10_39_10_816_404_no_file.png.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/10_39_17_87_404_no_file.png +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/10_39_17_87_404_no_file.png.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/10_39_34_680_404_no_file.png +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/10_39_34_680_404_no_file.png.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/10_44_00_698_404_no_file.png +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/10_44_00_698_404_no_file.png.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/10_46_49_55_6152message_in_a_bottle.jpeg +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/10_46_49_55_6152message_in_a_bottle.jpeg.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/14_10_30_773_404_no_file.png +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/14_10_30_773_404_no_file.png.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/14_10_38_856_airport_shuttles_20130207_1647.csv +8 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/14_10_38_856_airport_shuttles_20130207_1647.csv.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/14_12_12_144_1361696555_GMail_Android_R.png +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/14_12_12_144_1361696555_GMail_Android_R.png.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/14_16_40_989_404_no_file.png +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/14_16_40_989_404_no_file.png.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/14_19_19_40_6152message_in_a_bottle.jpeg +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/14_19_19_40_6152message_in_a_bottle.jpeg.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/14_21_21_825_6152message_in_a_bottle.jpeg +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/14_21_21_825_6152message_in_a_bottle.jpeg.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/15_46_33_341_bio.jpg +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/15_46_33_341_bio.jpg.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/15_52_55_892_404_no_file.png +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/15_52_55_892_404_no_file.png.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/15_52_56_30_404_no_file.png +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/15_52_56_30_404_no_file.png.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/15_24_04_585_Sky_3920445.jpg +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/15_24_04_585_Sky_3920445.jpg.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/15_25_41_111_Sky_3920445.jpg +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/15_25_41_111_Sky_3920445.jpg.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/15_27_16_937_Sky_3920445.jpg +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/15_27_16_937_Sky_3920445.jpg.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/15_27_57_585_Sky_3920445.jpg +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/15_27_57_585_Sky_3920445.jpg.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/15_28_24_991_Sky_3920445.jpg +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/15_28_24_991_Sky_3920445.jpg.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/15_33_30_610_Sky_3920445.jpg +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/15_33_30_610_Sky_3920445.jpg.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/15_35_18_437_Sky_3920445.jpg +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/15_35_18_437_Sky_3920445.jpg.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/16_45_07_162_Vehicle_Types.jpg +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/16_45_07_162_Vehicle_Types.jpg.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/18/22_27_35_733_hall.jpg +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/18/22_27_35_733_hall.jpg.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/18/22_29_15_808_fluidicon.png +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/18/22_29_15_808_fluidicon.png.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/18/22_29_15_989_fluidicon.png +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/18/22_29_15_989_fluidicon.png.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/19/09_54_44_881_hall3.jpg +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/19/09_54_44_881_hall3.jpg.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/19/09_54_45_450_hall3.jpg +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/19/09_54_45_450_hall3.jpg.meta +2 -0
- data/test/dummy/script/rails +6 -0
- data/test/dummy/test/fixtures/admins.yml +7 -0
- data/test/dummy/test/functional/admins_controller_test.rb +49 -0
- data/test/dummy/test/unit/admin_test.rb +7 -0
- data/test/dummy/test/unit/helpers/admins_helper_test.rb +4 -0
- data/test/factories.rb +47 -0
- data/test/integration/page_editing_test.rb +77 -0
- data/test/integration/seeding_test.rb +96 -0
- data/test/models/field_test.rb +102 -0
- data/test/models/page_test.rb +105 -0
- data/test/test_helper.rb +40 -0
- data/vendor/assets/javascripts/cardboard/bootstrap-select.js +590 -0
- data/vendor/assets/javascripts/cardboard/jquery.livesearch.js +48 -0
- data/vendor/assets/javascripts/cardboard/jquery.pjax.js +822 -0
- data/vendor/assets/javascripts/cardboard/jquery.wysihtml5_size_matters.js.coffee +44 -0
- data/vendor/assets/javascripts/cardboard/jquery.wysihtml5imgresizer.js +320 -0
- data/vendor/assets/javascripts/cardboard/wysihtml5-0.4.0pre.js +9579 -0
- metadata +1011 -0
@@ -0,0 +1,27 @@
|
|
1
|
+
$(document).ready(function(){
|
2
|
+
|
3
|
+
var updateURL = $('#content_pages').attr('data-update-url');
|
4
|
+
|
5
|
+
var sortableSettings = {
|
6
|
+
axis: "y",
|
7
|
+
handle: ".sort_handle",
|
8
|
+
update: postRefresh
|
9
|
+
}
|
10
|
+
|
11
|
+
$('#content_pages, .page_group').sortable(sortableSettings);
|
12
|
+
|
13
|
+
function postRefresh(event, ui) {
|
14
|
+
var content = ui.item.html();
|
15
|
+
|
16
|
+
// post results to server and save effect
|
17
|
+
$.post(updateURL, {id: ui.item.attr('id').replace('pages_', ''), index: ui.item.index()})
|
18
|
+
.done(function() {
|
19
|
+
$(ui.item).html('<div class="link_wrap"><a href="#" class="offset-0 saving">Saved!</a></div>');
|
20
|
+
setTimeout(function(){
|
21
|
+
$(ui.item).html(content);
|
22
|
+
$('#content_pages, .page_group').sortable(sortableSettings);
|
23
|
+
}, 800);
|
24
|
+
});
|
25
|
+
}
|
26
|
+
|
27
|
+
});
|
@@ -0,0 +1,19 @@
|
|
1
|
+
var create_datepickers = function(){
|
2
|
+
|
3
|
+
$('input.datepicker').datepicker({format: 'yyyy-mm-dd'}).on('changeDate', function() {
|
4
|
+
$(this).data('datepicker').hide();
|
5
|
+
});
|
6
|
+
|
7
|
+
// $('input.datetimepicker').datepicker({format: "yyyy-mm-dd HH:mm pp", pick12HourFormat: true}).on('changeDate', function() {
|
8
|
+
// $(this).data('datepicker').hide();
|
9
|
+
// });
|
10
|
+
}
|
11
|
+
|
12
|
+
|
13
|
+
$(document).on("ready pjax:end", function () {
|
14
|
+
create_datepickers();
|
15
|
+
|
16
|
+
$(document).on('cocoon:after-insert', function(e, insertedItem) {
|
17
|
+
create_datepickers();
|
18
|
+
});
|
19
|
+
});
|
@@ -0,0 +1,32 @@
|
|
1
|
+
$(function(){
|
2
|
+
$("a#nav_dashboard_link").click(function(e){
|
3
|
+
e.preventDefault();
|
4
|
+
$("#content_sidebar").toggleClass('toggle');
|
5
|
+
$('#content').toggleClass('toggle');
|
6
|
+
// $(this).toggleClass('active');
|
7
|
+
});
|
8
|
+
|
9
|
+
|
10
|
+
// Filter page sidebar
|
11
|
+
$('#sidebar_page_search').search('.page_link', function(on) {
|
12
|
+
on.all(function(results) {
|
13
|
+
var size = results ? results.size() : 0
|
14
|
+
});
|
15
|
+
|
16
|
+
on.reset(function() {
|
17
|
+
$('#sidebar_page_search_none').hide();
|
18
|
+
$('.page_link').show();
|
19
|
+
});
|
20
|
+
|
21
|
+
on.empty(function() {
|
22
|
+
$('#sidebar_page_search_none').show();
|
23
|
+
$('.page_link').hide();
|
24
|
+
});
|
25
|
+
|
26
|
+
on.results(function(results) {
|
27
|
+
$('#sidebar_page_search_none').hide();
|
28
|
+
$('.page_link').hide();
|
29
|
+
results.show();
|
30
|
+
});
|
31
|
+
});
|
32
|
+
});
|
@@ -0,0 +1,81 @@
|
|
1
|
+
//= require cardboard/wysihtml5-0.4.0pre
|
2
|
+
//= require bootstrap-wysihtml5/core
|
3
|
+
|
4
|
+
$(document).on('page:load', function(){
|
5
|
+
window['rangy'].initialized = false
|
6
|
+
})
|
7
|
+
|
8
|
+
var wysihtml5ParserRules = {
|
9
|
+
tags: {
|
10
|
+
"b": {},
|
11
|
+
"i": {},
|
12
|
+
"br": {},
|
13
|
+
"ol": {},
|
14
|
+
"ul": {},
|
15
|
+
"li": {},
|
16
|
+
"h1": {},
|
17
|
+
"h2": {},
|
18
|
+
"h3": {},
|
19
|
+
"blockquote": {},
|
20
|
+
"u": 1,
|
21
|
+
"img": {
|
22
|
+
"check_attributes": {
|
23
|
+
"width": "numbers",
|
24
|
+
"alt": "alt",
|
25
|
+
"src": "url",
|
26
|
+
"height": "numbers"
|
27
|
+
}
|
28
|
+
},
|
29
|
+
"a": {
|
30
|
+
set_attributes: {
|
31
|
+
target: "_blank",
|
32
|
+
// rel: "nofollow"
|
33
|
+
},
|
34
|
+
check_attributes: {
|
35
|
+
href: "href" // important to avoid XSS
|
36
|
+
}
|
37
|
+
},
|
38
|
+
"span": 1,
|
39
|
+
"div": 1,
|
40
|
+
// to allow save and edit files with code tag hacks
|
41
|
+
"code": 1,
|
42
|
+
"pre": 1
|
43
|
+
}
|
44
|
+
};
|
45
|
+
|
46
|
+
|
47
|
+
var page_links_template = {
|
48
|
+
link: function() { return gon.rich_text_links_modal; }
|
49
|
+
}
|
50
|
+
|
51
|
+
var rich_text_editor_defaults = {
|
52
|
+
image: false,
|
53
|
+
customTemplates: page_links_template,
|
54
|
+
parserRules: wysihtml5ParserRules,
|
55
|
+
useLineBreaks: false
|
56
|
+
}
|
57
|
+
|
58
|
+
$(document).on("ready pjax:end", function(e){
|
59
|
+
// console.log($(".wysihtml5").length);
|
60
|
+
if($(".wysihtml5").length) {
|
61
|
+
$('.wysihtml5').wysihtml5(rich_text_editor_defaults);
|
62
|
+
}
|
63
|
+
});
|
64
|
+
|
65
|
+
$(document).on('cocoon:after-insert', function(e, insertedItem) {
|
66
|
+
if($(insertedItem).find(".wysihtml5").length){
|
67
|
+
$(insertedItem).find(".wysihtml5").wysihtml5(rich_text_editor_defaults);
|
68
|
+
}
|
69
|
+
});
|
70
|
+
|
71
|
+
$(document).on('click', '.bootstrap-wysihtml5-insert-link-modal #link_pages a', function(e){
|
72
|
+
e.preventDefault;
|
73
|
+
modal = $(this).closest(".bootstrap-wysihtml5-insert-link-modal");
|
74
|
+
modal.find("input.bootstrap-wysihtml5-insert-link-url").val($(this).data("url"));
|
75
|
+
modal.find("#insert_link").click();
|
76
|
+
return false;
|
77
|
+
});
|
78
|
+
|
79
|
+
$(document).on('change', '.bootstrap-wysihtml5-insert-link-modal .tab-pane input', function(){
|
80
|
+
$(this).closest('.bootstrap-wysihtml5-insert-link-modal').find('.bootstrap-wysihtml5-insert-link-url').val($(this).val());
|
81
|
+
});
|
@@ -0,0 +1,28 @@
|
|
1
|
+
$(function(){
|
2
|
+
var ransack_options;
|
3
|
+
|
4
|
+
$(document).on("pjax:end ready", function(e){
|
5
|
+
ransack_options = $("select#ransack_options").html();
|
6
|
+
$("select#advanced_field").trigger("change");
|
7
|
+
})
|
8
|
+
|
9
|
+
$(document).on('change', "select#advanced_field", function(){
|
10
|
+
var type = $(this).find(":selected").data("type");
|
11
|
+
var options = $(ransack_options).filter("optgroup[label='" + type + "']").html()
|
12
|
+
$("select#ransack_options").html(options).trigger("change");
|
13
|
+
$("select#ransack_options").selectpicker('refresh');
|
14
|
+
});
|
15
|
+
|
16
|
+
$(document).on('change',"select#ransack_options", function(){
|
17
|
+
var field_name = $("select#advanced_field").find(":selected").val() +"_" + $(this).val();
|
18
|
+
$("#advanced_query").attr("name", "q["+field_name+"]").val("");
|
19
|
+
});
|
20
|
+
$(document).on('click', "#advanced_search_link", function(){
|
21
|
+
$("#simple_search").hide();
|
22
|
+
$("#advanced_search").show();
|
23
|
+
});
|
24
|
+
$(document).on('click', "#simple_search_link", function(){
|
25
|
+
$("#advanced_search").hide();
|
26
|
+
$("#simple_search").show();
|
27
|
+
});
|
28
|
+
});
|
@@ -0,0 +1,183 @@
|
|
1
|
+
.bootstrap-select.btn-group,
|
2
|
+
.bootstrap-select.btn-group[class*="span"] {
|
3
|
+
float: none;
|
4
|
+
display: inline-block;
|
5
|
+
margin-bottom: 10px;
|
6
|
+
margin-left: 0;
|
7
|
+
}
|
8
|
+
.form-search .bootstrap-select.btn-group,
|
9
|
+
.form-inline .bootstrap-select.btn-group,
|
10
|
+
.form-horizontal .bootstrap-select.btn-group {
|
11
|
+
margin-bottom: 0;
|
12
|
+
}
|
13
|
+
|
14
|
+
.bootstrap-select.btn-group.pull-right,
|
15
|
+
.bootstrap-select.btn-group[class*="span"].pull-right,
|
16
|
+
.row-fluid .bootstrap-select.btn-group[class*="span"].pull-right {
|
17
|
+
float: right;
|
18
|
+
}
|
19
|
+
|
20
|
+
.input-append .bootstrap-select.btn-group {
|
21
|
+
margin-left: -1px;
|
22
|
+
}
|
23
|
+
|
24
|
+
.input-prepend .bootstrap-select.btn-group {
|
25
|
+
margin-right: -1px;
|
26
|
+
}
|
27
|
+
|
28
|
+
.bootstrap-select:not([class*="span"]) {
|
29
|
+
width: 220px;
|
30
|
+
}
|
31
|
+
|
32
|
+
.bootstrap-select {
|
33
|
+
width: 220px\9; /*IE8 and below*/
|
34
|
+
}
|
35
|
+
|
36
|
+
.bootstrap-select .btn {
|
37
|
+
width: 100%;
|
38
|
+
}
|
39
|
+
|
40
|
+
.bootstrap-select.show-menu-arrow.open .btn {
|
41
|
+
z-index: 1001;
|
42
|
+
}
|
43
|
+
|
44
|
+
.bootstrap-select .btn:focus {
|
45
|
+
outline: thin dotted #333333 !important;
|
46
|
+
outline: 5px auto -webkit-focus-ring-color !important;
|
47
|
+
outline-offset: -2px;
|
48
|
+
}
|
49
|
+
|
50
|
+
.bootstrap-select.btn-group .btn .filter-option {
|
51
|
+
overflow: hidden;
|
52
|
+
position: absolute;
|
53
|
+
left: 12px;
|
54
|
+
right: 25px;
|
55
|
+
text-align: left;
|
56
|
+
}
|
57
|
+
|
58
|
+
.bootstrap-select.btn-group .btn .caret {
|
59
|
+
position: absolute;
|
60
|
+
right: 12px;
|
61
|
+
}
|
62
|
+
|
63
|
+
.bootstrap-select.btn-group > .disabled,
|
64
|
+
.bootstrap-select.btn-group .dropdown-menu li.disabled > a {
|
65
|
+
cursor: not-allowed;
|
66
|
+
}
|
67
|
+
|
68
|
+
.bootstrap-select.btn-group[class*="span"] .btn {
|
69
|
+
width: 100%;
|
70
|
+
}
|
71
|
+
|
72
|
+
.bootstrap-select.btn-group .dropdown-menu {
|
73
|
+
min-width: 100%;
|
74
|
+
-moz-box-sizing: border-box;
|
75
|
+
-webkit-box-sizing: border-box;
|
76
|
+
box-sizing: border-box;
|
77
|
+
}
|
78
|
+
|
79
|
+
.bootstrap-select.btn-group .dropdown-menu dt {
|
80
|
+
display: block;
|
81
|
+
padding: 3px 20px;
|
82
|
+
cursor: default;
|
83
|
+
}
|
84
|
+
|
85
|
+
.bootstrap-select.btn-group .div-contain {
|
86
|
+
overflow: hidden;
|
87
|
+
}
|
88
|
+
|
89
|
+
.bootstrap-select.btn-group .dropdown-menu li > a.opt {
|
90
|
+
padding-left: 35px;
|
91
|
+
}
|
92
|
+
|
93
|
+
.bootstrap-select.btn-group .dropdown-menu li > a {
|
94
|
+
min-height: 20px;
|
95
|
+
cursor: pointer;
|
96
|
+
}
|
97
|
+
|
98
|
+
.bootstrap-select.btn-group .dropdown-menu li > dt small {
|
99
|
+
font-weight: normal;
|
100
|
+
}
|
101
|
+
|
102
|
+
.bootstrap-select.btn-group.show-tick .dropdown-menu li.selected a i.check-mark {
|
103
|
+
display: inline-block;
|
104
|
+
position: absolute;
|
105
|
+
right: 15px;
|
106
|
+
margin-top: 2.5px;
|
107
|
+
}
|
108
|
+
|
109
|
+
.bootstrap-select.btn-group .dropdown-menu li a i.check-mark {
|
110
|
+
display: none;
|
111
|
+
}
|
112
|
+
|
113
|
+
.bootstrap-select.btn-group.show-tick .dropdown-menu li a span.text {
|
114
|
+
margin-right: 34px;
|
115
|
+
}
|
116
|
+
|
117
|
+
.bootstrap-select.btn-group .dropdown-menu li small {
|
118
|
+
padding-left: 0.5em;
|
119
|
+
}
|
120
|
+
|
121
|
+
.bootstrap-select.btn-group .dropdown-menu li:not(.disabled) > a:hover small,
|
122
|
+
.bootstrap-select.btn-group .dropdown-menu li:not(.disabled) > a:focus small {
|
123
|
+
color: #64b1d8;
|
124
|
+
color: rgba(255,255,255,0.4);
|
125
|
+
}
|
126
|
+
|
127
|
+
.bootstrap-select.btn-group .dropdown-menu li > dt small {
|
128
|
+
font-weight: normal;
|
129
|
+
}
|
130
|
+
|
131
|
+
.bootstrap-select.show-menu-arrow .dropdown-toggle:before {
|
132
|
+
content: '';
|
133
|
+
display: inline-block;
|
134
|
+
border-left: 7px solid transparent;
|
135
|
+
border-right: 7px solid transparent;
|
136
|
+
border-bottom: 7px solid #CCC;
|
137
|
+
border-bottom-color: rgba(0, 0, 0, 0.2);
|
138
|
+
position: absolute;
|
139
|
+
bottom: -4px;
|
140
|
+
left: 9px;
|
141
|
+
display: none;
|
142
|
+
}
|
143
|
+
|
144
|
+
.bootstrap-select.show-menu-arrow .dropdown-toggle:after {
|
145
|
+
content: '';
|
146
|
+
display: inline-block;
|
147
|
+
border-left: 6px solid transparent;
|
148
|
+
border-right: 6px solid transparent;
|
149
|
+
border-bottom: 6px solid white;
|
150
|
+
position: absolute;
|
151
|
+
bottom: -4px;
|
152
|
+
left: 10px;
|
153
|
+
display: none;
|
154
|
+
}
|
155
|
+
|
156
|
+
.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:before {
|
157
|
+
bottom: auto;
|
158
|
+
top: -3px;
|
159
|
+
border-top: 7px solid #ccc;
|
160
|
+
border-bottom: 0;
|
161
|
+
border-top-color: rgba(0, 0, 0, 0.2);
|
162
|
+
}
|
163
|
+
|
164
|
+
.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:after {
|
165
|
+
bottom: auto;
|
166
|
+
top: -3px;
|
167
|
+
border-top: 6px solid #ffffff;
|
168
|
+
border-bottom: 0;
|
169
|
+
}
|
170
|
+
|
171
|
+
.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:before {
|
172
|
+
right: 12px;
|
173
|
+
left: auto;
|
174
|
+
}
|
175
|
+
.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:after {
|
176
|
+
right: 13px;
|
177
|
+
left: auto;
|
178
|
+
}
|
179
|
+
|
180
|
+
.bootstrap-select.show-menu-arrow.open > .dropdown-toggle:before,
|
181
|
+
.bootstrap-select.show-menu-arrow.open > .dropdown-toggle:after {
|
182
|
+
display: block;
|
183
|
+
}
|
@@ -0,0 +1,35 @@
|
|
1
|
+
#content {
|
2
|
+
|
3
|
+
@include box-sizing(border-box);
|
4
|
+
|
5
|
+
display: block;
|
6
|
+
padding: 20px 40px;
|
7
|
+
|
8
|
+
height: 100%;
|
9
|
+
|
10
|
+
margin-left: $main_sidebar_width;
|
11
|
+
// -webkit-transition:all $page_nav_slide_speed ease;
|
12
|
+
// -moz-transition:all $page_nav_slide_speed ease;
|
13
|
+
|
14
|
+
&.toggle{
|
15
|
+
margin-left: $main_sidebar_width + $content_sidebar_width;
|
16
|
+
// -webkit-transition:all $page_nav_slide_speed ease;
|
17
|
+
// -moz-transition:all $page_nav_slide_speed ease;
|
18
|
+
}
|
19
|
+
|
20
|
+
h1, h2, h3, h4, h5, h6 {
|
21
|
+
margin: 0px 0px 20px 0px;
|
22
|
+
}
|
23
|
+
|
24
|
+
fieldset{
|
25
|
+
margin-top: 20px;
|
26
|
+
}
|
27
|
+
|
28
|
+
|
29
|
+
@include box-sizing(border-box);
|
30
|
+
}
|
31
|
+
|
32
|
+
#main_content{
|
33
|
+
background: $content_background;
|
34
|
+
}
|
35
|
+
|
@@ -0,0 +1,96 @@
|
|
1
|
+
#content_sidebar{
|
2
|
+
z-index: $main_sidebar_background_zindex - 1;
|
3
|
+
@include box-sizing(border-box);
|
4
|
+
// position: absolute;
|
5
|
+
// top: $main_topbar_height;// top: 0px;
|
6
|
+
// left: - $main_sidebar_width - 90px;
|
7
|
+
width: $content_sidebar_width;
|
8
|
+
|
9
|
+
// overflow: hidden;
|
10
|
+
background: #fff;
|
11
|
+
// -webkit-transition: left $page_nav_slide_speed ease;
|
12
|
+
// -moz-transition: left $page_nav_slide_speed ease;
|
13
|
+
padding: 18px 25px 10px 25px;
|
14
|
+
box-shadow: $main_content_sidebar_shadow;
|
15
|
+
display: none;
|
16
|
+
|
17
|
+
&.toggle {
|
18
|
+
display: block;
|
19
|
+
// left: $main_sidebar_width;
|
20
|
+
// -webkit-transition: left $page_nav_slide_speed ease;
|
21
|
+
// -moz-transition: left $page_nav_slide_speed ease;
|
22
|
+
}
|
23
|
+
|
24
|
+
|
25
|
+
|
26
|
+
#sidebar_page_search{
|
27
|
+
width: 90%;
|
28
|
+
}
|
29
|
+
|
30
|
+
#content_pages {
|
31
|
+
& > .page_link:first-child > .link_wrap {
|
32
|
+
& > a {
|
33
|
+
font-weight: 900;
|
34
|
+
}
|
35
|
+
}
|
36
|
+
|
37
|
+
.page_link{
|
38
|
+
|
39
|
+
> &:first-child {
|
40
|
+
background: black;
|
41
|
+
}
|
42
|
+
|
43
|
+
&.ui-sortable-helper {
|
44
|
+
.link_wrap a {
|
45
|
+
border-bottom: 0px;
|
46
|
+
}
|
47
|
+
}
|
48
|
+
|
49
|
+
.link_wrap{
|
50
|
+
position: relative;
|
51
|
+
|
52
|
+
&:hover {
|
53
|
+
> .sort_handle {
|
54
|
+
display: block;
|
55
|
+
}
|
56
|
+
}
|
57
|
+
|
58
|
+
a{
|
59
|
+
color: $brand_color;
|
60
|
+
border-bottom: 1px solid lighten($black, 90%);
|
61
|
+
display: block;
|
62
|
+
padding-top: 10px;
|
63
|
+
padding-bottom: 10px;
|
64
|
+
|
65
|
+
&.saving {
|
66
|
+
color: $successText;
|
67
|
+
background: $successBackground;
|
68
|
+
padding-left: 10px
|
69
|
+
}
|
70
|
+
}
|
71
|
+
|
72
|
+
.sort_handle {
|
73
|
+
position: absolute;
|
74
|
+
right: 0px;
|
75
|
+
top: 10px;
|
76
|
+
color: #ccc;
|
77
|
+
display: none;
|
78
|
+
|
79
|
+
.icon-reorder {
|
80
|
+
cursor: pointer;
|
81
|
+
cursor: hand;
|
82
|
+
}
|
83
|
+
}
|
84
|
+
}
|
85
|
+
|
86
|
+
$indent-width: 15px;
|
87
|
+
@for $i from 0 through 10 {
|
88
|
+
.offset-#{$i} {
|
89
|
+
padding-left: $i * $indent-width;
|
90
|
+
}
|
91
|
+
}
|
92
|
+
|
93
|
+
}
|
94
|
+
}
|
95
|
+
|
96
|
+
}
|