lipsiadmin 2.9
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +90 -0
- data/MIT-LICENSE +20 -0
- data/README +60 -0
- data/Rakefile +90 -0
- data/init.rb +1 -0
- data/lib/access_control/authentication.rb +105 -0
- data/lib/access_control/base.rb +227 -0
- data/lib/controller/ext.rb +168 -0
- data/lib/controller/lipsiadmin_controller.rb +18 -0
- data/lib/controller/pdf_builder.rb +67 -0
- data/lib/controller/rescue.rb +72 -0
- data/lib/controller/responds_to_parent.rb +56 -0
- data/lib/data_base/attachment.rb +351 -0
- data/lib/data_base/attachment/attach.rb +515 -0
- data/lib/data_base/attachment/geometry.rb +117 -0
- data/lib/data_base/attachment/iostream.rb +62 -0
- data/lib/data_base/attachment/processor.rb +49 -0
- data/lib/data_base/attachment/storage.rb +223 -0
- data/lib/data_base/attachment/thumbnail.rb +72 -0
- data/lib/data_base/attachment/upfile.rb +45 -0
- data/lib/data_base/attachment_table.rb +142 -0
- data/lib/data_base/translate_attributes.rb +30 -0
- data/lib/data_base/utility_scopes.rb +40 -0
- data/lib/data_base/without_table.rb +62 -0
- data/lib/generator.rb +114 -0
- data/lib/lipsiadmin.rb +77 -0
- data/lib/lipsiadmin_tasks.rb +3 -0
- data/lib/locale/en.yml +16 -0
- data/lib/locale/it.yml +16 -0
- data/lib/mailer/exception/exception.html.erb +11 -0
- data/lib/mailer/exception_notifier.rb +46 -0
- data/lib/mailer/pdf_builder.rb +66 -0
- data/lib/utils/html_entities.rb +63 -0
- data/lib/utils/literal.rb +20 -0
- data/lib/version.rb +9 -0
- data/lib/view/helpers/active_record_helper.rb +11 -0
- data/lib/view/helpers/backend_helper.rb +132 -0
- data/lib/view/helpers/ext/column_model.rb +73 -0
- data/lib/view/helpers/ext/component.rb +163 -0
- data/lib/view/helpers/ext/configuration.rb +36 -0
- data/lib/view/helpers/ext/grid.rb +281 -0
- data/lib/view/helpers/ext/store.rb +103 -0
- data/lib/view/helpers/ext/templates/grid_functions.js.erb +51 -0
- data/lib/view/helpers/ext/tool_bar.rb +40 -0
- data/lib/view/helpers/ext_helper.rb +150 -0
- data/lib/view/helpers/view_helper.rb +222 -0
- data/lipsiadmin_generators/attachment/REMEMBER +21 -0
- data/lipsiadmin_generators/attachment/attachment_generator.rb +27 -0
- data/lipsiadmin_generators/attachment/templates/migration.rb +14 -0
- data/lipsiadmin_generators/attachment/templates/model.rb +4 -0
- data/lipsiadmin_generators/backend/REMEMBER +18 -0
- data/lipsiadmin_generators/backend/backend_generator.rb +58 -0
- data/lipsiadmin_generators/backend/templates/config/config.yml +14 -0
- data/lipsiadmin_generators/backend/templates/config/initializers/config.rb +7 -0
- data/lipsiadmin_generators/backend/templates/config/initializers/emails.rb +2 -0
- data/lipsiadmin_generators/backend/templates/config/initializers/exception_notifier.rb +7 -0
- data/lipsiadmin_generators/backend/templates/config/locales/backend/en.yml +204 -0
- data/lipsiadmin_generators/backend/templates/config/locales/backend/it.yml +203 -0
- data/lipsiadmin_generators/backend/templates/config/locales/frontend/en.yml +5 -0
- data/lipsiadmin_generators/backend/templates/config/locales/frontend/it.yml +5 -0
- data/lipsiadmin_generators/backend/templates/config/locales/models/en.yml +31 -0
- data/lipsiadmin_generators/backend/templates/config/locales/models/it.yml +23 -0
- data/lipsiadmin_generators/backend/templates/config/locales/rails/en.yml +148 -0
- data/lipsiadmin_generators/backend/templates/config/locales/rails/it.yml +109 -0
- data/lipsiadmin_generators/backend/templates/controllers/backend/accounts_controller.rb +53 -0
- data/lipsiadmin_generators/backend/templates/controllers/backend/base_controller.rb +8 -0
- data/lipsiadmin_generators/backend/templates/controllers/backend/sessions_controller.rb +21 -0
- data/lipsiadmin_generators/backend/templates/controllers/backend_controller.rb +2 -0
- data/lipsiadmin_generators/backend/templates/controllers/frontend_controller.rb +4 -0
- data/lipsiadmin_generators/backend/templates/controllers/javascripts_controller.rb +17 -0
- data/lipsiadmin_generators/backend/templates/exceptions/template.html.haml +5 -0
- data/lipsiadmin_generators/backend/templates/helpers/backend_helper.rb +2 -0
- data/lipsiadmin_generators/backend/templates/helpers/frontend_helper.rb +2 -0
- data/lipsiadmin_generators/backend/templates/images/backend/back.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/backend/background.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/backend/bg-content.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/backend/bg-hd-slate.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/backend/bg-hd.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/backend/bg-intro.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/backend/bg-login.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/backend/bg-menu-slate.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/backend/bg-menu.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/backend/bg.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/backend/btn-login.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/backend/delete.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/backend/download.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/backend/duplicate.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/backend/edit.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/backend/hd-bg-slate.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/backend/hd-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/backend/it.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/backend/loader.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/backend/logo-loader.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/backend/logo-small.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/backend/new.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/backend/no-image.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/backend/preview.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/backend/print.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/backend/save.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/backend/support.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/backend/us.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/box/corners-blue.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/box/corners.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/box/l-blue.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/box/l.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/box/r-blue.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/box/r.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/box/tb-blue.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/box/tb-slate.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/box/tb.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/button/btn-arrow.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/button/btn-sprite.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/dd/drop-add.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/dd/drop-no.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/dd/drop-yes.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/editor/tb-sprite.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/form/clear-trigger.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/form/clear-trigger.psd +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/form/date-trigger.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/form/date-trigger.psd +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/form/error-tip-corners.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/form/exclamation.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/form/search-trigger.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/form/search-trigger.psd +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/form/text-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/form/trigger-tpl.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/form/trigger.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/form/trigger.psd +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/gradient-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/Thumbs.db +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/arrow-left-white.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/arrow-right-white.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/col-move-bottom.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/col-move-top.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/columns.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/dirty.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/done.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/drop-no.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/drop-yes.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/footer-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/grid-blue-hd.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/grid-blue-split.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/grid-hrow.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/grid-loading.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/grid-split.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/grid-vista-hd.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/grid3-hd-btn.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/grid3-hrow-over.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/grid3-hrow.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/grid3-special-col-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/grid3-special-col-sel-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/group-by.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/group-expand-sprite.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/hd-pop.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/hmenu-asc.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/hmenu-desc.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/hmenu-lock.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/hmenu-lock.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/hmenu-unlock.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/hmenu-unlock.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/invalid_line.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/loading.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/mso-hd.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/nowait.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/page-first-disabled.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/page-first.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/page-last-disabled.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/page-last.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/page-next-disabled.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/page-next.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/page-prev-disabled.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/page-prev.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/pick-button.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/refresh.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/row-check-sprite.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/row-expand-sprite.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/row-over.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/row-sel.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/sort_asc.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/sort_desc.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/grid/wait.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/layout/collapse.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/layout/expand.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/layout/gradient-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/layout/mini-bottom.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/layout/mini-left.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/layout/mini-right.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/layout/mini-top.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/layout/ns-collapse.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/layout/ns-expand.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/layout/panel-close.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/layout/panel-title-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/layout/panel-title-light-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/layout/stick.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/layout/stuck.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/layout/tab-close-on.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/layout/tab-close.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/menu/checked.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/menu/group-checked.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/menu/item-over.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/menu/menu-parent.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/menu/menu.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/menu/unchecked.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/panel/corners-sprite.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/panel/left-right.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/panel/light-hd.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/panel/tool-sprite-tpl.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/panel/tool-sprites.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/panel/tools-sprites-trans.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/panel/top-bottom.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/panel/top-bottom.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/panel/white-corners-sprite.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/panel/white-left-right.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/panel/white-top-bottom.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/progress/progress-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/qtip/bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/qtip/close.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/qtip/tip-sprite.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/s.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/shadow-c.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/shadow-lr.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/shadow.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/shared/blue-loading.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/shared/calendar.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/shared/glass-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/shared/hd-sprite.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/shared/large-loading.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/shared/left-btn.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/shared/loading-balls.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/shared/right-btn.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/shared/warning.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/sizer/e-handle-dark.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/sizer/e-handle.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/sizer/ne-handle-dark.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/sizer/ne-handle.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/sizer/nw-handle-dark.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/sizer/nw-handle.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/sizer/s-handle-dark.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/sizer/s-handle.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/sizer/se-handle-dark.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/sizer/se-handle.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/sizer/square.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/sizer/sw-handle-dark.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/sizer/sw-handle.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/slider/slider-bg.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/slider/slider-thumb.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/slider/slider-v-bg.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/slider/slider-v-thumb.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tabs/scroll-left.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tabs/scroll-right.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tabs/scroller-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tabs/tab-btm-inactive-left-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tabs/tab-btm-inactive-right-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tabs/tab-btm-left-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tabs/tab-btm-right-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tabs/tab-close.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tabs/tab-strip-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tabs/tab-strip-bg.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tabs/tab-strip-btm-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tabs/tabs-sprite.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/toolbar/bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/toolbar/btn-arrow-light.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/toolbar/btn-arrow.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/toolbar/btn-over-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/toolbar/gray-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/toolbar/tb-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/toolbar/tb-btn-sprite.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tree/arrows.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tree/drop-add.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tree/drop-between.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tree/drop-no.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tree/drop-over.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tree/drop-under.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tree/drop-yes.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tree/elbow-end-minus-nl.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tree/elbow-end-minus.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tree/elbow-end-plus-nl.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tree/elbow-end-plus.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tree/elbow-end.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tree/elbow-line.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tree/elbow-minus-nl.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tree/elbow-minus.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tree/elbow-plus-nl.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tree/elbow-plus.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tree/elbow.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tree/folder-open.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tree/folder.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tree/leaf.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tree/loading.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/tree/s.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/window/icon-error.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/window/icon-info.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/window/icon-question.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/window/icon-warning.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/window/left-corners.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/window/left-corners.psd +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/window/left-right.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/window/left-right.psd +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/window/right-corners.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/window/right-corners.psd +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/window/top-bottom.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/default/window/top-bottom.psd +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/button/btn-arrow.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/button/btn-sprite.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/editor/tb-sprite.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/form/checkbox.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/form/clear-trigger.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/form/date-trigger.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/form/radio.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/form/search-trigger.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/form/trigger-tpl.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/form/trigger.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/gradient-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/grid/arrow-left-white.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/grid/arrow-right-white.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/grid/col-move-bottom.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/grid/col-move-top.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/grid/footer-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/grid/grid-blue-hd.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/grid/grid-blue-split.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/grid/grid-hrow.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/grid/grid-split.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/grid/grid-vista-hd.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/grid/grid3-hd-btn.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/grid/grid3-hrow-over.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/grid/grid3-hrow.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/grid/grid3-special-col-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/grid/grid3-special-col-sel-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/grid/group-expand-sprite.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/grid/mso-hd.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/grid/page-first-disabled.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/grid/page-first.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/grid/page-last-disabled.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/grid/page-last.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/grid/page-next-disabled.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/grid/page-next.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/grid/page-prev-disabled.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/grid/page-prev.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/grid/refresh.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/grid/row-over.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/grid/row-sel.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/grid/sort_asc.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/grid/sort_desc.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/menu/checked.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/menu/group-checked.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/menu/item-over - Copy.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/menu/item-over.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/menu/menu-parent.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/menu/menu.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/menu/unchecked.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/panel/corners-sprite.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/panel/left-right.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/panel/light-hd.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/panel/tool-sprite-tpl.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/panel/tool-sprites.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/panel/tools-sprites-trans.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/panel/top-bottom.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/panel/top-bottom.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/panel/white-corners-sprite.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/panel/white-left-right.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/panel/white-top-bottom.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/progress/progress-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/qtip/bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/qtip/close.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/qtip/tip-sprite.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/s.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/shared/glass-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/shared/hd-sprite.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/shared/left-btn.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/shared/right-btn.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/sizer/e-handle-dark.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/sizer/e-handle.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/sizer/ne-handle-dark.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/sizer/ne-handle.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/sizer/nw-handle-dark.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/sizer/nw-handle.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/sizer/s-handle-dark.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/sizer/s-handle.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/sizer/se-handle-dark.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/sizer/se-handle.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/sizer/square.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/sizer/sw-handle-dark.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/sizer/sw-handle.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/slider/slider-bg.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/slider/slider-thumb.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/slider/slider-v-bg.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/slider/slider-v-thumb.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/tabs/scroll-left.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/tabs/scroll-right.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/tabs/scroller-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/tabs/tab-btm-inactive-left-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/tabs/tab-btm-inactive-right-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/tabs/tab-btm-left-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/tabs/tab-btm-right-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/tabs/tab-close.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/tabs/tab-strip-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/tabs/tab-strip-bg.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/tabs/tab-strip-btm-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/tabs/tabs-sprite.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/toolbar/bg-menu.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/toolbar/bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/toolbar/btn-arrow-light.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/toolbar/btn-arrow.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/toolbar/btn-over-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/toolbar/gray-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/toolbar/tb-bg.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/toolbar/tb-btn-sprite.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/tree/arrows.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/window/icon-error.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/window/icon-info.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/window/icon-question.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/window/icon-warning.gif +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/window/left-corners.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/window/left-right.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/window/right-corners.png +0 -0
- data/lipsiadmin_generators/backend/templates/images/ext/slate/window/top-bottom.png +0 -0
- data/lipsiadmin_generators/backend/templates/javascripts/controls.js +3 -0
- data/lipsiadmin_generators/backend/templates/javascripts/dragdrop.js +3 -0
- data/lipsiadmin_generators/backend/templates/javascripts/effects.js +4 -0
- data/lipsiadmin_generators/backend/templates/javascripts/ext.js +76 -0
- data/lipsiadmin_generators/backend/templates/javascripts/prototype.js +12 -0
- data/lipsiadmin_generators/backend/templates/layouts/backend.html.haml +12 -0
- data/lipsiadmin_generators/backend/templates/layouts/frontend.html.haml +7 -0
- data/lipsiadmin_generators/backend/templates/migrations/create_accounts.rb +20 -0
- data/lipsiadmin_generators/backend/templates/models/account.rb +116 -0
- data/lipsiadmin_generators/backend/templates/models/account_access.rb +17 -0
- data/lipsiadmin_generators/backend/templates/models/notifier.rb +15 -0
- data/lipsiadmin_generators/backend/templates/stylesheets/backend-slate.css +105 -0
- data/lipsiadmin_generators/backend/templates/stylesheets/backend.css +74 -0
- data/lipsiadmin_generators/backend/templates/stylesheets/ext-slate.css +241 -0
- data/lipsiadmin_generators/backend/templates/stylesheets/ext.css +904 -0
- data/lipsiadmin_generators/backend/templates/stylesheets/login.css +22 -0
- data/lipsiadmin_generators/backend/templates/stylesheets/print.css +11 -0
- data/lipsiadmin_generators/backend/templates/stylesheets/standard.css +62 -0
- data/lipsiadmin_generators/backend/templates/views/backend/accounts/_form.html.haml +21 -0
- data/lipsiadmin_generators/backend/templates/views/backend/accounts/edit.html.haml +3 -0
- data/lipsiadmin_generators/backend/templates/views/backend/accounts/index.rjs +16 -0
- data/lipsiadmin_generators/backend/templates/views/backend/accounts/new.html.haml +3 -0
- data/lipsiadmin_generators/backend/templates/views/backend/base/index.html.haml +17 -0
- data/lipsiadmin_generators/backend/templates/views/backend/base/welcome.html.haml +2 -0
- data/lipsiadmin_generators/backend/templates/views/backend/sessions/new.html.haml +12 -0
- data/lipsiadmin_generators/backend/templates/views/javascripts/backend.js.erb +346 -0
- data/lipsiadmin_generators/backend/templates/views/javascripts/locale.js.erb +135 -0
- data/lipsiadmin_generators/backend/templates/views/notifier/registration.html.erb +2 -0
- data/lipsiadmin_generators/backend/templates/views/notifier/support_request.html.erb +1 -0
- data/lipsiadmin_generators/backend_page/REMEMBER +7 -0
- data/lipsiadmin_generators/backend_page/backend_page_generator.rb +212 -0
- data/lipsiadmin_generators/backend_page/templates/controller.rb +61 -0
- data/lipsiadmin_generators/backend_page/templates/form.html.haml +5 -0
- data/lipsiadmin_generators/backend_page/templates/form_scaffolding.html.haml +1 -0
- data/lipsiadmin_generators/backend_page/templates/functional_test.rb +45 -0
- data/lipsiadmin_generators/backend_page/templates/helper.rb +2 -0
- data/lipsiadmin_generators/backend_page/templates/view_edit.html.haml +3 -0
- data/lipsiadmin_generators/backend_page/templates/view_index.rjs.erb +16 -0
- data/lipsiadmin_generators/backend_page/templates/view_new.html.haml +3 -0
- data/lipsiadmin_generators/pdf/pdf_generator.rb +50 -0
- data/lipsiadmin_generators/pdf/templates/layout.html.erb +18 -0
- data/lipsiadmin_generators/pdf/templates/stylesheets/print.css +11 -0
- data/lipsiadmin_generators/pdf/templates/view.html.haml +7 -0
- data/resources/Pd4Ruby.class +0 -0
- data/resources/Pd4Ruby.java +52 -0
- data/resources/javascripts/ux.js +1102 -0
- data/resources/pd4ml.jar +0 -0
- data/resources/rdoc/horo.rb +613 -0
- data/resources/ss_css2.jar +0 -0
- data/tasks/lipsiadmin_tasks.rake +14 -0
- metadata +604 -0
data/lib/lipsiadmin.rb
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
require 'utils/html_entities'
|
2
|
+
require 'utils/literal'
|
3
|
+
require 'access_control/authentication'
|
4
|
+
require 'access_control/base'
|
5
|
+
require 'mailer/pdf_builder'
|
6
|
+
require 'mailer/exception_notifier'
|
7
|
+
require 'view/helpers/active_record_helper'
|
8
|
+
require 'view/helpers/backend_helper'
|
9
|
+
require 'view/helpers/view_helper'
|
10
|
+
require 'view/helpers/ext_helper'
|
11
|
+
require 'controller/ext'
|
12
|
+
require 'controller/pdf_builder'
|
13
|
+
require 'controller/responds_to_parent'
|
14
|
+
require 'controller/lipsiadmin_controller'
|
15
|
+
require 'controller/ext'
|
16
|
+
require 'controller/rescue'
|
17
|
+
require 'data_base/without_table'
|
18
|
+
require 'data_base/translate_attributes'
|
19
|
+
require 'data_base/attachment'
|
20
|
+
require 'data_base/attachment_table'
|
21
|
+
require 'data_base/utility_scopes'
|
22
|
+
require 'haml'
|
23
|
+
require 'version'
|
24
|
+
require 'generator'
|
25
|
+
|
26
|
+
Haml.init_rails(binding)
|
27
|
+
Haml::Template.options[:attr_wrapper] = "\""
|
28
|
+
|
29
|
+
# Global Extension
|
30
|
+
|
31
|
+
ActiveRecord::Base.class_eval do
|
32
|
+
include Lipsiadmin::DataBase::TranslateAttributes
|
33
|
+
include Lipsiadmin::DataBase::Attachment
|
34
|
+
include Lipsiadmin::DataBase::UtilityScopes
|
35
|
+
end
|
36
|
+
|
37
|
+
ActionView::Base.class_eval do
|
38
|
+
include Lipsiadmin::View::Helpers::FormHelper
|
39
|
+
include Lipsiadmin::View::Helpers::FormTagHelper
|
40
|
+
include Lipsiadmin::View::Helpers::DateHelper
|
41
|
+
include Lipsiadmin::View::Helpers::CountrySelectHelper
|
42
|
+
end
|
43
|
+
|
44
|
+
ActionView::Helpers::FormBuilder.send(:include, Lipsiadmin::View::Helpers::FormBuilder)
|
45
|
+
|
46
|
+
ActionView::Helpers::PrototypeHelper::JavaScriptGenerator::GeneratorMethods.class_eval do
|
47
|
+
include Lipsiadmin::View::Helpers::ExtHelper
|
48
|
+
end
|
49
|
+
|
50
|
+
ActionController::Base.class_eval do
|
51
|
+
include Lipsiadmin::Controller::Rescue
|
52
|
+
include Lipsiadmin::Controller::PdfBuilder
|
53
|
+
include Lipsiadmin::Controller::RespondsToParent
|
54
|
+
include Lipsiadmin::Controller::Ext
|
55
|
+
include Lipsiadmin::AccessControl::Authentication
|
56
|
+
end
|
57
|
+
|
58
|
+
# For Attachments
|
59
|
+
File.send(:include, Lipsiadmin::Attachment::Upfile)
|
60
|
+
|
61
|
+
# For javascript objects
|
62
|
+
Object.send(:include, Lipsiadmin::Utils::Literal)
|
63
|
+
|
64
|
+
# Custom CSS and JS
|
65
|
+
ActionView::Helpers::AssetTagHelper.register_stylesheet_expansion :backend => ["ext", "standard", "backend"], :backend_slate => ["ext", "ext-slate", "standard", "backend-slate"]
|
66
|
+
ActionView::Helpers::AssetTagHelper.register_javascript_expansion :backend => ["ext", "locale", "backend"]
|
67
|
+
|
68
|
+
# Add a better organization of locales
|
69
|
+
I18n.load_path += Dir[File.join(RAILS_ROOT, 'config', 'locales', 'backend', '*.{rb,yml}')]
|
70
|
+
I18n.load_path += Dir[File.join(RAILS_ROOT, 'config', 'locales', 'frontend', '*.{rb,yml}')]
|
71
|
+
I18n.load_path += Dir[File.join(RAILS_ROOT, 'config', 'locales', 'menu', '*.{rb,yml}')]
|
72
|
+
I18n.load_path += Dir[File.join(RAILS_ROOT, 'config', 'locales', 'models', '*.{rb,yml}')]
|
73
|
+
I18n.load_path += Dir[File.join(RAILS_ROOT, 'config', 'locales', 'rails', '*.{rb,yml}')]
|
74
|
+
|
75
|
+
# Load generator languages
|
76
|
+
I18n.load_path << File.dirname(__FILE__) + '/locale/it.yml'
|
77
|
+
I18n.load_path << File.dirname(__FILE__) + '/locale/en.yml'
|
data/lib/locale/en.yml
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
en:
|
2
|
+
lipsiadmin:
|
3
|
+
labels:
|
4
|
+
not_found: "Not found"
|
5
|
+
buttons:
|
6
|
+
save: "Save"
|
7
|
+
exceptions:
|
8
|
+
404:
|
9
|
+
title: "The page you were looking for doesn't exist"
|
10
|
+
description: "You may have mistyped the address or the page may have moved."
|
11
|
+
422:
|
12
|
+
title: "The change you wanted was rejected"
|
13
|
+
description: "Maybe you tried to change something you didn't have access to."
|
14
|
+
500:
|
15
|
+
title: "We're sorry, but something went wrong"
|
16
|
+
description: "We've been notified about this issue and we'll take a look at it shortly"
|
data/lib/locale/it.yml
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
it:
|
2
|
+
lipsiadmin:
|
3
|
+
labels:
|
4
|
+
not_found: "Nessuno"
|
5
|
+
buttons:
|
6
|
+
save: "Salva"
|
7
|
+
exceptions:
|
8
|
+
"404":
|
9
|
+
title: "La pagina che cerchi non esiste"
|
10
|
+
description: "E' possibile che abbia digitato un indirizzo errato o che la pagina sia stata rimossa."
|
11
|
+
"422":
|
12
|
+
title: "La modifica è stata rifiutata"
|
13
|
+
description: "Hai tentato di modificare qualcosa che non ti è permesso."
|
14
|
+
"500":
|
15
|
+
title: "Si è verificato un problema"
|
16
|
+
description: "Le nostre scimmie stanno già provvedendo a risolvere il problema."
|
@@ -0,0 +1,11 @@
|
|
1
|
+
A <%= @exception.class %> occurred in <%= @controller.controller_name %>#<%= @controller.action_name %>:
|
2
|
+
|
3
|
+
<%=h @exception.message %>
|
4
|
+
<%=h @backtrace.join("\n") %>
|
5
|
+
|
6
|
+
* URL : <%= @request.protocol %><%= @host %><%= @request.request_uri %>
|
7
|
+
* IP address: <%= @request.env["HTTP_X_FORWARDED_FOR"] || @request.env["REMOTE_ADDR"] %>
|
8
|
+
* Parameters: <%= @request.parameters.inspect %>
|
9
|
+
* Rails root: <%= RAILS_ROOT %>
|
10
|
+
|
11
|
+
<%= @extra_options.collect { |k,v| "#{k.to_s.capitalize}: #{v}" }.join("\n") %>
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module Lipsiadmin
|
2
|
+
module Mailer
|
3
|
+
# This class send notification through mail if an exception
|
4
|
+
# occour in a controller.
|
5
|
+
class ExceptionNotifier < ActionMailer::Base
|
6
|
+
|
7
|
+
@@sender_address = %("Exception Notifier" <exception.notifier@default.com>)
|
8
|
+
cattr_accessor :sender_address
|
9
|
+
|
10
|
+
@@recipients_addresses = []
|
11
|
+
cattr_accessor :recipients_addresses
|
12
|
+
|
13
|
+
@@extra_options = {}
|
14
|
+
cattr_accessor :extra_options
|
15
|
+
|
16
|
+
@@send_mail = true
|
17
|
+
cattr_accessor :send_mail
|
18
|
+
|
19
|
+
@@email_prefix = "[ERROR] "
|
20
|
+
cattr_accessor :email_prefix
|
21
|
+
|
22
|
+
self.mailer_name = "exception"
|
23
|
+
self.template_root = "#{File.dirname(__FILE__)}"
|
24
|
+
|
25
|
+
def self.reloadable?#:nodoc:
|
26
|
+
false
|
27
|
+
end
|
28
|
+
|
29
|
+
# This method deliver the exception for the given controller and request
|
30
|
+
def exception(exception, controller, request)
|
31
|
+
content_type "text/plain"
|
32
|
+
|
33
|
+
subject "#{email_prefix} A #{exception.class} occurred in #{controller.controller_name}##{controller.action_name}"
|
34
|
+
|
35
|
+
recipients recipients_addresses
|
36
|
+
from sender_address
|
37
|
+
|
38
|
+
body :controller => controller, :request => request,
|
39
|
+
:exception => exception, :host => (request.env["HTTP_X_FORWARDED_HOST"] || request.env["HTTP_HOST"]),
|
40
|
+
:backtrace => exception.backtrace, :extra_options => extra_options
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
module Lipsiadmin
|
2
|
+
module Mailer
|
3
|
+
# This module convert a string/controller to a pdf through Pd4ml java library (included in this plugin)
|
4
|
+
#
|
5
|
+
# For generate a pdf you can simply do
|
6
|
+
#
|
7
|
+
# script/generate pdf invoice
|
8
|
+
#
|
9
|
+
# then edit your template /app/views/pdf/invoice.html.haml
|
10
|
+
#
|
11
|
+
# Then in any of your mailers add some like this:
|
12
|
+
#
|
13
|
+
# def order_invoiced(order)
|
14
|
+
# recipients my@mail.com
|
15
|
+
# from my@server.com
|
16
|
+
# subject Your Invoice
|
17
|
+
#
|
18
|
+
# attachment "application/pdf" do |a|
|
19
|
+
# a.body = render_pdf(:invoice, :invoice => order.invoice, :other => order.invoice.other)
|
20
|
+
# end
|
21
|
+
#
|
22
|
+
# part "text/plain" do |a|
|
23
|
+
# a.body = render_message("order_invoiced", :order => order, :body_template => @body_template)
|
24
|
+
# end
|
25
|
+
# end
|
26
|
+
#
|
27
|
+
module PdfBuilder
|
28
|
+
include Lipsiadmin::Utils::HtmlEntities
|
29
|
+
|
30
|
+
# Path to the pd4ml jarfile
|
31
|
+
JARPATH = "../../resources"
|
32
|
+
|
33
|
+
# Convert a stream to pdf, the template must be located in app/view/pdf/yourtemplate.pdf.erb
|
34
|
+
def render_pdf(template, body)
|
35
|
+
# set the landescape
|
36
|
+
landescape = (body[:landescape].delete || false)
|
37
|
+
|
38
|
+
# encode the template
|
39
|
+
input = encode_entities(render_message("/pdf/#{template}.html.haml", body))
|
40
|
+
|
41
|
+
# search for stylesheet links and make their paths absolute.
|
42
|
+
input.gsub!('<link href="/javascripts', '<link href="' + RAILS_ROOT + '/public/javascripts')
|
43
|
+
input.gsub!('<link href="/stylesheets', '<link href="' + RAILS_ROOT + '/public/stylesheets')
|
44
|
+
|
45
|
+
# search for images src, append full-path.
|
46
|
+
input.gsub!('src="/', 'src="' + RAILS_ROOT + '/public/')
|
47
|
+
input.gsub!('url(','url('+RAILS_ROOT+'/public')
|
48
|
+
#RAILS_DEFAULT_LOGGER.debug ('input: ' + input)
|
49
|
+
|
50
|
+
cmd = "java -Xmx512m -Djava.awt.headless=true -cp pd4ml.jar:.:#{File.dirname(__FILE__)}/#{JARPATH} Pd4Ruby '#{input}' 950 A4 #{landescape}"
|
51
|
+
|
52
|
+
output = %x[cd #{File.dirname(__FILE__)}/#{JARPATH} \n #{cmd}]
|
53
|
+
|
54
|
+
# raise error if process returned false (ie: a java error)
|
55
|
+
raise PdfError, "An unknonwn error occurred while generating pdf: #{cmd}" if $?.success? === false
|
56
|
+
|
57
|
+
#return raw pdf binary-stream
|
58
|
+
output
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
# Errors For PDF
|
63
|
+
class PdfError < StandardError#:nodoc:
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
module Lipsiadmin
|
2
|
+
module Utils
|
3
|
+
# Convert common utf-8 chars to html entities, this is beautifull (but the code not)
|
4
|
+
# for servers that don't have utf-8 fonts for java. Is a dead simple workaround for
|
5
|
+
# avoid losing time.
|
6
|
+
module HtmlEntities
|
7
|
+
# Convert common utf-8 chars to html entities
|
8
|
+
def encode_entities(text)
|
9
|
+
map = {
|
10
|
+
"'" => "#145", # ' This is converted for java
|
11
|
+
"’" => "rsquo", # ’
|
12
|
+
"°" => "deg", # °
|
13
|
+
"€" => "euro", # €
|
14
|
+
"–" => "ndash", # –
|
15
|
+
"©" => "copy", # ©
|
16
|
+
"«" => "laquo", # «
|
17
|
+
"®" => "reg", # ®
|
18
|
+
"»" => "raquo", # »
|
19
|
+
"à" => "agrave", # à
|
20
|
+
"À" => "Agrave", # À
|
21
|
+
"á" => "aacute", # á
|
22
|
+
"Á" => "Aacute", # á
|
23
|
+
"â" => "acirc", # â
|
24
|
+
"Â" => "Acirc", # Â
|
25
|
+
"ä" => "auml", # ä
|
26
|
+
"Ä" => "Auml", # ä
|
27
|
+
"Æ" => "AElig", # Æ
|
28
|
+
"æ" => "aelig", # æ
|
29
|
+
"ç" => "ccedil", # ç
|
30
|
+
"Ç" => "Ccedil", # Ç
|
31
|
+
"è" => "egrave", # è
|
32
|
+
"È" => "Egrave", # È
|
33
|
+
"é" => "eacute", # é
|
34
|
+
"É" => "Eacute", # É
|
35
|
+
"ê" => "ecirc", # ê
|
36
|
+
"Ê" => "Ecirc", # Ê
|
37
|
+
"ë" => "euml", # ë
|
38
|
+
"Ë" => "Euml", # Ë
|
39
|
+
"ì" => "igrave", # ì
|
40
|
+
"Ì" => "Igrave", # Ì
|
41
|
+
"î" => "icirc", # î
|
42
|
+
"Î" => "Icirc", # Î
|
43
|
+
"ï" => "iuml", # ï
|
44
|
+
"Ï" => "Iuml", # Ï
|
45
|
+
"ô" => "ocirc", # ô
|
46
|
+
"Ô" => "Ocirc", # Ô
|
47
|
+
"ö" => "ouml", # ö
|
48
|
+
"Ö" => "Ouml", # Ö
|
49
|
+
"ò" => "ograve", # ò
|
50
|
+
"Ò" => "Ograve", # ò
|
51
|
+
"ù" => "ugrave", # ù
|
52
|
+
"Ù" => "Ugrave", # Ù
|
53
|
+
"û" => "ucirc", # û
|
54
|
+
"Û" => "Ucirc", # Û
|
55
|
+
"ü" => "uuml", # ü
|
56
|
+
"Ü" => "Uuml" # Ü
|
57
|
+
}
|
58
|
+
map.each { |k,v| text.gsub!("#{k}", "&#{v};") }
|
59
|
+
return text
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Lipsiadmin
|
2
|
+
module Utils
|
3
|
+
# Returns an object whose to_json evaluates to code.
|
4
|
+
# Use this to pass a literal JavaScript expression as an argument to another JavaScriptGenerator method.
|
5
|
+
#
|
6
|
+
# Examples:
|
7
|
+
#
|
8
|
+
# "function() { alert('test') }".to_l
|
9
|
+
#
|
10
|
+
module Literal
|
11
|
+
# Returns an object whose <tt>to_json</tt> evaluates to +code+. Use this to pass a literal JavaScript
|
12
|
+
# expression as an argument to another JavaScriptGenerator method.
|
13
|
+
#
|
14
|
+
def to_literal
|
15
|
+
ActiveSupport::JSON::Variable.new(self.to_s)
|
16
|
+
end
|
17
|
+
alias_method :to_l, :to_literal
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/version.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|
|
2
|
+
error_class = "x-form-text x-form-invalid"
|
3
|
+
if html_tag =~ /<(input|textarea|select)[^>]+class=/
|
4
|
+
class_attribute = html_tag =~ /class=['"]/
|
5
|
+
html_tag.insert(class_attribute + 7, "#{error_class} ")
|
6
|
+
elsif html_tag =~ /<(input|textarea|select)/
|
7
|
+
first_whitespace = html_tag =~ /\s/
|
8
|
+
html_tag[first_whitespace] = " class='#{error_class}' "
|
9
|
+
end
|
10
|
+
html_tag
|
11
|
+
end
|
@@ -0,0 +1,132 @@
|
|
1
|
+
module Lipsiadmin
|
2
|
+
module View
|
3
|
+
module Helpers
|
4
|
+
module BackendHelper
|
5
|
+
# This method work like builtin Rails error_message_for but use an Ext.Message.
|
6
|
+
def simple_error_messages_for(*params)
|
7
|
+
options = params.last.is_a?(Hash) ? params.pop.symbolize_keys : {}
|
8
|
+
objects = params.collect {|object_name| instance_variable_get("@#{object_name}") }.compact
|
9
|
+
count = objects.inject(0) {|sum, object| sum + object.errors.count }
|
10
|
+
unless count.zero?
|
11
|
+
error_messages = objects.map {|object| object.errors.full_messages.map {|msg| "<li>#{msg}</li>" } }
|
12
|
+
return content_tag(:script, "Ext.Msg.show({
|
13
|
+
title:Backend.locale.messages.alert.title,
|
14
|
+
msg: '<ul>#{escape_javascript(error_messages.join)}</ul>',
|
15
|
+
buttons: Ext.Msg.OK,
|
16
|
+
minWidth: 400
|
17
|
+
});", :type => Mime::JS)
|
18
|
+
else
|
19
|
+
''
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
# This method add tab for in your view
|
24
|
+
def tab(name, padding=true, options={}, &block)
|
25
|
+
options[:style] = "padding:10px;#{options[:style]}" if padding
|
26
|
+
options[:id] ||= name.to_s.downcase.gsub(/[^a-z0-9]+/, '_').gsub(/-+$/, '').gsub(/^-+$/, '')
|
27
|
+
concat content_tag(:div, capture(&block), { :id => options[:id], :class => "x-hide-display", :style => options[:style], :tabbed => true, :title => name })
|
28
|
+
end
|
29
|
+
|
30
|
+
# Set the title of the page
|
31
|
+
def title(title)
|
32
|
+
content_tag(:script, "Backend.app.setTitle(#{title.to_json})", :type => Mime::JS)
|
33
|
+
end
|
34
|
+
|
35
|
+
# Store the location to come back from for example an extjs grid
|
36
|
+
def back_to(location)
|
37
|
+
content_tag(:script, "Backend.app.backTo(#{url_for(location)})", :type => Mime::JS)
|
38
|
+
end
|
39
|
+
|
40
|
+
# Generate the menu from the Lispiadmin::AccessControl
|
41
|
+
def backend_menu
|
42
|
+
config = current_account.maps.collect(&:project_modules)[0].collect(&:config)
|
43
|
+
config << { :text => "Backend.locale.buttons.help".to_l, :handler => "function() { Backend.app.openHelp() }".to_l }
|
44
|
+
return config.to_json
|
45
|
+
end
|
46
|
+
|
47
|
+
# Open a new windows that can contain a form that you can reuse
|
48
|
+
#
|
49
|
+
# Example:
|
50
|
+
#
|
51
|
+
# # in app/views/dossiers/_form.html.haml
|
52
|
+
|
53
|
+
# %tr
|
54
|
+
# %td{:style=>"width:100px"}
|
55
|
+
# %b Customer:
|
56
|
+
# %td
|
57
|
+
# %span{:id => :account_name}=@dossier.account ? @dossier.account.full_name : "None"
|
58
|
+
# =hidden_field :dossier, :account_id
|
59
|
+
# =open_window "/backend/accounts.js", :id, :name, :dossier_account_id, :account_name
|
60
|
+
#
|
61
|
+
def open_window(url, value, display, render_value_to, render_display_to)
|
62
|
+
link_to_function(image_tag("backend/new.gif", :style=>"vertical-align:bottom"),
|
63
|
+
"Backend.window.open({url:'#{url}', display:'#{display}', value:'#{value}', displayField:'#{render_display_to}', valueField:'#{render_value_to}'})")
|
64
|
+
end
|
65
|
+
|
66
|
+
# This method call a remote_function and in the same time do a
|
67
|
+
#
|
68
|
+
# Backend.app.mask()
|
69
|
+
#
|
70
|
+
# and when the function is complete
|
71
|
+
#
|
72
|
+
# Backend.app.unmask()
|
73
|
+
#
|
74
|
+
def link_to_remote_with_wait(name, options={}, html_options={})
|
75
|
+
options[:complete] = "Backend.app.unmask();"
|
76
|
+
options[:before] = "Backend.app.mask('#{I18n.t('backend.javascripts.messages.wait.message')}')";
|
77
|
+
link_to_function(name, remote_function(options), html_options || options.delete(:html))
|
78
|
+
end
|
79
|
+
|
80
|
+
# This method generates a new ExtJs BoxComponent.
|
81
|
+
#
|
82
|
+
# Examples:
|
83
|
+
#
|
84
|
+
# =box "My Title", "My Subtitle", :submit => true, :collapsible => true, :style => "padding:none", :start => :close do
|
85
|
+
# my content
|
86
|
+
#
|
87
|
+
# Defaults:
|
88
|
+
#
|
89
|
+
# * :submit => false
|
90
|
+
# * :collapsible => false
|
91
|
+
# * :start => :close
|
92
|
+
#
|
93
|
+
def box(title=nil, subtitle=nil, options={}, &block)
|
94
|
+
options[:style] ||= "width:99%;"
|
95
|
+
options[:start] ||= :open
|
96
|
+
return <<-HTML
|
97
|
+
<div class="x-box" style="#{options[:style]}">
|
98
|
+
<div class="x-box-tl">
|
99
|
+
<div class="x-box-tr">
|
100
|
+
<div class="x-box-tc"> </div>
|
101
|
+
</div>
|
102
|
+
</div>
|
103
|
+
<div class="x-box-ml">
|
104
|
+
<div class="x-box-mr">
|
105
|
+
<div class="x-box-mc">
|
106
|
+
<div id="x-body-title" style="#{"cursor:pointer" if options[:collapsible]}" onclick="#{"Backend.app.collapseBoxes(this);" if options[:collapsible]}">
|
107
|
+
#{"<h3 style=\"margin-bottom:0px;padding-bottom:0px;float:left;\">"+title+"</h3>" unless title.blank?}
|
108
|
+
#{"<div style=\"float:right\"><em>"+subtitle+"</em></div>" unless subtitle.blank?}
|
109
|
+
#{"<br class=\"clear\" />" if !title.blank? || !subtitle.blank?}
|
110
|
+
#{"<div style=\"font-size:0px\"> </div>" if !title.blank? || !subtitle.blank?}
|
111
|
+
</div>
|
112
|
+
<div class="#{"x-box-collapsible" if options[:collapsible]}" style="width:99%;#{"display:none" if options[:collapsible] && options[:start] == :close}">
|
113
|
+
#{"<div style=\"font-size:10px\"> </div>" if !title.blank? || !subtitle.blank?}
|
114
|
+
#{capture(&block)}
|
115
|
+
#{"<div style=\"text-align:right;margin-top:10px\">#{submit_tag(I18n.t("lipsiadmin.buttons.save"), :onclick=>"Backend.app.submitForm()")}</div>" if options[:submit]}
|
116
|
+
</div>
|
117
|
+
</div>
|
118
|
+
</div>
|
119
|
+
</div>
|
120
|
+
<div class="x-box-bl">
|
121
|
+
<div class="x-box-br">
|
122
|
+
<div class="x-box-bc"> </div>
|
123
|
+
</div>
|
124
|
+
</div>
|
125
|
+
</div>
|
126
|
+
HTML
|
127
|
+
end
|
128
|
+
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
132
|
+
end
|