lato_core 1.1.5 → 2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/MIT-LICENSE +20 -0
- data/README.md +29 -0
- data/Rakefile +1 -22
- data/app/assets/config/lato_core_manifest.js +2 -0
- data/app/assets/fonts/lato_core/fontawesome-webfont.eot +0 -0
- data/app/assets/fonts/lato_core/fontawesome-webfont.svg +2671 -0
- data/app/assets/fonts/lato_core/fontawesome-webfont.ttf +0 -0
- data/app/assets/fonts/lato_core/fontawesome-webfont.woff +0 -0
- data/app/assets/fonts/lato_core/fontawesome-webfont.woff2 +0 -0
- data/app/assets/fonts/lato_core/lato-bold-webfont.eot +0 -0
- data/app/assets/fonts/lato_core/lato-bold-webfont.svg +4551 -0
- data/app/assets/fonts/lato_core/lato-bold-webfont.ttf +0 -0
- data/app/assets/fonts/lato_core/lato-bold-webfont.woff +0 -0
- data/app/assets/fonts/lato_core/lato-bold-webfont.woff2 +0 -0
- data/app/assets/fonts/lato_core/lato-regular-webfont.eot +0 -0
- data/app/assets/fonts/lato_core/lato-regular-webfont.svg +4241 -0
- data/app/assets/fonts/lato_core/lato-regular-webfont.ttf +0 -0
- data/app/assets/fonts/lato_core/lato-regular-webfont.woff +0 -0
- data/app/assets/fonts/lato_core/lato-regular-webfont.woff2 +0 -0
- data/app/assets/images/lato_core/editor-icons.svg +1 -0
- data/app/assets/images/lato_core/logo-negative.svg +13 -0
- data/app/assets/images/lato_core/logo.svg +1 -0
- data/app/assets/images/lato_core/user.png +0 -0
- data/app/assets/javascripts/lato_core/application.js +28 -0
- data/app/assets/javascripts/lato_core/initializers/Charts.js +36 -0
- data/app/assets/javascripts/lato_core/initializers/Elements.js +67 -0
- data/app/assets/javascripts/lato_core/initializers/Inputs.js +201 -0
- data/app/assets/javascripts/lato_core/initializers/Layout.js +37 -0
- data/app/assets/javascripts/lato_core/initializers/SortableManager.js +66 -0
- data/app/assets/javascripts/lato_core/interfaces/Modal.js +28 -0
- data/app/assets/javascripts/lato_core/vendors/Sortable.min.js +2 -0
- data/app/assets/javascripts/lato_core/vendors/chart.bundle.js +17220 -0
- data/app/assets/javascripts/lato_core/vendors/dropzone.js +1767 -0
- data/app/assets/javascripts/lato_core/vendors/jquery.datetimepicker.full.js +3243 -0
- data/app/assets/javascripts/lato_core/vendors/jquery.floatThead.js +1106 -0
- data/app/assets/javascripts/lato_core/vendors/jquery.selectize.js +3829 -0
- data/app/assets/javascripts/lato_core/vendors/jquery.trumbowyg.js +1603 -0
- data/app/assets/stylesheets/lato_core/application.scss +23 -0
- data/app/assets/stylesheets/lato_core/base/_base.scss +35 -0
- data/app/assets/stylesheets/lato_core/base/_button.scss +23 -0
- data/app/assets/stylesheets/lato_core/base/_grid.scss +258 -0
- data/app/assets/stylesheets/lato_core/base/_helpers.scss +29 -0
- data/app/assets/stylesheets/lato_core/base/_mixin.scss +37 -0
- data/app/assets/stylesheets/lato_core/base/_normalize.scss +424 -0
- data/app/assets/stylesheets/lato_core/base/_table.scss +47 -0
- data/app/assets/stylesheets/lato_core/base/_typography.scss +23 -0
- data/app/assets/stylesheets/lato_core/cells/_cells.scss +4 -0
- data/app/assets/stylesheets/lato_core/cells/charts/_bar.scss +3 -0
- data/app/assets/stylesheets/lato_core/cells/charts/_charts.scss +2 -0
- data/app/assets/stylesheets/lato_core/cells/charts/_general.scss +7 -0
- data/app/assets/stylesheets/lato_core/cells/elements/_block.scss +12 -0
- data/app/assets/stylesheets/lato_core/cells/elements/_button.scss +132 -0
- data/app/assets/stylesheets/lato_core/cells/elements/_buttongroup.scss +25 -0
- data/app/assets/stylesheets/lato_core/cells/elements/_code.scss +8 -0
- data/app/assets/stylesheets/lato_core/cells/elements/_elements.scss +10 -0
- data/app/assets/stylesheets/lato_core/cells/elements/_flash.scss +74 -0
- data/app/assets/stylesheets/lato_core/cells/elements/_modal.scss +76 -0
- data/app/assets/stylesheets/lato_core/cells/elements/_pagination.scss +64 -0
- data/app/assets/stylesheets/lato_core/cells/elements/_row.scss +3 -0
- data/app/assets/stylesheets/lato_core/cells/elements/_table.scss +57 -0
- data/app/assets/stylesheets/lato_core/cells/elements/_title.scss +32 -0
- data/app/assets/stylesheets/lato_core/cells/inputs/_checkbox.scss +42 -0
- data/app/assets/stylesheets/lato_core/cells/inputs/_datetime.scss +23 -0
- data/app/assets/stylesheets/lato_core/cells/inputs/_dropzone.scss +12 -0
- data/app/assets/stylesheets/lato_core/cells/inputs/_editor.scss +3 -0
- data/app/assets/stylesheets/lato_core/cells/inputs/_email.scss +3 -0
- data/app/assets/stylesheets/lato_core/cells/inputs/_form.scss +3 -0
- data/app/assets/stylesheets/lato_core/cells/inputs/_general.scss +51 -0
- data/app/assets/stylesheets/lato_core/cells/inputs/_geolocalization.scss +12 -0
- data/app/assets/stylesheets/lato_core/cells/inputs/_inputs.scss +14 -0
- data/app/assets/stylesheets/lato_core/cells/inputs/_number.scss +3 -0
- data/app/assets/stylesheets/lato_core/cells/inputs/_password.scss +3 -0
- data/app/assets/stylesheets/lato_core/cells/inputs/_select.scss +47 -0
- data/app/assets/stylesheets/lato_core/cells/inputs/_sortableblock.scss +51 -0
- data/app/assets/stylesheets/lato_core/cells/inputs/_text.scss +3 -0
- data/app/assets/stylesheets/lato_core/cells/inputs/_textarea.scss +25 -0
- data/app/assets/stylesheets/lato_core/cells/widgets/_index.scss +74 -0
- data/app/assets/stylesheets/lato_core/cells/widgets/_widgets.scss +1 -0
- data/app/assets/stylesheets/lato_core/layouts/_admin.scss +352 -0
- data/app/assets/stylesheets/lato_core/layouts/_authentication.scss +10 -0
- data/app/assets/stylesheets/lato_core/layouts/_layouts.scss +2 -0
- data/app/assets/stylesheets/lato_core/pages/_dashboard.scss +35 -0
- data/app/assets/stylesheets/lato_core/pages/_login.scss +7 -0
- data/app/assets/stylesheets/lato_core/pages/_pages.scss +2 -0
- data/app/assets/stylesheets/lato_core/partials/_dynamic_data_to_js.scss +3 -0
- data/app/assets/stylesheets/lato_core/partials/_partials.scss +1 -0
- data/app/assets/stylesheets/lato_core/theme.scss.erb +127 -0
- data/app/assets/stylesheets/lato_core/vendors/_datetimepicker.css +568 -0
- data/app/assets/stylesheets/lato_core/vendors/_dropzone.css +388 -0
- data/app/assets/stylesheets/lato_core/vendors/_fontawesome.css +2341 -0
- data/app/assets/stylesheets/lato_core/vendors/_scrollbar.css +904 -0
- data/app/assets/stylesheets/lato_core/vendors/_selectize.css +324 -0
- data/app/assets/stylesheets/lato_core/vendors/_trumbowyg.css +584 -0
- data/app/assets/stylesheets/lato_core/vendors/_vendors.scss +6 -0
- data/app/assets/stylesheets/lato_core/widgets/_systeminfo.scss +21 -0
- data/app/assets/stylesheets/lato_core/widgets/_widgets.scss +1 -0
- data/app/cells/lato_core/charts/bar/vertical/cell.rb +57 -0
- data/app/cells/lato_core/charts/bar/vertical/views/show.html.erb +7 -0
- data/app/cells/lato_core/elements/block/cell.rb +39 -0
- data/app/cells/lato_core/elements/block/views/close.html.erb +1 -0
- data/app/cells/lato_core/elements/block/views/open.html.erb +4 -0
- data/app/cells/lato_core/elements/button/cell.rb +59 -0
- data/app/cells/lato_core/elements/button/views/button.html.erb +27 -0
- data/app/cells/lato_core/elements/button/views/link.html.erb +65 -0
- data/app/cells/lato_core/elements/buttongroup/cell.rb +33 -0
- data/app/cells/lato_core/elements/buttongroup/views/show.html.erb +7 -0
- data/app/cells/lato_core/elements/code/cell.rb +36 -0
- data/app/cells/lato_core/elements/code/views/close.html.erb +2 -0
- data/app/cells/lato_core/elements/code/views/open.html.erb +2 -0
- data/app/cells/lato_core/elements/flash/cell.rb +35 -0
- data/app/cells/lato_core/elements/flash/views/show.html.erb +11 -0
- data/app/cells/lato_core/elements/icon/cell.rb +31 -0
- data/app/cells/lato_core/elements/icon/views/show.html.erb +1 -0
- data/app/cells/lato_core/elements/modal/cell.rb +31 -0
- data/app/cells/lato_core/elements/modal/views/show.html.erb +21 -0
- data/app/cells/lato_core/elements/pagination/cell.rb +68 -0
- data/app/cells/lato_core/elements/pagination/views/show.html.erb +59 -0
- data/app/cells/lato_core/elements/row/cell.rb +37 -0
- data/app/cells/lato_core/elements/row/views/close.html.erb +1 -0
- data/app/cells/lato_core/elements/row/views/open.html.erb +3 -0
- data/app/cells/lato_core/elements/table/body/cell.rb +37 -0
- data/app/cells/lato_core/elements/table/body/views/close.html.erb +1 -0
- data/app/cells/lato_core/elements/table/body/views/open.html.erb +3 -0
- data/app/cells/lato_core/elements/table/container/cell.rb +41 -0
- data/app/cells/lato_core/elements/table/container/views/close.html.erb +2 -0
- data/app/cells/lato_core/elements/table/container/views/open.html.erb +7 -0
- data/app/cells/lato_core/elements/table/head/cell.rb +33 -0
- data/app/cells/lato_core/elements/table/head/views/show.html.erb +7 -0
- data/app/cells/lato_core/elements/table/row/cell.rb +49 -0
- data/app/cells/lato_core/elements/table/row/views/show.html.erb +35 -0
- data/app/cells/lato_core/elements/title/cell.rb +52 -0
- data/app/cells/lato_core/elements/title/views/show.html.erb +4 -0
- data/app/cells/lato_core/inputs/checkbox/cell.rb +38 -0
- data/app/cells/lato_core/inputs/checkbox/views/show.html.erb +20 -0
- data/app/cells/lato_core/inputs/datetime/cell.rb +53 -0
- data/app/cells/lato_core/inputs/datetime/views/show.html.erb +19 -0
- data/app/cells/lato_core/inputs/dropzone/cell.rb +37 -0
- data/app/cells/lato_core/inputs/dropzone/views/show.html.erb +24 -0
- data/app/cells/lato_core/inputs/editor/cell.rb +37 -0
- data/app/cells/lato_core/inputs/editor/views/show.html.erb +12 -0
- data/app/cells/lato_core/inputs/email/cell.rb +40 -0
- data/app/cells/lato_core/inputs/email/views/show.html.erb +19 -0
- data/app/cells/lato_core/inputs/form/cell.rb +39 -0
- data/app/cells/lato_core/inputs/form/views/close.html.erb +1 -0
- data/app/cells/lato_core/inputs/form/views/open.html.erb +12 -0
- data/app/cells/lato_core/inputs/geolocalization/cell.rb +51 -0
- data/app/cells/lato_core/inputs/geolocalization/views/show.html.erb +26 -0
- data/app/cells/lato_core/inputs/number/cell.rb +44 -0
- data/app/cells/lato_core/inputs/number/views/show.html.erb +25 -0
- data/app/cells/lato_core/inputs/password/cell.rb +42 -0
- data/app/cells/lato_core/inputs/password/views/show.html.erb +21 -0
- data/app/cells/lato_core/inputs/select/cell.rb +56 -0
- data/app/cells/lato_core/inputs/select/views/show.html.erb +25 -0
- data/app/cells/lato_core/inputs/shared/help.html.erb +7 -0
- data/app/cells/lato_core/inputs/shared/label.html.erb +11 -0
- data/app/cells/lato_core/inputs/sortableblock/cell.rb +39 -0
- data/app/cells/lato_core/inputs/sortableblock/views/show.html.erb +40 -0
- data/app/cells/lato_core/inputs/text/cell.rb +42 -0
- data/app/cells/lato_core/inputs/text/views/show.html.erb +21 -0
- data/app/cells/lato_core/inputs/textarea/cell.rb +41 -0
- data/app/cells/lato_core/inputs/textarea/views/show.html.erb +16 -0
- data/app/cells/lato_core/widgets/index/cell.rb +215 -0
- data/app/cells/lato_core/widgets/index/views/partials/new.html.erb +3 -0
- data/app/cells/lato_core/widgets/index/views/partials/pagination.html.erb +3 -0
- data/app/cells/lato_core/widgets/index/views/partials/search.html.erb +17 -0
- data/app/cells/lato_core/widgets/index/views/show.html.erb +45 -0
- data/app/controllers/lato_core/api/api_controller.rb +5 -0
- data/app/controllers/lato_core/application_controller.rb +9 -1
- data/app/controllers/lato_core/back/authentication_controller.rb +33 -99
- data/app/controllers/lato_core/back/back_controller.rb +5 -14
- data/app/controllers/lato_core/back/dashboard_controller.rb +13 -0
- data/app/controllers/lato_core/back/superusers_controller.rb +97 -113
- data/app/controllers/lato_core/doc/cells_charts_controller.rb +7 -0
- data/app/controllers/lato_core/doc/cells_elements_controller.rb +31 -0
- data/app/controllers/lato_core/doc/cells_inputs_controller.rb +33 -0
- data/app/controllers/lato_core/doc/cells_widgets_controller.rb +10 -0
- data/app/controllers/lato_core/doc/doc_controller.rb +17 -0
- data/app/controllers/lato_core/doc/general_controller.rb +13 -0
- data/app/helpers/lato_core/application_helper.rb +4 -0
- data/app/jobs/lato_core/application_job.rb +4 -0
- data/app/mailers/lato_core/application_mailer.rb +2 -5
- data/app/models/lato_core/application_record.rb +5 -0
- data/app/models/lato_core/superuser.rb +11 -16
- data/app/models/lato_core/superuser/entity_helpers.rb +29 -0
- data/app/views/lato_core/back/authentication/index.html.erb +25 -0
- data/app/views/lato_core/back/dashboard/index.html.erb +29 -0
- data/app/views/lato_core/back/superusers/edit.html.erb +10 -15
- data/app/views/lato_core/back/superusers/index.html.erb +16 -27
- data/app/views/lato_core/back/superusers/new.html.erb +8 -13
- data/app/views/lato_core/back/superusers/shared/_form.html.erb +47 -55
- data/app/views/lato_core/back/superusers/show.html.erb +65 -1
- data/app/views/lato_core/doc/cells_charts/bar_vertical.erb +64 -0
- data/app/views/lato_core/doc/cells_elements/block.html.erb +172 -0
- data/app/views/lato_core/doc/cells_elements/button.html.erb +375 -0
- data/app/views/lato_core/doc/cells_elements/buttongroup.html.erb +101 -0
- data/app/views/lato_core/doc/cells_elements/flash_messages.html.erb +123 -0
- data/app/views/lato_core/doc/cells_elements/icon.html.erb +58 -0
- data/app/views/lato_core/doc/cells_elements/modal.html.erb +89 -0
- data/app/views/lato_core/doc/cells_elements/pagination.html.erb +149 -0
- data/app/views/lato_core/doc/cells_elements/row.html.erb +62 -0
- data/app/views/lato_core/doc/cells_elements/table.html.erb +272 -0
- data/app/views/lato_core/doc/cells_elements/table_body.html.erb +118 -0
- data/app/views/lato_core/doc/cells_elements/table_head.html.erb +110 -0
- data/app/views/lato_core/doc/cells_elements/table_row.html.erb +212 -0
- data/app/views/lato_core/doc/cells_elements/title.html.erb +70 -0
- data/app/views/lato_core/doc/cells_inputs/checkbox.html.erb +101 -0
- data/app/views/lato_core/doc/cells_inputs/datetime.html.erb +178 -0
- data/app/views/lato_core/doc/cells_inputs/dropzone.html.erb +114 -0
- data/app/views/lato_core/doc/cells_inputs/editor.html.erb +59 -0
- data/app/views/lato_core/doc/cells_inputs/email.html.erb +79 -0
- data/app/views/lato_core/doc/cells_inputs/form.html.erb +242 -0
- data/app/views/lato_core/doc/cells_inputs/geolocalization.html.erb +157 -0
- data/app/views/lato_core/doc/cells_inputs/number.html.erb +100 -0
- data/app/views/lato_core/doc/cells_inputs/password.html.erb +79 -0
- data/app/views/lato_core/doc/cells_inputs/select.html.erb +124 -0
- data/app/views/lato_core/doc/cells_inputs/sortableblock.html.erb +72 -0
- data/app/views/lato_core/doc/cells_inputs/text.html.erb +204 -0
- data/app/views/lato_core/doc/cells_inputs/textarea.html.erb +104 -0
- data/app/views/lato_core/doc/cells_widgets/index.html.erb +163 -0
- data/app/views/lato_core/doc/doc/index.html.erb +95 -0
- data/app/views/lato_core/doc/general/generators.html.erb +60 -0
- data/app/views/lato_core/doc/general/installation.html.erb +49 -0
- data/app/views/lato_core/doc/general/languages.html.erb +67 -0
- data/app/views/lato_core/doc/general/personalization.html.erb +177 -0
- data/app/views/lato_core/doc/shared/_modal_content.html.erb +4 -0
- data/app/views/lato_core/doc/shared/_sortableblock_partial.html.erb +1 -0
- data/app/views/lato_core/partials/_dynamic_data_to_js.html.erb +3 -0
- data/app/views/lato_core/partials/_gmaps.html.erb +5 -0
- data/app/views/lato_core/widgets/_systeminfo.html.erb +15 -0
- data/app/views/layouts/lato_core/admin.html.erb +44 -0
- data/app/views/layouts/lato_core/authentication.html.erb +22 -0
- data/app/views/layouts/lato_core/partials/_back.html.erb +5 -0
- data/app/views/layouts/lato_core/partials/_load_javascript.html.erb +4 -0
- data/app/views/layouts/lato_core/partials/_load_partials.html.erb +5 -0
- data/app/views/layouts/lato_core/partials/_load_stylesheet.html.erb +4 -0
- data/app/views/layouts/lato_core/partials/_logo.html.erb +9 -0
- data/app/views/layouts/lato_core/partials/_menu.html.erb +67 -0
- data/app/views/layouts/lato_core/partials/_profile.html.erb +19 -0
- data/app/views/layouts/lato_core/partials/_title.html.erb +3 -0
- data/app/views/layouts/lato_core/partials/_widgets.html.erb +13 -0
- data/config/configs.yml +102 -0
- data/config/initializers/assets.rb +9 -0
- data/config/initializers/init_system.rb +39 -0
- data/config/languages/default.yml +63 -0
- data/config/languages/it.yml +63 -0
- data/config/routes.rb +10 -13
- data/config/routes/api.rb +3 -0
- data/config/routes/back.rb +10 -0
- data/config/routes/doc.rb +48 -0
- data/db/migrate/20160224181217_create_lato_core_superusers.rb +8 -2
- data/lib/generators/lato_core/crud_generator.rb +26 -0
- data/lib/generators/lato_core/initializer_generator.rb +46 -0
- data/lib/generators/lato_core/templates/assets/images/logo.svg +13 -0
- data/{config/initializers/lists.rb → lib/generators/lato_core/templates/assets/javascripts/application.js} +0 -0
- data/lib/generators/lato_core/templates/assets/stylesheets/application.scss +2 -0
- data/lib/generators/lato_core/templates/assets/stylesheets/theme.scss.erb +13 -0
- data/lib/generators/lato_core/templates/controllers/application_controller.rb +13 -0
- data/lib/generators/lato_core/templates/controllers/crud_controller.rb +87 -0
- data/lib/generators/lato_core/templates/views/application/index.html.erb +16 -0
- data/lib/generators/lato_core/templates/views/crud/edit.html.erb +18 -0
- data/lib/generators/lato_core/templates/views/crud/index.html.erb +29 -0
- data/lib/generators/lato_core/templates/views/crud/new.html.erb +18 -0
- data/lib/generators/lato_core/templates/views/crud/shared/_form.html.erb +25 -0
- data/lib/generators/lato_core/templates/views/crud/show.html.erb +16 -0
- data/lib/lato_core.rb +6 -5
- data/lib/lato_core/cell.rb +28 -0
- data/lib/lato_core/engine.rb +16 -13
- data/lib/lato_core/helper.rb +11 -0
- data/lib/lato_core/helpers/cells.rb +20 -0
- data/lib/lato_core/helpers/general.rb +16 -0
- data/lib/lato_core/interface.rb +17 -14
- data/lib/lato_core/interfaces/apihelpers.rb +39 -0
- data/lib/lato_core/interfaces/application.rb +65 -0
- data/lib/lato_core/interfaces/authentication.rb +41 -0
- data/lib/lato_core/interfaces/cells.rb +41 -0
- data/lib/lato_core/interfaces/general.rb +39 -0
- data/lib/lato_core/interfaces/layout.rb +213 -0
- data/lib/lato_core/interfaces/modules.rb +110 -0
- data/lib/lato_core/interfaces/token.rb +25 -0
- data/lib/lato_core/version.rb +3 -0
- data/lib/tasks/lato_core_tasks.rake +4 -8
- data/lib/tasks/lato_tasks.rake +83 -0
- metadata +407 -33
- data/app/controllers/lato_core/api/v1/api_controller.rb +0 -8
- data/app/mailers/lato_core/superusers_mailer.rb +0 -27
- data/app/views/lato_core/back/authentication/login.html.erb +0 -45
- data/app/views/lato_core/back/authentication/password_edit.html.erb +0 -45
- data/app/views/lato_core/back/authentication/password_forget.html.erb +0 -36
- data/app/views/lato_core/back/back/home.html.erb +0 -20
- data/app/views/lato_core/mailers/layouts/mailer.html.erb +0 -9
- data/app/views/lato_core/mailers/layouts/mailer.text.erb +0 -1
- data/app/views/lato_core/mailers/superusers/notify.html.erb +0 -2
- data/app/views/lato_core/mailers/superusers/recover_password.html.erb +0 -4
- data/config/config.yml +0 -8
- data/config/example.yml +0 -66
- data/config/initializers/init.rb +0 -15
- data/config/initializers/ram.rb +0 -14
- data/lang/default.yml +0 -61
- data/lang/en.yml +0 -61
- data/lib/lato_core/interface/authentication.rb +0 -26
- data/lib/lato_core/interface/cache.rb +0 -23
- data/lib/lato_core/interface/communication.rb +0 -87
- data/lib/lato_core/interface/languages.rb +0 -51
- data/lib/lato_core/interface/navigation.rb +0 -95
- data/lib/lato_core/interface/session.rb +0 -57
- data/lib/lato_core/interface/superusers.rb +0 -134
@@ -0,0 +1,18 @@
|
|
1
|
+
<%
|
2
|
+
row = cell(:elements, :row).new
|
3
|
+
block = cell(:elements, :block).new(class: 'xs-12 sm-12 md-12')
|
4
|
+
%>
|
5
|
+
|
6
|
+
<!-- MAIN CONTAINER -->
|
7
|
+
<%=raw row.open %>
|
8
|
+
|
9
|
+
<%=raw block.open %>
|
10
|
+
|
11
|
+
<%=raw cell(:elements, :title).new(label: 'New data', size: 2) %>
|
12
|
+
|
13
|
+
<%= render 'lato/crud/shared/form', url: lato_datas_path, method: :post %>
|
14
|
+
|
15
|
+
<%=raw block.close %>
|
16
|
+
|
17
|
+
<%=raw row.close %>
|
18
|
+
<!-- / MAIN CONTAINER -->
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<%
|
2
|
+
row = cell(:elements, :row).new
|
3
|
+
form = cell(:inputs, :form).new(url: url, method: method)
|
4
|
+
%>
|
5
|
+
|
6
|
+
<%=raw form.open %>
|
7
|
+
|
8
|
+
<%=raw row.open %>
|
9
|
+
|
10
|
+
<%=raw cell(:inputs, :text).new(name: 'data[name]', label: 'Name',
|
11
|
+
required: true, class: 'md-12', value: @data.name) %>
|
12
|
+
|
13
|
+
<%=raw row.close %>
|
14
|
+
|
15
|
+
<div class="text-right">
|
16
|
+
|
17
|
+
<%=raw cell(:elements, :button).new(type: 'link', label: 'Cancel',
|
18
|
+
style: 'danger', icon: 'ban', url: lato_datas_path) %>
|
19
|
+
|
20
|
+
<%=raw cell(:elements, :button).new(type: 'submit', label: 'Save',
|
21
|
+
style: 'success', icon: 'check') %>
|
22
|
+
|
23
|
+
</div>
|
24
|
+
|
25
|
+
<%=raw form.close %>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<%
|
2
|
+
row = cell(:elements, :row).new
|
3
|
+
block = cell(:elements, :block).new(class: 'xs-12 sm-12 md-12')
|
4
|
+
%>
|
5
|
+
|
6
|
+
<!-- MAIN CONTAINER -->
|
7
|
+
<%=raw row.open %>
|
8
|
+
|
9
|
+
<%=raw block.open %>
|
10
|
+
|
11
|
+
<%=raw cell(:elements, :title).new(label: @data.name, size: 2) %>
|
12
|
+
|
13
|
+
<%=raw block.close %>
|
14
|
+
|
15
|
+
<%=raw row.close %>
|
16
|
+
<!-- / MAIN CONTAINER -->
|
data/lib/lato_core.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
require "lato_core/interface"
|
1
|
+
require "lato_core/engine"
|
2
|
+
require "lato_core/interface"
|
3
|
+
require "lato_core/cell"
|
4
|
+
require "lato_core/helper"
|
6
5
|
|
6
|
+
module LatoCore
|
7
|
+
# Your code goes here...
|
7
8
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module LatoCore
|
2
|
+
|
3
|
+
class Cell < Cell::Concept
|
4
|
+
|
5
|
+
# set cells directory
|
6
|
+
view_paths << "#{LatoCore::Engine.root}/app/cells"
|
7
|
+
|
8
|
+
# include cells dependencies
|
9
|
+
include ::Cell::Erb
|
10
|
+
include ActionView::Helpers::UrlHelper
|
11
|
+
include ActionView::Helpers::OutputSafetyHelper
|
12
|
+
|
13
|
+
# This function is used from cells to validates arguments on constructor.
|
14
|
+
def validate_args(args: {}, requested_args: [], default_args: {})
|
15
|
+
requested_args.each do |requested_arg|
|
16
|
+
raise "Cell must have #{requested_arg} argument" if args[requested_arg] == nil
|
17
|
+
end
|
18
|
+
|
19
|
+
default_args.each do |key, value|
|
20
|
+
args[key] = value if args[key] == nil
|
21
|
+
end
|
22
|
+
|
23
|
+
args
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
data/lib/lato_core/engine.rb
CHANGED
@@ -2,25 +2,28 @@ module LatoCore
|
|
2
2
|
class Engine < ::Rails::Engine
|
3
3
|
isolate_namespace LatoCore
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
5
|
+
require 'rubygems'
|
6
|
+
require 'sass-rails'
|
7
|
+
require 'uglifier'
|
8
|
+
require 'jquery-rails'
|
9
|
+
require 'cells'
|
10
|
+
require 'cells-erb'
|
11
|
+
require 'bcrypt'
|
12
|
+
require 'jwt'
|
13
13
|
|
14
|
-
#
|
15
|
-
initializer 'Add gem routes to application',
|
16
|
-
before: :load_config_initializers do
|
14
|
+
# add routes support
|
15
|
+
initializer 'Add gem routes to application', before: :load_config_initializers do
|
17
16
|
Rails.application.routes.append do
|
18
17
|
mount LatoCore::Engine, at: '/lato/core'
|
19
18
|
end
|
20
19
|
end
|
21
20
|
|
22
|
-
|
23
|
-
|
21
|
+
# add helpers support
|
22
|
+
initializer 'Add helpers to application' do
|
23
|
+
ActiveSupport.on_load :action_controller do
|
24
|
+
helper LatoCore::Helper
|
25
|
+
end
|
26
|
+
end
|
24
27
|
|
25
28
|
end
|
26
29
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module LatoCore
|
2
|
+
|
3
|
+
# This module contains helpers used to manage cells.
|
4
|
+
module Helper::Cells
|
5
|
+
|
6
|
+
# This helper is used to create a new cell with a pretty format.
|
7
|
+
def cell(*names)
|
8
|
+
# define variables
|
9
|
+
names_list = names.first.to_s.start_with?('Lato') ? names[1..-1] : names
|
10
|
+
cell_class = names.first.to_s.start_with?('Lato') ? "#{names.first}::" : 'LatoCore::'
|
11
|
+
# return correct cell
|
12
|
+
names_list.each do |name|
|
13
|
+
cell_class = "#{cell_class}#{name.capitalize}::"
|
14
|
+
end
|
15
|
+
"#{cell_class}Cell".constantize
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module LatoCore
|
2
|
+
|
3
|
+
# This helper contain general functions.
|
4
|
+
module Helper::General
|
5
|
+
|
6
|
+
def erb_open_tag
|
7
|
+
return "<span class='erb-tag'><%</span>".html_safe
|
8
|
+
end
|
9
|
+
|
10
|
+
def erb_close_tag
|
11
|
+
return "<span class='erb-tag'>%></span>".html_safe
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
data/lib/lato_core/interface.rb
CHANGED
@@ -1,26 +1,29 @@
|
|
1
1
|
module LatoCore
|
2
2
|
module Interface
|
3
3
|
|
4
|
-
require 'lato_core/
|
5
|
-
include LatoCore::Interface::
|
4
|
+
require 'lato_core/interfaces/general'
|
5
|
+
include LatoCore::Interface::General
|
6
|
+
|
7
|
+
require 'lato_core/interfaces/application'
|
8
|
+
include LatoCore::Interface::Application
|
6
9
|
|
7
|
-
require 'lato_core/
|
8
|
-
include LatoCore::Interface::
|
10
|
+
require 'lato_core/interfaces/modules'
|
11
|
+
include LatoCore::Interface::Modules
|
9
12
|
|
10
|
-
require 'lato_core/
|
11
|
-
include LatoCore::Interface::
|
13
|
+
require 'lato_core/interfaces/token'
|
14
|
+
include LatoCore::Interface::Token
|
12
15
|
|
13
|
-
require 'lato_core/
|
14
|
-
include LatoCore::Interface::
|
16
|
+
require 'lato_core/interfaces/layout'
|
17
|
+
include LatoCore::Interface::Layout
|
15
18
|
|
16
|
-
require 'lato_core/
|
17
|
-
include LatoCore::Interface::
|
19
|
+
require 'lato_core/interfaces/authentication'
|
20
|
+
include LatoCore::Interface::Authentication
|
18
21
|
|
19
|
-
require 'lato_core/
|
20
|
-
include LatoCore::Interface::
|
22
|
+
require 'lato_core/interfaces/cells'
|
23
|
+
include LatoCore::Interface::Cells
|
21
24
|
|
22
|
-
require 'lato_core/
|
23
|
-
include LatoCore::Interface::
|
25
|
+
require 'lato_core/interfaces/apihelpers'
|
26
|
+
include LatoCore::Interface::Apihelpers
|
24
27
|
|
25
28
|
end
|
26
29
|
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module LatoCore
|
2
|
+
|
3
|
+
# This module contains a list of functions used to write application or
|
4
|
+
# modules api. They permit to have a nice standard on api structure.
|
5
|
+
module Interface::Apihelpers
|
6
|
+
|
7
|
+
# This function render a normal success response with a custom payload.
|
8
|
+
def core__send_request_success(payload)
|
9
|
+
response = { result: true, error_message: nil }
|
10
|
+
response[:payload] = payload if payload
|
11
|
+
render json: response
|
12
|
+
end
|
13
|
+
|
14
|
+
# This function render an error message with a possible custom payload.
|
15
|
+
def core__send_request_fail(error, payload: nil)
|
16
|
+
response = { result: false, error_message: error }
|
17
|
+
response[:payload] = payload if payload
|
18
|
+
render json: response
|
19
|
+
end
|
20
|
+
|
21
|
+
# This function render an error message with the errors contained
|
22
|
+
# on an entity.
|
23
|
+
def core__send_entity_error(entity)
|
24
|
+
render_request_fail(entity.errors.full_messages.to_sentence)
|
25
|
+
end
|
26
|
+
|
27
|
+
# This function render an error for a bad request with an error message.
|
28
|
+
def core__send_bad_request_error(error)
|
29
|
+
render json: { result: false, error_message: error }, status: 400
|
30
|
+
end
|
31
|
+
|
32
|
+
# Tis function render an error for an unauthorized request with
|
33
|
+
# an error message.
|
34
|
+
def core__send_unauthorized_request_error(error)
|
35
|
+
render json: { result: false, error_message: error }, status: 401
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
module LatoCore
|
2
|
+
|
3
|
+
# This module contains a list of functions used to get application informations.
|
4
|
+
# Information about the application are saved on a global variable APPLICATION.
|
5
|
+
module Interface::Application
|
6
|
+
|
7
|
+
# This function return the default language set on main application (I18l).
|
8
|
+
def core__get_application_language
|
9
|
+
I18n.locale
|
10
|
+
end
|
11
|
+
|
12
|
+
# This function return the list of gems used by the application.
|
13
|
+
def core__get_application_gems
|
14
|
+
gems = {}
|
15
|
+
Bundler.load.specs.each do |spec|
|
16
|
+
gems[spec.name] = spec.version
|
17
|
+
end
|
18
|
+
gems
|
19
|
+
end
|
20
|
+
|
21
|
+
# This function return the root path of the application.
|
22
|
+
def core__get_application_root_path
|
23
|
+
Rails.root.to_s
|
24
|
+
end
|
25
|
+
|
26
|
+
# This function return the path of the application logo for the sidebar.
|
27
|
+
def core__get_application_logo_sidebar_path
|
28
|
+
dir = "#{core__get_application_root_path}/app/assets/images/lato/"
|
29
|
+
if File.exist?("#{dir}/logo_sidebar.svg")
|
30
|
+
return 'lato/logo_sidebar.svg'
|
31
|
+
elsif File.exist?("#{dir}/logo_sidebar.png")
|
32
|
+
return 'lato/logo_sidebar.png'
|
33
|
+
elsif File.exist?("#{dir}/logo_sidebar.jpg")
|
34
|
+
return 'lato/logo_sidebar.jpg'
|
35
|
+
elsif File.exist?("#{dir}/logo_sidebar.gif")
|
36
|
+
return 'lato/logo_sidebar.gif'
|
37
|
+
end
|
38
|
+
core__get_application_logo_path
|
39
|
+
end
|
40
|
+
|
41
|
+
# This function return the path of the application logo.
|
42
|
+
def core__get_application_logo_path
|
43
|
+
dir = "#{core__get_application_root_path}/app/assets/images/lato/"
|
44
|
+
if File.exist?("#{dir}/logo.svg")
|
45
|
+
return 'lato/logo.svg'
|
46
|
+
elsif File.exist?("#{dir}/logo.png")
|
47
|
+
return 'lato/logo.png'
|
48
|
+
elsif File.exist?("#{dir}/logo.jpg")
|
49
|
+
return 'lato/logo.jpg'
|
50
|
+
elsif File.exist?('#{dir}/logo.gif')
|
51
|
+
return 'lato/logo.gif'
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
# This function create and return the path of configs on main application.
|
56
|
+
def core__get_application_lato_configs_path
|
57
|
+
absolute_path = "#{core__get_application_root_path}/config/lato"
|
58
|
+
# create directory if not exist
|
59
|
+
FileUtils.mkdir_p(absolute_path) unless File.exist?(absolute_path)
|
60
|
+
# return directory
|
61
|
+
absolute_path
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module LatoCore
|
2
|
+
|
3
|
+
# This module contains a list of functions used to authenticate a superuser.
|
4
|
+
module Interface::Authentication
|
5
|
+
|
6
|
+
# This function set a cookie to create the superuser session.
|
7
|
+
def core__create_superuser_session(superuser, lifetime)
|
8
|
+
token = core__encode_token(lifetime, superuser_id: superuser.id)
|
9
|
+
session[:lato_core__superuser_session_token] = token
|
10
|
+
end
|
11
|
+
|
12
|
+
# This function delete a cookie to destroy the superuser session.
|
13
|
+
def core__destroy_superuser_session
|
14
|
+
session[:lato_core__superuser_session_token] = nil
|
15
|
+
end
|
16
|
+
|
17
|
+
# This function tells if the current session is valid.
|
18
|
+
def core__check_superuser_session_valid
|
19
|
+
decoded_token = core__decode_token(session[:lato_core__superuser_session_token])
|
20
|
+
return false unless decoded_token
|
21
|
+
true
|
22
|
+
end
|
23
|
+
|
24
|
+
# This function check the session for a superuser and set the variable @core__current_superuser.
|
25
|
+
# If session is not valid the user should be redirect to login path.
|
26
|
+
def core__manage_superuser_session
|
27
|
+
decoded_token = core__decode_token(session[:lato_core__superuser_session_token])
|
28
|
+
|
29
|
+
if decoded_token
|
30
|
+
@core__current_superuser = LatoCore::Superuser.find_by(id: decoded_token[:superuser_id])
|
31
|
+
unless @core__current_superuser
|
32
|
+
core__destroy_superuser_session
|
33
|
+
redirect_to lato_core.login_path
|
34
|
+
end
|
35
|
+
else
|
36
|
+
redirect_to lato_core.login_path
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module LatoCore
|
2
|
+
|
3
|
+
# This module contains a list of functions used by controllers to interact with widgets
|
4
|
+
# cells.
|
5
|
+
module Interface::Cells
|
6
|
+
|
7
|
+
# This function must be executed before every action and set metadata
|
8
|
+
# used by cells.
|
9
|
+
def core__cells_initialize
|
10
|
+
@core__cells_authenticity_token = form_authenticity_token
|
11
|
+
end
|
12
|
+
|
13
|
+
# This function manage the widget index from front end.
|
14
|
+
def core__widgets_index(records, search: nil, pagination: 50)
|
15
|
+
response = {
|
16
|
+
records: records,
|
17
|
+
total: records.length,
|
18
|
+
per_page: pagination,
|
19
|
+
search: '',
|
20
|
+
search_key: search,
|
21
|
+
pagination: 1,
|
22
|
+
}
|
23
|
+
# manage search
|
24
|
+
if search && params[:widget_index] && params[:widget_index][:search] && !params[:widget_index][:search].blank?
|
25
|
+
response[:records] = response[:records].where("#{search} like ?", "%#{params[:widget_index][:search]}%")
|
26
|
+
response[:total] = response[:records].length
|
27
|
+
response[:search] = params[:widget_index][:search]
|
28
|
+
end
|
29
|
+
# manage pagination
|
30
|
+
if pagination
|
31
|
+
if params[:widget_index] && params[:widget_index][:pagination]
|
32
|
+
response[:pagination] = params[:widget_index][:pagination].to_i
|
33
|
+
end
|
34
|
+
response[:records] = core__paginate_array(response[:records], pagination, response[:pagination])
|
35
|
+
end
|
36
|
+
# return response
|
37
|
+
response
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module LatoCore
|
2
|
+
|
3
|
+
# This module contains a list of general functions used as helpers on the system.
|
4
|
+
module Interface::General
|
5
|
+
|
6
|
+
# This function takes a path to a yaml file and return the hash with yaml data
|
7
|
+
# or nil if file not exist.
|
8
|
+
def core__read_yaml(file_path)
|
9
|
+
# return nil if file not exist
|
10
|
+
return unless File.exist?(file_path)
|
11
|
+
config_file = File.read(file_path)
|
12
|
+
# return yaml data
|
13
|
+
return YAML.safe_load(config_file).with_indifferent_access
|
14
|
+
rescue
|
15
|
+
nil
|
16
|
+
end
|
17
|
+
|
18
|
+
# This function return the substring inside two strings.
|
19
|
+
def core__get_string_inside_strings(string, marker1, marker2)
|
20
|
+
string[/#{Regexp.escape(marker1)}(.*?)#{Regexp.escape(marker2)}/m, 1]
|
21
|
+
end
|
22
|
+
|
23
|
+
# This function paginate an array and return the requested page.
|
24
|
+
def core__paginate_array(array, per_page, page)
|
25
|
+
start = (page - 1) * per_page
|
26
|
+
array[start, per_page]
|
27
|
+
end
|
28
|
+
|
29
|
+
# This function add a new GET param to an url string.
|
30
|
+
def core__add_param_to_url(url, param_name, param_value)
|
31
|
+
uri = URI(url)
|
32
|
+
params = URI.decode_www_form(uri.query || "") << [param_name, param_value]
|
33
|
+
uri.query = URI.encode_www_form(params)
|
34
|
+
uri.to_s
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|