constructor-pages 0.7.0 → 0.7.2
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/.gitignore +14 -0
- data/.rspec +2 -0
- data/.travis.yml +13 -0
- data/.yardopts +9 -0
- data/Gemfile +31 -0
- data/Guardfile +15 -0
- data/LICENSE.md +7 -0
- data/README.md +35 -0
- data/Rakefile +19 -0
- data/bin/rails +8 -0
- data/config.ru +4 -0
- data/config/routes.rb +4 -27
- data/constructor-cms.gemspec +26 -0
- data/core/app/assets/images/constructor_core/glyphicons-halflings-white.png +0 -0
- data/core/app/assets/images/constructor_core/glyphicons-halflings.png +0 -0
- data/core/app/assets/images/constructor_core/minus.gif +0 -0
- data/core/app/assets/images/constructor_core/plus.gif +0 -0
- data/core/app/assets/images/constructor_core/rss.png +0 -0
- data/core/app/assets/images/constructor_core/treeview-black-line.gif +0 -0
- data/core/app/assets/images/constructor_core/treeview-black.gif +0 -0
- data/core/app/assets/images/constructor_core/treeview-default-line.gif +0 -0
- data/core/app/assets/images/constructor_core/treeview-default.gif +0 -0
- data/core/app/assets/images/constructor_core/treeview-famfamfam-line.gif +0 -0
- data/core/app/assets/images/constructor_core/treeview-famfamfam.gif +0 -0
- data/core/app/assets/images/constructor_core/treeview-gray-line.gif +0 -0
- data/core/app/assets/images/constructor_core/treeview-gray.gif +0 -0
- data/core/app/assets/images/constructor_core/treeview-red-line.gif +0 -0
- data/core/app/assets/images/constructor_core/treeview-red.gif +0 -0
- data/core/app/assets/images/constructor_core/twitter.png +0 -0
- data/core/app/assets/images/constructor_core/widgets.png +0 -0
- data/core/app/assets/javascripts/constructor_core/application.js.coffee +52 -0
- data/core/app/assets/javascripts/constructor_core/bootstrap.js +2276 -0
- data/core/app/assets/javascripts/constructor_core/jquery.cookie.js +92 -0
- data/core/app/assets/javascripts/constructor_core/jquery_bundle.js.coffee +3 -0
- data/core/app/assets/javascripts/constructor_core/keys_snippet.js +33 -0
- data/core/app/assets/javascripts/constructor_core/retina.js +148 -0
- data/core/app/assets/javascripts/constructor_core/urlify.js +82 -0
- data/core/app/assets/stylesheets/constructor_core/application.css.scss +3 -0
- data/core/app/assets/stylesheets/constructor_core/main.css.scss +229 -0
- data/core/app/controllers/constructor_core/application_controller.rb +31 -0
- data/core/app/controllers/constructor_core/sessions_controller.rb +15 -0
- data/core/app/controllers/constructor_core/users_controller.rb +24 -0
- data/core/app/helpers/constructor_core/application_helper.rb +9 -0
- data/core/app/models/constructor_core/user.rb +7 -0
- data/core/app/views/constructor_core/devise/confirmations/new.html.haml +10 -0
- data/core/app/views/constructor_core/devise/mailer/confirmation_instructions.html.haml +5 -0
- data/core/app/views/constructor_core/devise/mailer/reset_password_instructions.html.haml +7 -0
- data/core/app/views/constructor_core/devise/mailer/unlock_instructions.html.haml +5 -0
- data/core/app/views/constructor_core/devise/passwords/edit.html.haml +21 -0
- data/core/app/views/constructor_core/devise/passwords/new.html.haml +13 -0
- data/core/app/views/constructor_core/devise/registrations/edit.html.haml +28 -0
- data/core/app/views/constructor_core/devise/registrations/new.html.haml +20 -0
- data/core/app/views/constructor_core/devise/shared/_links.html.haml +19 -0
- data/core/app/views/constructor_core/devise/unlocks/new.html.haml +9 -0
- data/core/app/views/constructor_core/sessions/new.html.haml +22 -0
- data/core/app/views/constructor_core/users/profile.haml +16 -0
- data/core/app/views/layouts/constructor_core/application.haml +93 -0
- data/core/config/environments/production.rb +3 -0
- data/core/config/initializers/devise.rb +15 -0
- data/core/config/locales/devise.en.yml +56 -0
- data/core/config/locales/devise.fr.yml +74 -0
- data/core/config/locales/devise.ru.yml +52 -0
- data/core/config/locales/en.yml +15 -0
- data/core/config/locales/fr.yml +15 -0
- data/core/config/locales/ru.yml +27 -0
- data/core/config/routes.rb +18 -0
- data/core/constructor-core.gemspec +24 -0
- data/core/db/migrate/1_devise_users.rb +24 -0
- data/core/db/migrate/2_add_default_user.rb +9 -0
- data/core/lib/constructor-core.rb +25 -0
- data/core/lib/constructor_core/engine.rb +6 -0
- data/core/lib/constructor_core/version.rb +3 -0
- data/{spec/helpers/constructor_pages/.keep → core/vendor/assets/javascripts/.gitkeep} +0 -0
- data/core/vendor/assets/javascripts/ckeditor/ckeditor.js +913 -0
- data/core/vendor/assets/javascripts/ckeditor/config.js +38 -0
- data/core/vendor/assets/javascripts/ckeditor/lang/en.js +5 -0
- data/core/vendor/assets/javascripts/ckeditor/lang/ru.js +5 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +10 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt +25 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js +10 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/da.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/de.js +10 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/el.js +10 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/en.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js +10 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/es.js +10 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/et.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js +10 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js +10 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/he.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/it.js +10 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ja.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/km.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js +10 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js +10 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js +10 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/no.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js +10 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js +10 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/sv.js +10 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/th.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js +10 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js +7 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/about/dialogs/about.js +6 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/clipboard/dialogs/paste.js +11 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/colordialog/dialogs/colordialog.js +13 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/dialog/dialogDefinition.js +4 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/div/dialogs/div.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/fakeobjects/images/spacer.gif +0 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/find/dialogs/find.js +24 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/icons.png +0 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/iframe/dialogs/iframe.js +10 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/iframe/images/placeholder.png +0 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/image/dialogs/image.js +43 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/image/images/noimage.png +0 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/link/dialogs/anchor.js +8 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/link/dialogs/link.js +36 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/link/images/anchor.png +0 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/liststyle/dialogs/liststyle.js +10 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/magicline/images/icon.png +0 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/pastefromword/filter/default.js +31 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/preview/preview.html +10 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/scayt/LICENSE.md +28 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/scayt/README.md +25 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/scayt/dialogs/options.js +20 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/scayt/dialogs/toolbar.css +71 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_address.png +0 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_blockquote.png +0 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_div.png +0 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_h1.png +0 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_h2.png +0 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_h3.png +0 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_h4.png +0 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_h5.png +0 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_h6.png +0 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_p.png +0 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_pre.png +0 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt +20 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/ca.js +13 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/cs.js +13 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/cy.js +14 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/de.js +13 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/el.js +13 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/en.js +13 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/eo.js +12 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/et.js +13 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/fa.js +12 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/fi.js +13 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/fr.js +11 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/he.js +13 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/hr.js +13 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/it.js +14 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/ku.js +13 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/lv.js +13 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/nb.js +11 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/nl.js +13 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/no.js +11 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/pl.js +12 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js +11 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/sk.js +13 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/sv.js +11 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/th.js +13 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/tr.js +12 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/ug.js +13 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js +9 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/specialchar.js +14 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/table/dialogs/table.js +21 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/tabletools/dialogs/tableCell.js +16 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/templates/dialogs/templates.css +84 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/templates/dialogs/templates.js +10 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/templates/templates/default.js +6 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/templates/templates/images/template1.gif +0 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/templates/templates/images/template2.gif +0 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/templates/templates/images/template3.gif +0 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/wsc/LICENSE.md +28 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/wsc/README.md +25 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/ciframe.html +49 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +52 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/wsc.css +82 -0
- data/core/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/wsc.js +11 -0
- data/core/vendor/assets/javascripts/ckeditor/styles.js +111 -0
- data/{spec/routing/constructor_pages/.keep → core/vendor/assets/stylesheets/.gitkeep} +0 -0
- data/core/vendor/assets/stylesheets/ckeditor/contents.css +103 -0
- data/core/vendor/assets/stylesheets/ckeditor/skins/moono/dialog.css +5 -0
- data/core/vendor/assets/stylesheets/ckeditor/skins/moono/dialog_ie.css +5 -0
- data/core/vendor/assets/stylesheets/ckeditor/skins/moono/dialog_ie7.css +5 -0
- data/core/vendor/assets/stylesheets/ckeditor/skins/moono/dialog_ie8.css +5 -0
- data/core/vendor/assets/stylesheets/ckeditor/skins/moono/dialog_opera.css +5 -0
- data/core/vendor/assets/stylesheets/ckeditor/skins/moono/editor.css +5 -0
- data/core/vendor/assets/stylesheets/ckeditor/skins/moono/editor_gecko.css +5 -0
- data/core/vendor/assets/stylesheets/ckeditor/skins/moono/editor_ie.css +5 -0
- data/core/vendor/assets/stylesheets/ckeditor/skins/moono/editor_ie7.css +5 -0
- data/core/vendor/assets/stylesheets/ckeditor/skins/moono/editor_ie8.css +5 -0
- data/core/vendor/assets/stylesheets/ckeditor/skins/moono/icons.png +0 -0
- data/core/vendor/assets/stylesheets/ckeditor/skins/moono/images/arrow.png +0 -0
- data/core/vendor/assets/stylesheets/ckeditor/skins/moono/images/close.png +0 -0
- data/core/vendor/assets/stylesheets/ckeditor/skins/moono/images/mini.png +0 -0
- data/core/vendor/assets/stylesheets/ckeditor/skins/moono/readme.md +51 -0
- data/lib/constructor-cms.rb +3 -0
- data/lib/constructor-cms/engine.rb +6 -0
- data/{app → pages/app}/assets/images/constructor_pages/arrow_down.png +0 -0
- data/{app → pages/app}/assets/images/constructor_pages/arrow_up.png +0 -0
- data/{app → pages/app}/assets/images/constructor_pages/information.png +0 -0
- data/{app → pages/app}/assets/images/constructor_pages/page_white_edit.png +0 -0
- data/{app → pages/app}/assets/images/constructor_pages/photos.png +0 -0
- data/{app → pages/app}/assets/javascripts/constructor_pages/ajax_pages.js +0 -0
- data/{app → pages/app}/assets/javascripts/constructor_pages/jquery.history.js +0 -0
- data/{app → pages/app}/controllers/constructor_pages/application_controller.rb +0 -0
- data/{app → pages/app}/controllers/constructor_pages/fields_controller.rb +10 -15
- data/{app → pages/app}/controllers/constructor_pages/pages_controller.rb +0 -0
- data/{app → pages/app}/controllers/constructor_pages/templates_controller.rb +0 -0
- data/pages/app/helpers/constructor_pages/code_name_uniq.rb +7 -0
- data/{app → pages/app}/helpers/constructor_pages/fields_helper.rb +0 -0
- data/{app → pages/app}/helpers/constructor_pages/pages_helper.rb +0 -0
- data/{app → pages/app}/helpers/constructor_pages/templates_helper.rb +0 -0
- data/{app → pages/app}/helpers/constructor_pages/treeview_helper.rb +0 -0
- data/{app → pages/app}/models/constructor_pages/field.rb +12 -40
- data/{app → pages/app}/models/constructor_pages/page.rb +26 -70
- data/{app → pages/app}/models/constructor_pages/template.rb +4 -12
- data/{app → pages/app}/models/constructor_pages/types/boolean_type.rb +0 -0
- data/{app → pages/app}/models/constructor_pages/types/date_type.rb +0 -0
- data/{app → pages/app}/models/constructor_pages/types/float_type.rb +0 -0
- data/{app → pages/app}/models/constructor_pages/types/html_type.rb +0 -0
- data/{app → pages/app}/models/constructor_pages/types/image_type.rb +0 -0
- data/{app → pages/app}/models/constructor_pages/types/integer_type.rb +0 -0
- data/{app → pages/app}/models/constructor_pages/types/string_type.rb +0 -0
- data/{app → pages/app}/models/constructor_pages/types/text_type.rb +0 -0
- data/{app → pages/app}/views/constructor_pages/fields/_form.haml +0 -0
- data/{app → pages/app}/views/constructor_pages/fields/edit.haml +0 -0
- data/{app → pages/app}/views/constructor_pages/fields/new.haml +0 -0
- data/{app → pages/app}/views/constructor_pages/fields/types/_boolean.haml +0 -0
- data/{app → pages/app}/views/constructor_pages/fields/types/_date.haml +0 -0
- data/{app → pages/app}/views/constructor_pages/fields/types/_float.haml +0 -0
- data/{app → pages/app}/views/constructor_pages/fields/types/_html.haml +0 -0
- data/{app → pages/app}/views/constructor_pages/fields/types/_image.haml +0 -0
- data/{app → pages/app}/views/constructor_pages/fields/types/_integer.haml +0 -0
- data/{app → pages/app}/views/constructor_pages/fields/types/_string.haml +0 -0
- data/{app → pages/app}/views/constructor_pages/fields/types/_text.haml +0 -0
- data/{app → pages/app}/views/constructor_pages/pages/_breadcrumbs.haml +0 -0
- data/{app → pages/app}/views/constructor_pages/pages/_form.haml +0 -0
- data/{app → pages/app}/views/constructor_pages/pages/_menu.haml +0 -0
- data/{app → pages/app}/views/constructor_pages/pages/_submenu.haml +0 -0
- data/{app → pages/app}/views/constructor_pages/pages/edit.haml +0 -0
- data/{app → pages/app}/views/constructor_pages/pages/index.haml +0 -0
- data/{app → pages/app}/views/constructor_pages/pages/new.haml +0 -0
- data/{app → pages/app}/views/constructor_pages/pages/show.haml +0 -0
- data/{app → pages/app}/views/constructor_pages/partials/_arrow_buttons.haml +0 -0
- data/{app → pages/app}/views/constructor_pages/templates/_form.haml +0 -0
- data/{app → pages/app}/views/constructor_pages/templates/edit.haml +0 -0
- data/{app → pages/app}/views/constructor_pages/templates/index.haml +0 -0
- data/{app → pages/app}/views/constructor_pages/templates/new.haml +0 -0
- data/{config → pages/config}/initializers/dragonfly.rb +0 -0
- data/{config → pages/config}/locales/en.yml +0 -0
- data/{config → pages/config}/locales/fr.yml +0 -0
- data/{config → pages/config}/locales/ru.yml +0 -0
- data/pages/config/routes.rb +26 -0
- data/{constructor-pages.gemspec → pages/constructor-pages.gemspec} +0 -0
- data/{db → pages/db}/migrate/10_create_html_types.rb +0 -0
- data/{db → pages/db}/migrate/11_create_image_types.rb +0 -0
- data/{db → pages/db}/migrate/12_add_default_template.rb +0 -0
- data/{db → pages/db}/migrate/1_create_pages.rb +0 -0
- data/{db → pages/db}/migrate/2_create_templates.rb +0 -0
- data/{db → pages/db}/migrate/3_create_fields.rb +0 -0
- data/{db → pages/db}/migrate/4_create_string_types.rb +0 -0
- data/{db → pages/db}/migrate/5_create_float_types.rb +0 -0
- data/{db → pages/db}/migrate/6_create_boolean_types.rb +0 -0
- data/{db → pages/db}/migrate/7_create_integer_types.rb +0 -0
- data/{db → pages/db}/migrate/8_create_text_types.rb +0 -0
- data/{db → pages/db}/migrate/9_create_date_types.rb +0 -0
- data/{lib → pages/lib}/constructor-pages.rb +0 -0
- data/{lib → pages/lib}/constructor_pages/engine.rb +0 -0
- data/{public → pages/public}/hello.txt +0 -0
- data/{spec/features/constructor_pages/fields_controller_spec.rb → pages/spec/features/constructor_pages/fields_spec.rb} +0 -0
- data/{spec/features/constructor_pages/pages_controller_spec.rb → pages/spec/features/constructor_pages/pages_spec.rb} +0 -0
- data/{spec/features/constructor_pages/templates_controller_spec.rb → pages/spec/features/constructor_pages/templates_spec.rb} +0 -0
- data/pages/spec/helpers/constructor_pages/.keep +0 -0
- data/{spec/models/constructor_pages/field_model_spec.rb → pages/spec/models/constructor_pages/field_spec.rb} +0 -0
- data/{spec/models/constructor_pages/page_model_spec.rb → pages/spec/models/constructor_pages/page_spec.rb} +2 -1
- data/{spec/models/constructor_pages/template_model_spec.rb → pages/spec/models/constructor_pages/template_spec.rb} +0 -0
- data/{spec/models/constructor_pages/types/boolean_type_model_spec.rb → pages/spec/models/constructor_pages/types/boolean_type_spec.rb} +0 -0
- data/{spec/models/constructor_pages/types/date_type_model_spec.rb → pages/spec/models/constructor_pages/types/date_type_spec.rb} +0 -0
- data/{spec/models/constructor_pages/types/float_type_model_spec.rb → pages/spec/models/constructor_pages/types/float_type_spec.rb} +0 -0
- data/{spec/models/constructor_pages/types/html_type_model_spec.rb → pages/spec/models/constructor_pages/types/html_type_spec.rb} +0 -0
- data/{spec/models/constructor_pages/types/integer_type_model_spec.rb → pages/spec/models/constructor_pages/types/integer_type_spec.rb} +0 -0
- data/{spec/models/constructor_pages/types/string_type_model_spec.rb → pages/spec/models/constructor_pages/types/string_type_spec.rb} +0 -0
- data/{spec/models/constructor_pages/types/text_type_model_spec.rb → pages/spec/models/constructor_pages/types/text_type_spec.rb} +0 -0
- data/pages/spec/routing/constructor_pages/.keep +0 -0
- data/spec/dummy/README.rdoc +28 -0
- data/spec/dummy/Rakefile +6 -0
- data/spec/dummy/app/assets/javascripts/application.js +15 -0
- data/spec/dummy/app/assets/stylesheets/application.css +13 -0
- data/spec/dummy/app/controllers/application_controller.rb +3 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/mailers/.gitkeep +0 -0
- data/spec/dummy/app/models/.gitkeep +0 -0
- data/spec/dummy/app/views/html_templates/page.haml +1 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/bin/bundle +3 -0
- data/spec/dummy/bin/rails +4 -0
- data/spec/dummy/bin/rake +4 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +23 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +29 -0
- data/spec/dummy/config/environments/production.rb +80 -0
- data/spec/dummy/config/environments/test.rb +36 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +12 -0
- data/spec/dummy/config/initializers/session_store.rb +3 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +5 -0
- data/spec/dummy/config/routes.rb +3 -0
- data/spec/dummy/lib/assets/.gitkeep +0 -0
- data/spec/dummy/lib/tasks/.gitkeep +0 -0
- data/spec/dummy/log/.gitkeep +0 -0
- data/spec/dummy/public/404.html +58 -0
- data/spec/dummy/public/422.html +58 -0
- data/spec/dummy/public/500.html +57 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/public/robots.txt +5 -0
- data/spec/spec_helper.rb +46 -0
- data/tasks/constructor-cms_tasks.rake +15 -0
- metadata +397 -107
- data/app/helpers/constructor_pages/code_name_uniq.rb +0 -9
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -2,14 +2,14 @@
|
|
2
2
|
|
3
3
|
module ConstructorPages
|
4
4
|
# Field model. Fields allows to add custom fields for template.
|
5
|
-
#
|
6
5
|
# Each field has type of value such as float, integer, string...
|
7
6
|
class Field < ActiveRecord::Base
|
8
7
|
# Adding code_name_uniqueness method
|
9
8
|
include CodeNameUniq
|
10
9
|
|
11
10
|
# Array of available field types
|
12
|
-
TYPES = %w{string integer float boolean text date html image}
|
11
|
+
TYPES = %w{string integer float boolean text date html image}.tap {|_t|
|
12
|
+
_t.each {|t| class_eval %{has_many :#{t}_types, dependent: :destroy, class_name: 'Types::#{t.titleize}Type'}}}
|
13
13
|
|
14
14
|
validates_presence_of :name
|
15
15
|
validates_uniqueness_of :code_name, scope: :template_id
|
@@ -18,25 +18,17 @@ module ConstructorPages
|
|
18
18
|
after_create :create_page_fields
|
19
19
|
after_destroy :destroy_all_page_fields
|
20
20
|
|
21
|
-
belongs_to :template
|
22
|
-
|
23
|
-
# Adding has_many for all field types
|
24
|
-
TYPES.each do |t|
|
25
|
-
class_eval %{
|
26
|
-
has_many :#{t}_types, dependent: :destroy, class_name: 'Types::#{t.titleize}Type'
|
27
|
-
}
|
28
|
-
end
|
29
|
-
|
30
21
|
has_many :pages, through: :template
|
22
|
+
belongs_to :template
|
31
23
|
|
32
|
-
acts_as_list
|
24
|
+
acts_as_list scope: :template_id
|
33
25
|
default_scope -> { order :position }
|
34
26
|
|
35
27
|
# Return constant of model type_value
|
36
28
|
def type_class; "constructor_pages/types/#{type_value}_type".classify.constantize end
|
37
29
|
|
38
30
|
# Return object of type_value by page
|
39
|
-
def find_type_object(page); type_class.
|
31
|
+
def find_type_object(page); type_class.find_by(field_id: id, page_id: page.id) end
|
40
32
|
|
41
33
|
# Create object of type_value by page
|
42
34
|
def create_type_object(page); type_class.create(field_id: id, page_id: page.id) end
|
@@ -45,43 +37,23 @@ module ConstructorPages
|
|
45
37
|
def remove_type_object(page); find_type_object(page).destroy end
|
46
38
|
|
47
39
|
# Get value from type_field for specified page
|
48
|
-
def get_value_for(page)
|
49
|
-
_type_object = find_type_object(page)
|
50
|
-
_type_object ? _type_object.value : nil
|
51
|
-
end
|
40
|
+
def get_value_for(page); find_type_object(page).tap {|t| return t && t.value} end
|
52
41
|
|
53
42
|
# Set value type_field for specified page
|
54
|
-
def set_value_for(page, value)
|
55
|
-
_type_object = find_type_object(page)
|
56
|
-
|
57
|
-
if _type_object
|
58
|
-
_type_object.value = value
|
59
|
-
_type_object.save!
|
60
|
-
end
|
61
|
-
end
|
43
|
+
def set_value_for(page, value); find_type_object(page).tap {|t| t || return; t.update value: value} end
|
62
44
|
|
63
45
|
private
|
64
46
|
|
65
47
|
# Check if there is code_name in template branch
|
66
48
|
def check_code_name(code_name)
|
67
|
-
[code_name.pluralize, code_name.singularize].each
|
68
|
-
%w{self_and_ancestors descendants}.each
|
69
|
-
if template.send(m).map
|
70
|
-
return false
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
49
|
+
[code_name.pluralize, code_name.singularize].each {|name|
|
50
|
+
%w{self_and_ancestors descendants}.each {|m|
|
51
|
+
return false if template.send(m).map(&:code_name).include?(name)}}
|
75
52
|
true
|
76
53
|
end
|
77
54
|
|
78
55
|
# Create and destroy page fields
|
79
|
-
%w{create destroy_all}.each
|
80
|
-
|
81
|
-
def #{m}_page_fields
|
82
|
-
template.pages.each {|page| type_class.#{m} page_id: page.id, field_id: id}
|
83
|
-
end
|
84
|
-
}
|
85
|
-
end
|
56
|
+
%w{create destroy_all}.each {|m| class_eval %{
|
57
|
+
def #{m}_page_fields; template.pages.each {|page| type_class.#{m} page_id: page.id, field_id: id} end }}
|
86
58
|
end
|
87
59
|
end
|
@@ -5,11 +5,10 @@ module ConstructorPages
|
|
5
5
|
class Page < ActiveRecord::Base
|
6
6
|
# Adding has_many for all field types
|
7
7
|
Field::TYPES.each do |t|
|
8
|
-
class_eval %{
|
8
|
+
class_eval %{has_many :#{t}_types, dependent: :destroy, class_name: 'Types::#{t.titleize}Type'}
|
9
9
|
end
|
10
10
|
|
11
11
|
has_many :fields, through: :template
|
12
|
-
|
13
12
|
belongs_to :template
|
14
13
|
|
15
14
|
default_scope -> { order :lft }
|
@@ -48,31 +47,12 @@ module ConstructorPages
|
|
48
47
|
end
|
49
48
|
|
50
49
|
def search(what_search = nil)
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
end
|
57
|
-
|
58
|
-
@result = _page ? _page.descendants : []
|
59
|
-
else
|
60
|
-
@result = Page.all
|
61
|
-
end
|
62
|
-
|
63
|
-
if what_search
|
64
|
-
_template = Template.find_by code_name: what_search.to_s.singularize.downcase
|
65
|
-
@result = _template ? @result.where(template: _template) : []
|
66
|
-
end
|
67
|
-
|
68
|
-
if @params_search
|
69
|
-
@params_search.each_pair do |k, v|
|
70
|
-
@result = @result.select { |p| p.send(k) == v }
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
50
|
+
(@where_search.is_a?(String) ? Page.find_by(full_url: @where_search) : @where_search)
|
51
|
+
.tap {|p| @result = @where_search ? p ? p.descendants : [] : Page.all }
|
52
|
+
what_search && Template.find_by(code_name: what_search.to_s.singularize.downcase)
|
53
|
+
.tap {|t| @result = t ? @result.where(template: t) : [] }
|
54
|
+
@params_search && @params_search.each_pair {|k,v| @result = @result.select {|p| p.send(k) == v}}
|
74
55
|
@where_search = @params_search = nil
|
75
|
-
|
76
56
|
@result
|
77
57
|
end
|
78
58
|
|
@@ -84,6 +64,7 @@ module ConstructorPages
|
|
84
64
|
end
|
85
65
|
|
86
66
|
def search(what_search = nil); Page.in(self).search(what_search) end
|
67
|
+
def by(params_search = nil); Page.by(params_search); self end
|
87
68
|
def search_by(params_search = nil); Page.by(params_search).in(self).search end
|
88
69
|
|
89
70
|
# Get field by code_name
|
@@ -105,28 +86,19 @@ module ConstructorPages
|
|
105
86
|
# @param params should looks like <tt>{price: 500, content: 'Hello'}</tt>
|
106
87
|
# @param reset_booleans reset all boolean fields to false before assign params
|
107
88
|
def update_fields_values(params, reset_booleans = true)
|
108
|
-
|
109
|
-
|
110
|
-
fields.each do |field|
|
111
|
-
value = params[field.code_name.to_sym]
|
112
|
-
|
113
|
-
_type_object = field.find_type_object(self)
|
89
|
+
params || return
|
114
90
|
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
end
|
120
|
-
end
|
91
|
+
fields.each {|f| f.find_type_object(self).tap {|t| t || break
|
92
|
+
t.value = 0 if f.type_value == 'boolean' && reset_booleans
|
93
|
+
params[f.code_name.to_sym].tap {|v| v && t.value = v}
|
94
|
+
t.save }}
|
121
95
|
end
|
122
96
|
|
123
97
|
# Create fields values
|
124
|
-
def create_fields_values; fields.each {|f| f.create_type_object
|
98
|
+
def create_fields_values; fields.each {|f| f.create_type_object self} end
|
125
99
|
|
126
100
|
# Remove all fields values
|
127
|
-
def remove_fields_values
|
128
|
-
fields.each {|f| f.remove_type_object self}
|
129
|
-
end
|
101
|
+
def remove_fields_values; fields.each {|f| f.remove_type_object self} end
|
130
102
|
|
131
103
|
# Search page by template code_name in same branch of pages and templates.
|
132
104
|
# It allows to call page.category.brand.series.model etc.
|
@@ -135,16 +107,11 @@ module ConstructorPages
|
|
135
107
|
# and return array of pages if founded in descendants
|
136
108
|
#
|
137
109
|
# It determines if code_name is singular or nor
|
138
|
-
# @param
|
139
|
-
def find_page_in_branch(
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
result = []
|
144
|
-
result = descendants.where(template_id: _template.id) if code_name == code_name.pluralize
|
145
|
-
result = ancestors.find_by(template_id: _template.id) if result.empty?
|
146
|
-
result
|
147
|
-
end
|
110
|
+
# @param cname template code name
|
111
|
+
def find_page_in_branch(cname)
|
112
|
+
Template.find_by(code_name: cname.singularize).tap {|t| t || return
|
113
|
+
(descendants.where(template_id: t.id) if cname == cname.pluralize).tap {|r| r ||= []
|
114
|
+
return r.empty? ? ancestors.find_by(template_id: t.id) : r}}
|
148
115
|
end
|
149
116
|
|
150
117
|
alias_method :find_pages_in_branch, :find_page_in_branch
|
@@ -159,9 +126,7 @@ module ConstructorPages
|
|
159
126
|
# @param options default merge name and title page attributes
|
160
127
|
def as_json(options = {})
|
161
128
|
{name: self.name, title: self.title}.merge(options).tap do |options|
|
162
|
-
fields.each
|
163
|
-
options.merge!({f.code_name.to_sym => f.get_value_for(self)})
|
164
|
-
end
|
129
|
+
fields.each {|f| options.merge!({f.code_name.to_sym => f.get_value_for(self)})}
|
165
130
|
end
|
166
131
|
end
|
167
132
|
|
@@ -175,12 +140,9 @@ module ConstructorPages
|
|
175
140
|
# puts page.price
|
176
141
|
# page.brand.models.each do...
|
177
142
|
def method_missing(name, *args, &block)
|
178
|
-
if new_record?
|
179
|
-
|
180
|
-
|
181
|
-
name = name.to_s
|
182
|
-
name[-1] == '=' ? set_field_value(name[0..-2], args[0]) : get_field_value(name) || find_pages_in_branch(name)
|
183
|
-
end
|
143
|
+
super && return if new_record?
|
144
|
+
name = name.to_s
|
145
|
+
name[-1] == '=' ? set_field_value(name[0..-2], args[0]) : get_field_value(name) || find_pages_in_branch(name)
|
184
146
|
end
|
185
147
|
|
186
148
|
private
|
@@ -192,19 +154,13 @@ module ConstructorPages
|
|
192
154
|
|
193
155
|
# TODO: add more languages
|
194
156
|
# translit to english
|
195
|
-
def translit(str)
|
196
|
-
Russian.translit(str)
|
197
|
-
end
|
157
|
+
def translit(str); Russian.translit(str) end
|
198
158
|
|
199
159
|
# Page is not valid if there is no template
|
200
|
-
def template_check
|
201
|
-
errors.add_on_empty(:template_id) if Template.count == 0
|
202
|
-
end
|
160
|
+
def template_check; errors.add_on_empty(:template_id) if Template.count == 0 end
|
203
161
|
|
204
162
|
# If template_id is nil then get first template
|
205
|
-
def template_assign
|
206
|
-
self.template_id = Template.first.id unless template_id
|
207
|
-
end
|
163
|
+
def template_assign; self.template_id = Template.first.id unless template_id end
|
208
164
|
|
209
165
|
# Update full_url
|
210
166
|
def full_url_update
|
@@ -23,23 +23,15 @@ module ConstructorPages
|
|
23
23
|
|
24
24
|
# Return child corresponding child_id or children first
|
25
25
|
def child
|
26
|
-
|
27
|
-
children.first
|
28
|
-
else
|
29
|
-
Template.find child_id
|
30
|
-
end
|
26
|
+
!child_id && !leaf? ? children.first : self.class.find(child_id)
|
31
27
|
end
|
32
28
|
|
33
29
|
private
|
34
30
|
|
35
31
|
# Check if there is code_name in same branch
|
36
|
-
def check_code_name(
|
37
|
-
[
|
38
|
-
if root.descendants.map{|t| t.code_name unless t.code_name ==
|
39
|
-
return false
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
32
|
+
def check_code_name(cname)
|
33
|
+
[cname.pluralize, cname.singularize].each {|name|
|
34
|
+
return false if root.descendants.map{|t| t.code_name unless t.code_name == cname}.include?(name)}
|
43
35
|
true
|
44
36
|
end
|
45
37
|
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,26 @@
|
|
1
|
+
ConstructorPages::Engine.routes.draw do
|
2
|
+
scope '/admin' do
|
3
|
+
resources :pages, except: [:show]
|
4
|
+
resources :templates, except: [:show]
|
5
|
+
resources :fields, except: [:show, :new, :edit]
|
6
|
+
|
7
|
+
%w{page template field}.each do |c|
|
8
|
+
%w{up down}.each do |d|
|
9
|
+
get "#{c.pluralize}/move/#{d}/:id" => "#{c.pluralize}#move_#{d}", as: "#{c}_move_#{d}"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
scope '/fields' do
|
14
|
+
get ':template_id/new/' => 'fields#new', as: :new_field
|
15
|
+
get ':id/:template_id/edit/' => 'fields#edit', as: :edit_field
|
16
|
+
end
|
17
|
+
|
18
|
+
get '/pages/:page/new' => 'pages#new', as: :new_child_page
|
19
|
+
end
|
20
|
+
|
21
|
+
root :to => 'pages#show'
|
22
|
+
|
23
|
+
get '*all/search/:what_search' => 'pages#search', format: false
|
24
|
+
get '*all.:format' => 'pages#show'
|
25
|
+
get '*all' => 'pages#show'
|
26
|
+
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|