jinda_mind 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE.txt +21 -0
- data/README.md +4 -0
- data/Rakefile +3 -0
- data/app/assets/config/manifest.js +4 -0
- data/app/assets/images/4dcity-old.ico +0 -0
- data/app/assets/images/4dcity.ico +0 -0
- data/app/assets/images/account.png +0 -0
- data/app/assets/images/add.png +0 -0
- data/app/assets/images/ajax-loader-circle.gif +0 -0
- data/app/assets/images/ajax-loader.gif +0 -0
- data/app/assets/images/anchor.png +0 -0
- data/app/assets/images/application_double.png +0 -0
- data/app/assets/images/application_form_edit.png +0 -0
- data/app/assets/images/arrow_left.png +0 -0
- data/app/assets/images/arrow_right.png +0 -0
- data/app/assets/images/arrow_turn_left.png +0 -0
- data/app/assets/images/arrow_turn_right.png +0 -0
- data/app/assets/images/calendar.png +0 -0
- data/app/assets/images/cancel.png +0 -0
- data/app/assets/images/chart_bar.png +0 -0
- data/app/assets/images/clock.png +0 -0
- data/app/assets/images/cog.png +0 -0
- data/app/assets/images/control_fastforward.png +0 -0
- data/app/assets/images/control_play.png +0 -0
- data/app/assets/images/cross.png +0 -0
- data/app/assets/images/delete.png +0 -0
- data/app/assets/images/external-link.png +0 -0
- data/app/assets/images/facebook-continue-button.png +0 -0
- data/app/assets/images/facebooksmall.png +0 -0
- data/app/assets/images/favicon.ico +0 -0
- data/app/assets/images/freemind(mm).png +0 -0
- data/app/assets/images/google-continue-button.png +0 -0
- data/app/assets/images/help.png +0 -0
- data/app/assets/images/highway-menu.png +0 -0
- data/app/assets/images/highway.png +0 -0
- data/app/assets/images/house.png +0 -0
- data/app/assets/images/icons-18-black.png +0 -0
- data/app/assets/images/icons-18-white.png +0 -0
- data/app/assets/images/icons-36-black.png +0 -0
- data/app/assets/images/icons-36-white.png +0 -0
- data/app/assets/images/logo.png +0 -0
- data/app/assets/images/logo_jinda.png +0 -0
- data/app/assets/images/logout.png +0 -0
- data/app/assets/images/new.gif +0 -0
- data/app/assets/images/new.png +0 -0
- data/app/assets/images/page.png +0 -0
- data/app/assets/images/page_attach.png +0 -0
- data/app/assets/images/page_green.png +0 -0
- data/app/assets/images/page_output.png +0 -0
- data/app/assets/images/page_pdf.png +0 -0
- data/app/assets/images/pencil.png +0 -0
- data/app/assets/images/printer.png +0 -0
- data/app/assets/images/refresh.png +0 -0
- data/app/assets/images/report.png +0 -0
- data/app/assets/images/rssmall.png +0 -0
- data/app/assets/images/tick.png +0 -0
- data/app/assets/images/twittersmall.png +0 -0
- data/app/assets/images/user.png +0 -0
- data/app/assets/images/user_admin_gear.png +0 -0
- data/app/assets/images/view_code.png +0 -0
- data/app/assets/javascripts/application.js-org +24 -0
- data/app/assets/javascripts/cable.js +13 -0
- data/app/assets/javascripts/disable_enter_key.js +10 -0
- data/app/assets/javascripts/iscroll-wrapper.js +32 -0
- data/app/assets/javascripts/iscroll.js +1084 -0
- data/app/assets/javascripts/jinda.js +14 -0
- data/app/assets/javascripts/jinda_jqm.js +24 -0
- data/app/assets/javascripts/jquery.mobile-1.2.1.js +9272 -0
- data/app/assets/javascripts/jquery.mobile.datebox.js +1778 -0
- data/app/assets/javascripts/jquery.mobile.splitview.js +695 -0
- data/app/assets/stylesheets/app.scss +90 -0
- data/app/assets/stylesheets/articles.scss +94 -0
- data/app/assets/stylesheets/fonts/sarabun.eot +0 -0
- data/app/assets/stylesheets/fonts/sarabun.ttf +0 -0
- data/app/assets/stylesheets/fonts/sarabun.woff +0 -0
- data/app/assets/stylesheets/fonts/sarabun_bold.ttf +0 -0
- data/app/assets/stylesheets/fonts/sarabun_bolditalic.ttf +0 -0
- data/app/assets/stylesheets/fonts/sarabun_italic.ttf +0 -0
- data/app/assets/stylesheets/fonts/thsarabunnew-webfont.eot +0 -0
- data/app/assets/stylesheets/fonts/thsarabunnew-webfont.ttf +0 -0
- data/app/assets/stylesheets/fonts/thsarabunnew-webfont.woff +0 -0
- data/app/assets/stylesheets/fonts/thsarabunnew.css +47 -0
- data/app/assets/stylesheets/fonts/thsarabunnew_bold-webfont.eot +0 -0
- data/app/assets/stylesheets/fonts/thsarabunnew_bold-webfont.ttf +0 -0
- data/app/assets/stylesheets/fonts/thsarabunnew_bold-webfont.woff +0 -0
- data/app/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.eot +0 -0
- data/app/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.ttf +0 -0
- data/app/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.woff +0 -0
- data/app/assets/stylesheets/fonts/thsarabunnew_italic-webfont.eot +0 -0
- data/app/assets/stylesheets/fonts/thsarabunnew_italic-webfont.ttf +0 -0
- data/app/assets/stylesheets/fonts/thsarabunnew_italic-webfont.woff +0 -0
- data/app/assets/stylesheets/images/ajax-loader.gif +0 -0
- data/app/assets/stylesheets/images/button_black.png +0 -0
- data/app/assets/stylesheets/images/button_blue.png +0 -0
- data/app/assets/stylesheets/images/button_red.png +0 -0
- data/app/assets/stylesheets/images/gears.png +0 -0
- data/app/assets/stylesheets/images/icons-18-black.png +0 -0
- data/app/assets/stylesheets/images/icons-18-white.png +0 -0
- data/app/assets/stylesheets/images/icons-36-black.png +0 -0
- data/app/assets/stylesheets/images/icons-36-white.png +0 -0
- data/app/assets/stylesheets/images/indicator.gif +0 -0
- data/app/assets/stylesheets/jinda.scss +185 -0
- data/app/assets/stylesheets/jinda_jqm.css.scss +32 -0
- data/app/assets/stylesheets/jquery.mobile-1.2.1.css +2339 -0
- data/app/assets/stylesheets/jquery.mobile.datebox.css +65 -0
- data/app/assets/stylesheets/jquery.mobile.grids.collapsible.css +122 -0
- data/app/assets/stylesheets/jquery.mobile.splitview.css +128 -0
- data/app/assets/stylesheets/kul-4.2.css +1516 -0
- data/app/assets/stylesheets/kul-4.2.min.css +11 -0
- data/app/assets/stylesheets/modules.scss +84 -0
- data/app/assets/stylesheets/sarabun.css +37 -0
- data/app/assets/stylesheets/social.scss +133 -0
- data/app/controllers/concerns/jinda_general_concern.rb +179 -0
- data/app/controllers/concerns/jinda_run_concern.rb +368 -0
- data/app/controllers/jinda_controller.rb +66 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/config/mongoid.yml +19 -0
- data/config/routes.rb +44 -0
- data/lib/generators/jinda/USAGE +2 -0
- data/lib/generators/jinda/config_generator.rb +102 -0
- data/lib/generators/jinda/install_generator.rb +269 -0
- data/lib/generators/jinda/installer/gems_install.rb +132 -0
- data/lib/generators/jinda/installer/test.rb +6 -0
- data/lib/generators/jinda/minitest_generator.rb +30 -0
- data/lib/generators/jinda/rspec_generator.rb +30 -0
- data/lib/generators/jinda/templates/Dockerfile +26 -0
- data/lib/generators/jinda/templates/README.md +173 -0
- data/lib/generators/jinda/templates/app/assets/config/manifest.js +4 -0
- data/lib/generators/jinda/templates/app/assets/javascripts/application.js +15 -0
- data/lib/generators/jinda/templates/app/assets/stylesheets/application.css.scss +15 -0
- data/lib/generators/jinda/templates/app/channels/application_cable/channel.rb +4 -0
- data/lib/generators/jinda/templates/app/channels/application_cable/connection.rb +4 -0
- data/lib/generators/jinda/templates/app/controllers/api/v1/notes_controller.rb +81 -0
- data/lib/generators/jinda/templates/app/controllers/jinda_org/admins_controller.rb +6 -0
- data/lib/generators/jinda/templates/app/controllers/jinda_org/application_controller.rb +41 -0
- data/lib/generators/jinda/templates/app/controllers/jinda_org/articles_controller.rb +110 -0
- data/lib/generators/jinda/templates/app/controllers/jinda_org/comments_controller.rb +31 -0
- data/lib/generators/jinda/templates/app/controllers/jinda_org/docs_controller.rb +56 -0
- data/lib/generators/jinda/templates/app/controllers/jinda_org/identities_controller.rb +5 -0
- data/lib/generators/jinda/templates/app/controllers/jinda_org/notes_controller.rb +84 -0
- data/lib/generators/jinda/templates/app/controllers/jinda_org/password_resets.rb +28 -0
- data/lib/generators/jinda/templates/app/controllers/jinda_org/password_resets_controller.rb +34 -0
- data/lib/generators/jinda/templates/app/controllers/jinda_org/sessions_controller.rb +44 -0
- data/lib/generators/jinda/templates/app/controllers/jinda_org/sitemap_controller.rb +12 -0
- data/lib/generators/jinda/templates/app/controllers/jinda_org/users_controller.rb +35 -0
- data/lib/generators/jinda/templates/app/helpers/admins_helper.rb +2 -0
- data/lib/generators/jinda/templates/app/helpers/application_helper.rb +33 -0
- data/lib/generators/jinda/templates/app/helpers/articles_helper.rb +2 -0
- data/lib/generators/jinda/templates/app/helpers/basic_helper.rb +2 -0
- data/lib/generators/jinda/templates/app/helpers/comments_helper.rb +2 -0
- data/lib/generators/jinda/templates/app/helpers/ctrs_helper.rb +2 -0
- data/lib/generators/jinda/templates/app/helpers/devs_helper.rb +2 -0
- data/lib/generators/jinda/templates/app/helpers/pictures_helper.rb +2 -0
- data/lib/generators/jinda/templates/app/helpers/sitemap_helper.rb +2 -0
- data/lib/generators/jinda/templates/app/helpers/users_helper.rb +2 -0
- data/lib/generators/jinda/templates/app/jinda/index.mm +486 -0
- data/lib/generators/jinda/templates/app/jinda/template/index.mm +366 -0
- data/lib/generators/jinda/templates/app/jinda/template/linkview.haml +21 -0
- data/lib/generators/jinda/templates/app/jinda/template/view.html.erb +34 -0
- data/lib/generators/jinda/templates/app/mailers/application_mailer.rb +4 -0
- data/lib/generators/jinda/templates/app/mailers/jinda_mailer.rb +7 -0
- data/lib/generators/jinda/templates/app/mailers/note_mailer.rb +10 -0
- data/lib/generators/jinda/templates/app/mailers/user_mailer.rb +15 -0
- data/lib/generators/jinda/templates/app/models/address.rb +14 -0
- data/lib/generators/jinda/templates/app/models/article.rb +14 -0
- data/lib/generators/jinda/templates/app/models/comment.rb +14 -0
- data/lib/generators/jinda/templates/app/models/identity.rb +18 -0
- data/lib/generators/jinda/templates/app/models/jinda/doc.rb +36 -0
- data/lib/generators/jinda/templates/app/models/jinda/module.rb +11 -0
- data/lib/generators/jinda/templates/app/models/jinda/notice.rb +14 -0
- data/lib/generators/jinda/templates/app/models/jinda/role.rb +8 -0
- data/lib/generators/jinda/templates/app/models/jinda/runseq.rb +24 -0
- data/lib/generators/jinda/templates/app/models/jinda/service.rb +17 -0
- data/lib/generators/jinda/templates/app/models/jinda/xmain.rb +38 -0
- data/lib/generators/jinda/templates/app/models/note.rb +22 -0
- data/lib/generators/jinda/templates/app/models/param.rb +41 -0
- data/lib/generators/jinda/templates/app/models/person.rb +14 -0
- data/lib/generators/jinda/templates/app/models/user.rb +66 -0
- data/lib/generators/jinda/templates/app/views/adminbsbs/content.haml +241 -0
- data/lib/generators/jinda/templates/app/views/admins/edit_role/edit_role.html.erb +7 -0
- data/lib/generators/jinda/templates/app/views/admins/edit_role/select_user.html.erb +4 -0
- data/lib/generators/jinda/templates/app/views/api/v1/note.haml +0 -0
- data/lib/generators/jinda/templates/app/views/articles/_report.haml +35 -0
- data/lib/generators/jinda/templates/app/views/articles/edit.haml +23 -0
- data/lib/generators/jinda/templates/app/views/articles/edit_article/edit_article.html.erb +15 -0
- data/lib/generators/jinda/templates/app/views/articles/edit_article/select_article.html.erb +12 -0
- data/lib/generators/jinda/templates/app/views/articles/index.haml +5 -0
- data/lib/generators/jinda/templates/app/views/articles/my.haml +5 -0
- data/lib/generators/jinda/templates/app/views/articles/new_article/form_article.html.erb +16 -0
- data/lib/generators/jinda/templates/app/views/articles/show.html.haml +58 -0
- data/lib/generators/jinda/templates/app/views/articles/xedit_article/edit_article.html.erb +13 -0
- data/lib/generators/jinda/templates/app/views/ctrs/vfolder1/viewfile1.html.erb +23 -0
- data/lib/generators/jinda/templates/app/views/ctrs/vfolder1/viewfile2.html.erb +23 -0
- data/lib/generators/jinda/templates/app/views/ctrs/vfolder2/viewfile2.html.erb +23 -0
- data/lib/generators/jinda/templates/app/views/custom/_adsense.haml +6 -0
- data/lib/generators/jinda/templates/app/views/docs/doc_edit/doc_edit.html.erb +21 -0
- data/lib/generators/jinda/templates/app/views/docs/doc_edit/doc_select.html.erb +14 -0
- data/lib/generators/jinda/templates/app/views/docs/doc_new/doc_form.html.erb +32 -0
- data/lib/generators/jinda/templates/app/views/docs/doc_new/doc_form.md +36 -0
- data/lib/generators/jinda/templates/app/views/docs/doc_xedit/doc_edit.html.erb +21 -0
- data/lib/generators/jinda/templates/app/views/docs/edit/select_note.html.erb +14 -0
- data/lib/generators/jinda/templates/app/views/docs/index.haml +21 -0
- data/lib/generators/jinda/templates/app/views/docs/my.haml +27 -0
- data/lib/generators/jinda/templates/app/views/identities/new.html.haml +32 -0
- data/lib/generators/jinda/templates/app/views/jinda/_activity.md +10 -0
- data/lib/generators/jinda/templates/app/views/jinda/_menu.haml +27 -0
- data/lib/generators/jinda/templates/app/views/jinda/_menu_mm.haml +44 -0
- data/lib/generators/jinda/templates/app/views/jinda/_model.md +5 -0
- data/lib/generators/jinda/templates/app/views/jinda/_modul.md +9 -0
- data/lib/generators/jinda/templates/app/views/jinda/_pending_home.haml +5 -0
- data/lib/generators/jinda/templates/app/views/jinda/_pending_page.haml +24 -0
- data/lib/generators/jinda/templates/app/views/jinda/_service.md +24 -0
- data/lib/generators/jinda/templates/app/views/jinda/_static.haml +13 -0
- data/lib/generators/jinda/templates/app/views/jinda/doc-thai.md +37 -0
- data/lib/generators/jinda/templates/app/views/jinda/doc.md +36 -0
- data/lib/generators/jinda/templates/app/views/jinda/error_logs.haml +22 -0
- data/lib/generators/jinda/templates/app/views/jinda/feed.rss.builder +27 -0
- data/lib/generators/jinda/templates/app/views/jinda/help.haml +20 -0
- data/lib/generators/jinda/templates/app/views/jinda/index.html.haml +53 -0
- data/lib/generators/jinda/templates/app/views/jinda/logs.haml +22 -0
- data/lib/generators/jinda/templates/app/views/jinda/notice_logs.haml +18 -0
- data/lib/generators/jinda/templates/app/views/jinda/pending.haml +1 -0
- data/lib/generators/jinda/templates/app/views/jinda/run_form.haml +42 -0
- data/lib/generators/jinda/templates/app/views/jinda/run_output.haml +38 -0
- data/lib/generators/jinda/templates/app/views/jinda/search.haml +20 -0
- data/lib/generators/jinda/templates/app/views/jinda/status.haml +61 -0
- data/lib/generators/jinda/templates/app/views/jinda_mailer/gmail.html.erb +9 -0
- data/lib/generators/jinda/templates/app/views/layouts/_head.html.erb +10 -0
- data/lib/generators/jinda/templates/app/views/layouts/_meta_tag.html.erb +19 -0
- data/lib/generators/jinda/templates/app/views/layouts/application.haml +4 -0
- data/lib/generators/jinda/templates/app/views/layouts/bsb/_footer.haml +7 -0
- data/lib/generators/jinda/templates/app/views/layouts/bsb/_header.haml +147 -0
- data/lib/generators/jinda/templates/app/views/layouts/bsb/_menu.haml +47 -0
- data/lib/generators/jinda/templates/app/views/layouts/bsb/_menu_mm.haml +34 -0
- data/lib/generators/jinda/templates/app/views/layouts/bsb/_rightbar.haml +123 -0
- data/lib/generators/jinda/templates/app/views/layouts/bsb/_sidebar.haml +155 -0
- data/lib/generators/jinda/templates/app/views/layouts/bsb/application.haml-bsb +47 -0
- data/lib/generators/jinda/templates/app/views/layouts/gmail.html.erb +9 -0
- data/lib/generators/jinda/templates/app/views/layouts/jqm/_full.haml +33 -0
- data/lib/generators/jinda/templates/app/views/layouts/jqm/_page.haml +16 -0
- data/lib/generators/jinda/templates/app/views/layouts/jqm/application.haml-jqm +4 -0
- data/lib/generators/jinda/templates/app/views/layouts/mailer.html.erb +13 -0
- data/lib/generators/jinda/templates/app/views/layouts/mailer.html.haml +3 -0
- data/lib/generators/jinda/templates/app/views/layouts/mailer.text.erb +1 -0
- data/lib/generators/jinda/templates/app/views/layouts/mailer.text.haml +1 -0
- data/lib/generators/jinda/templates/app/views/layouts/mobile.html.erb +13 -0
- data/lib/generators/jinda/templates/app/views/layouts/mobilejq.html.erb +31 -0
- data/lib/generators/jinda/templates/app/views/layouts/print.html.erb +22 -0
- data/lib/generators/jinda/templates/app/views/layouts/utf8.html.erb +22 -0
- data/lib/generators/jinda/templates/app/views/note_mailer/gmail.html.haml +7 -0
- data/lib/generators/jinda/templates/app/views/note_mailer/gmail.text.haml +8 -0
- data/lib/generators/jinda/templates/app/views/notes/delete/select_note.html.erb +14 -0
- data/lib/generators/jinda/templates/app/views/notes/edit/edit_note.html.erb +10 -0
- data/lib/generators/jinda/templates/app/views/notes/edit/select_note.html.erb +14 -0
- data/lib/generators/jinda/templates/app/views/notes/index.haml +71 -0
- data/lib/generators/jinda/templates/app/views/notes/mail/display_mail.html.erb +20 -0
- data/lib/generators/jinda/templates/app/views/notes/mail/select_note.html.erb +19 -0
- data/lib/generators/jinda/templates/app/views/notes/mail/show.html.haml +13 -0
- data/lib/generators/jinda/templates/app/views/notes/my.haml +21 -0
- data/lib/generators/jinda/templates/app/views/notes/new/new_note.html.erb +13 -0
- data/lib/generators/jinda/templates/app/views/notes/show.haml +10 -0
- data/lib/generators/jinda/templates/app/views/notes/xedit/edit_note.html.erb +10 -0
- data/lib/generators/jinda/templates/app/views/password_resets/edit.html.erb +21 -0
- data/lib/generators/jinda/templates/app/views/password_resets/new.html.haml +11 -0
- data/lib/generators/jinda/templates/app/views/sessions/new.html.haml +22 -0
- data/lib/generators/jinda/templates/app/views/sitemap/index.xml.haml +10 -0
- data/lib/generators/jinda/templates/app/views/user_mailer/password_reset.html.haml +3 -0
- data/lib/generators/jinda/templates/app/views/user_mailer/password_reset.text.erb +3 -0
- data/lib/generators/jinda/templates/app/views/user_mailer/password_reset.text.haml +3 -0
- data/lib/generators/jinda/templates/app/views/users/index.haml +13 -0
- data/lib/generators/jinda/templates/app/views/users/pwd/enter.html.erb +6 -0
- data/lib/generators/jinda/templates/app/views/users/user/enter_user.html.erb +10 -0
- data/lib/generators/jinda/templates/config/cloudinary.yml +9 -0
- data/lib/generators/jinda/templates/config/initializers/fix_mongoid_generator.rb-org +14 -0
- data/lib/generators/jinda/templates/config/mongoid.yml-docker +182 -0
- data/lib/generators/jinda/templates/config/mongoid.yml-localhost +182 -0
- data/lib/generators/jinda/templates/db/seeds.rb +6 -0
- data/lib/generators/jinda/templates/docker-compose.yml +17 -0
- data/lib/generators/jinda/templates/dot/dot.env +2 -0
- data/lib/generators/jinda/templates/dotrspec +3 -0
- data/lib/generators/jinda/templates/entrypoint.sh +13 -0
- data/lib/generators/jinda/templates/jinda.yml +10 -0
- data/lib/generators/jinda/templates/public/404.html +67 -0
- data/lib/generators/jinda/templates/public/422.html +67 -0
- data/lib/generators/jinda/templates/public/500.html +66 -0
- data/lib/generators/jinda/templates/public/assets/images/logo.png +0 -0
- data/lib/generators/jinda/templates/public/favicon.ico +0 -0
- data/lib/generators/jinda/templates/public/robots.txt +3 -0
- data/lib/generators/jinda/templates/spec/controllers/api/v1_get_index_spec.rb +23 -0
- data/lib/generators/jinda/templates/spec/controllers/api/v1_get_my_spec.rb +14 -0
- data/lib/generators/jinda/templates/spec/controllers/api/v1_post_spec.rb +19 -0
- data/lib/generators/jinda/templates/spec/controllers/sessions_controller_spec.rb +98 -0
- data/lib/generators/jinda/templates/spec/features/userlogins_spec.rb +23 -0
- data/lib/generators/jinda/templates/spec/mailers/note_spec.rb +24 -0
- data/lib/generators/jinda/templates/spec/mailers/previews/note_preview.rb +9 -0
- data/lib/generators/jinda/templates/spec/models/note_spec.rb +41 -0
- data/lib/generators/jinda/templates/spec/models/user_spec.rb +12 -0
- data/lib/generators/jinda/templates/spec/rails_helper.rb +42 -0
- data/lib/generators/jinda/templates/spec/spec_helper.rb +80 -0
- data/lib/generators/jinda/templates/spec/support/authentication_helper.rb +20 -0
- data/lib/generators/jinda/templates/spec/support/databasecleaner.rb +13 -0
- data/lib/generators/jinda/templates/spec/support/factory_bot.rb +12 -0
- data/lib/generators/jinda/templates/spec/support/omniauth_macros.rb +38 -0
- data/lib/generators/jinda/templates/spec/support/request_spec_helper.rb +8 -0
- data/lib/generators/jinda/templates/spec/views/articles/_article.html.erb_spec.rbx +14 -0
- data/lib/generators/jinda/templates/test/application_system_test_case.rb +5 -0
- data/lib/generators/jinda/templates/test/integration/jinda_routes_test.rb +42 -0
- data/lib/generators/jinda/templates/test/test_helper.rb +6 -0
- data/lib/jinda/date_helpers.rb +109 -0
- data/lib/jinda/gem_helpers.rb +11 -0
- data/lib/jinda/gen_class.rb +13 -0
- data/lib/jinda/gen_freemind.rb +33 -0
- data/lib/jinda/gen_helpers.rb +141 -0
- data/lib/jinda/gen_models.rb +137 -0
- data/lib/jinda/gen_modules.rb +17 -0
- data/lib/jinda/gen_runseq.rb +71 -0
- data/lib/jinda/gen_services.rb +90 -0
- data/lib/jinda/gen_xmain.rb +38 -0
- data/lib/jinda/get_app.rb +34 -0
- data/lib/jinda/helpers.rb +26 -0
- data/lib/jinda/init_vars.rb +36 -0
- data/lib/jinda/railtie.rb +18 -0
- data/lib/jinda/rake_views.rb +63 -0
- data/lib/jinda/refresh.rb +67 -0
- data/lib/jinda/themes.rb +175 -0
- data/lib/jinda.rb +7 -0
- data/lib/jquery.validate.js +1293 -0
- data/lib/tasks/jinda.rake +42 -0
- data/test/dummy/Rakefile +6 -0
- data/test/dummy/app/assets/config/manifest.js +3 -0
- data/test/dummy/app/assets/stylesheets/application.css +15 -0
- data/test/dummy/app/channels/application_cable/channel.rb +4 -0
- data/test/dummy/app/channels/application_cable/connection.rb +4 -0
- data/test/dummy/app/controllers/application_controller.rb +2 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/javascript/packs/application.js +15 -0
- data/test/dummy/app/jobs/application_job.rb +7 -0
- data/test/dummy/app/mailers/application_mailer.rb +4 -0
- data/test/dummy/app/models/application_record.rb +3 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/app/views/layouts/mailer.html.erb +13 -0
- data/test/dummy/app/views/layouts/mailer.text.erb +1 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/bin/setup +33 -0
- data/test/dummy/config/application.rb +19 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/cable.yml +10 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +62 -0
- data/test/dummy/config/environments/production.rb +112 -0
- data/test/dummy/config/environments/test.rb +49 -0
- data/test/dummy/config/initializers/application_controller_renderer.rb +8 -0
- data/test/dummy/config/initializers/assets.rb +12 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/content_security_policy.rb +28 -0
- data/test/dummy/config/initializers/cookies_serializer.rb +5 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +4 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +33 -0
- data/test/dummy/config/puma.rb +38 -0
- data/test/dummy/config/routes.rb +3 -0
- data/test/dummy/config/spring.rb +6 -0
- data/test/dummy/config/storage.yml +34 -0
- data/test/dummy/config.ru +5 -0
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/log/development.log +8 -0
- data/test/dummy/public/404.html +67 -0
- data/test/dummy/public/422.html +67 -0
- data/test/dummy/public/500.html +66 -0
- data/test/dummy/public/apple-touch-icon-precomposed.png +0 -0
- data/test/dummy/public/apple-touch-icon.png +0 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/tmp/development_secret.txt +1 -0
- data/test/integration/navigation_test.rb +7 -0
- data/test/jinda_test.rb +7 -0
- data/test/test_helper.rb +19 -0
- metadata +466 -0
@@ -0,0 +1,34 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
# ##########################################################################
|
4
|
+
# Load index.mm from Rails
|
5
|
+
# ##########################################################################
|
6
|
+
def get_app
|
7
|
+
# MM was defined in Rails: config/initializer/jinda.rb
|
8
|
+
f= MM || "#{Rails.root}/app/jinda/index.mm"
|
9
|
+
dir= File.dirname(f)
|
10
|
+
t= REXML::Document.new(File.read(MM).gsub("\n","")).root
|
11
|
+
recheck= true ; first_pass= true
|
12
|
+
while recheck
|
13
|
+
recheck= false
|
14
|
+
t.elements.each("//node") do |n|
|
15
|
+
if n.attributes['LINK'] # has attached file
|
16
|
+
if first_pass
|
17
|
+
f= "#{dir}/#{n.attributes['LINK']}"
|
18
|
+
else
|
19
|
+
f= n.attributes['LINK']
|
20
|
+
end
|
21
|
+
next unless File.exists?(f)
|
22
|
+
tt= REXML::Document.new(File.read(f).gsub("\n","")).root.elements["node"]
|
23
|
+
make_folders_absolute(f,tt)
|
24
|
+
tt.elements.each("node") do |tt_node|
|
25
|
+
n.parent.insert_before n, tt_node
|
26
|
+
end
|
27
|
+
recheck= true
|
28
|
+
n.parent.delete_element n
|
29
|
+
end
|
30
|
+
end
|
31
|
+
first_pass = false
|
32
|
+
end
|
33
|
+
return t
|
34
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
require 'active_support'
|
3
|
+
require 'active_support/core_ext'
|
4
|
+
|
5
|
+
module Jinda
|
6
|
+
module Helpers
|
7
|
+
require "rexml/document"
|
8
|
+
include REXML
|
9
|
+
require_relative 'date_helpers'
|
10
|
+
require_relative 'gen_helpers'
|
11
|
+
require_relative 'gen_class'
|
12
|
+
require_relative 'gen_freemind'
|
13
|
+
require_relative 'gem_helpers'
|
14
|
+
require_relative 'refresh'
|
15
|
+
require_relative 'init_vars'
|
16
|
+
require_relative 'themes'
|
17
|
+
require_relative 'gen_xmain'
|
18
|
+
require_relative 'gen_models'
|
19
|
+
require_relative 'date_helpers'
|
20
|
+
require_relative 'rake_views'
|
21
|
+
require_relative 'gen_runseq'
|
22
|
+
require_relative 'gen_services'
|
23
|
+
require_relative 'get_app'
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
@@ -0,0 +1,36 @@
|
|
1
|
+
def init_vars_by_runseq(runseq_id)
|
2
|
+
@runseq= Jinda::Runseq.find runseq_id
|
3
|
+
@xmain= @runseq.xmain
|
4
|
+
@xvars= @xmain.xvars
|
5
|
+
#@xvars[:current_step]= @runseq.rstep
|
6
|
+
@runseq.start ||= Time.now
|
7
|
+
@runseq.status= 'R' # running
|
8
|
+
@runseq.save
|
9
|
+
end
|
10
|
+
def init_vars(xmain)
|
11
|
+
@xmain= Jinda::Xmain.find xmain
|
12
|
+
@xvars= @xmain.xvars
|
13
|
+
@runseq= @xmain.runseqs.find @xmain.current_runseq
|
14
|
+
# authorize?
|
15
|
+
@xvars['current_step']= @runseq.rstep
|
16
|
+
@xvars['referrer']= request.referrer
|
17
|
+
session[:xmain_id]= @xmain.id
|
18
|
+
session[:runseq_id]= @runseq.id
|
19
|
+
unless params[:action]=='run_call'
|
20
|
+
@runseq.start ||= Time.now
|
21
|
+
@runseq.status= 'R' # running
|
22
|
+
@runseq.save
|
23
|
+
end
|
24
|
+
$xmain= @xmain; $xvars= @xvars
|
25
|
+
$runseq_id= @runseq.id
|
26
|
+
$user_id= current_ma_user.try(:id)
|
27
|
+
end
|
28
|
+
def init_vars_by_runseq(runseq_id)
|
29
|
+
@runseq= Jinda::Runseq.find runseq_id
|
30
|
+
@xmain= @runseq.xmain
|
31
|
+
@xvars= @xmain.xvars
|
32
|
+
#@xvars[:current_step]= @runseq.rstep
|
33
|
+
@runseq.start ||= Time.now
|
34
|
+
@runseq.status= 'R' # running
|
35
|
+
@runseq.save
|
36
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'jinda'
|
2
|
+
require 'jinda/helpers'
|
3
|
+
|
4
|
+
module Jinda
|
5
|
+
require 'rails'
|
6
|
+
class Railtie < Rails::Railtie
|
7
|
+
initializer 'testing' do |app|
|
8
|
+
ActionController::Base.send :include, Jinda::Helpers
|
9
|
+
end
|
10
|
+
rake_tasks do
|
11
|
+
load 'tasks/jinda.rake'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
module ApplicationHelper
|
17
|
+
include Jinda::Helpers
|
18
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
########################################################################
|
2
|
+
# Jinda Rake Task #
|
3
|
+
########################################################################
|
4
|
+
|
5
|
+
def gen_views(prefix="")
|
6
|
+
@prefix = prefix.empty? ? "" : (prefix+"/")
|
7
|
+
t = ["*** generate ui ***"]
|
8
|
+
|
9
|
+
# create array of files to be tested
|
10
|
+
$afile = Array.new
|
11
|
+
|
12
|
+
Jinda::Module.all.each do |m|
|
13
|
+
m.services.each do |s|
|
14
|
+
dir = @prefix + "app/views/#{s.module.code}"
|
15
|
+
unless gen_view_file_exist?(dir)
|
16
|
+
gen_view_mkdir(dir,t)
|
17
|
+
end
|
18
|
+
|
19
|
+
if s.code=='link'
|
20
|
+
f= @prefix+"app/views/#{s.module.code}/index.haml"
|
21
|
+
$afile << f
|
22
|
+
unless gen_view_file_exist?(f)
|
23
|
+
# check if test (@prefix)
|
24
|
+
# sv = "app/jinda/template/linkview.haml"
|
25
|
+
sv = @prefix.blank? ? "app/jinda/template/linkview.haml" : "lib/generators/jinda/templates/app/jinda/template/linkview.haml"
|
26
|
+
f= @prefix+"app/views/#{s.module.code}/index.haml"
|
27
|
+
gen_view_createfile(sv,f,t)
|
28
|
+
end
|
29
|
+
next
|
30
|
+
end
|
31
|
+
|
32
|
+
dir = @prefix+"app/views/#{s.module.code}/#{s.code}"
|
33
|
+
unless gen_view_file_exist?(dir)
|
34
|
+
gen_view_mkdir(dir,t)
|
35
|
+
end
|
36
|
+
|
37
|
+
xml= REXML::Document.new(s.xml)
|
38
|
+
xml.elements.each('*/node') do |activity|
|
39
|
+
icon = activity.elements['icon']
|
40
|
+
next unless icon
|
41
|
+
action= freemind2action(icon.attributes['BUILTIN'])
|
42
|
+
next unless ui_action?(action)
|
43
|
+
code_name = activity.attributes["TEXT"].to_s
|
44
|
+
next if code_name.comment?
|
45
|
+
code= name2code(code_name)
|
46
|
+
if action=="pdf"
|
47
|
+
f= @prefix + "app/views/#{s.module.code}/#{s.code}/#{code}.pdf.prawn"
|
48
|
+
else
|
49
|
+
f= @prefix + "app/views/#{s.module.code}/#{s.code}/#{code}.html.erb"
|
50
|
+
end
|
51
|
+
$afile << f
|
52
|
+
unless gen_view_file_exist?(f)
|
53
|
+
# sv = "app/jinda/template/view.html.erb"
|
54
|
+
sv = @prefix.blank? ? "app/jinda/template/linkview.haml" : "lib/generators/jinda/templates/app/jinda/template/linkview.haml"
|
55
|
+
gen_view_createfile(sv,f,t)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
puts $afile.join("\n")
|
61
|
+
puts t.join("\n")
|
62
|
+
return $afile
|
63
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
def b(s)
|
2
|
+
"<b>#{s}</b>".html_safe
|
3
|
+
end
|
4
|
+
def link_to_blank(body, url_options = {}, html_options = {})
|
5
|
+
link_to(body, url_options, html_options.merge(target: "_blank"))
|
6
|
+
end
|
7
|
+
def code_text(s) # old def code(s)
|
8
|
+
"<pre style='background-color: #efffef;'><code class='ruby' lang='ruby'>#{s}</code></pre>".html_safe
|
9
|
+
end
|
10
|
+
|
11
|
+
def refresh_to(url='/', option={})
|
12
|
+
if option[:alert]
|
13
|
+
ma_log option[:alert]
|
14
|
+
end
|
15
|
+
# skip #
|
16
|
+
# Rails 5.2 not allow to use js inline call
|
17
|
+
render inline: "<script>window.location.replace('#{url}')</script>"
|
18
|
+
# redirect_to url
|
19
|
+
# render js: "window.location.replace(\'#{url}\')"
|
20
|
+
end
|
21
|
+
|
22
|
+
# def refresh_to
|
23
|
+
# respond_to do |format|
|
24
|
+
# format.js { render :js => "refresh();" }
|
25
|
+
# end
|
26
|
+
# end
|
27
|
+
|
28
|
+
def read_binary(path)
|
29
|
+
File.open path, "rb" do |f| f.read end
|
30
|
+
end
|
31
|
+
def redirect_to_root
|
32
|
+
redirect_to root_path
|
33
|
+
end
|
34
|
+
|
35
|
+
# Todo refactor code
|
36
|
+
def get_option(opt, runseq=@runseq)
|
37
|
+
xml= REXML::Document.new(runseq.xml).root
|
38
|
+
url=''
|
39
|
+
# get option from second element of node using '//node'
|
40
|
+
xml.each_element('//node') do |n|
|
41
|
+
if n.attributes['TEXT']
|
42
|
+
text = n.attributes['TEXT']
|
43
|
+
url= text if text =~ /^#{opt}:\s*/
|
44
|
+
end
|
45
|
+
end
|
46
|
+
return nil if url.blank?
|
47
|
+
c, h= url.split(':', 2)
|
48
|
+
opt= h ? h.strip : false
|
49
|
+
end
|
50
|
+
def ma_comment?(s)
|
51
|
+
s[0]==35
|
52
|
+
end
|
53
|
+
def get_ip
|
54
|
+
request.env['HTTP_X_FORWARDED_FOR'] || request.env['REMOTE_ADDR']
|
55
|
+
end
|
56
|
+
def get_default_role
|
57
|
+
default_role= Jinda::Role.where(:code =>'default').first
|
58
|
+
return default_role ? default_role.name.to_s : ''
|
59
|
+
end
|
60
|
+
|
61
|
+
def sign_in?
|
62
|
+
if current_ma_user.present?
|
63
|
+
return true
|
64
|
+
else
|
65
|
+
return false
|
66
|
+
end
|
67
|
+
end
|
data/lib/jinda/themes.rb
ADDED
@@ -0,0 +1,175 @@
|
|
1
|
+
|
2
|
+
# ############################### Themes ###################################
|
3
|
+
#
|
4
|
+
# Check login user information from User model: name(code), image for Themes
|
5
|
+
#
|
6
|
+
# ##########################################################################
|
7
|
+
def get_login_user_info
|
8
|
+
if current_ma_user.present?
|
9
|
+
$user_image = ((current_ma_user.image != "") ? current_ma_user.image : asset_url("user.png", :width => "48"))
|
10
|
+
$user_name = current_ma_user.code
|
11
|
+
$user_email = current_ma_user.email
|
12
|
+
$user_id = current_ma_user.try(:id)
|
13
|
+
else
|
14
|
+
$user_image = asset_url("user.png", :width => "48")
|
15
|
+
$user_name = 'Guest User'
|
16
|
+
$user_email = 'guest@sample.com'
|
17
|
+
$user_id = ''
|
18
|
+
end
|
19
|
+
return $user_image, $user_name, $user_email,$user_id
|
20
|
+
end
|
21
|
+
# search image from User in Article/View/Show
|
22
|
+
def get_user_image(user_id)
|
23
|
+
user_image = User.find(user_id).image
|
24
|
+
user_image = ((user_image != "") ? user_image : asset_url("user.png", :width => "48"))
|
25
|
+
return user_image
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
def name2code(s)
|
30
|
+
# rather not ignore # symbol cause it could be comment
|
31
|
+
code, name = s.split(':')
|
32
|
+
code.downcase.strip.gsub(' ','_').gsub(/[^#_\/a-zA-Z0-9]/,'')
|
33
|
+
end
|
34
|
+
def name2camel(s)
|
35
|
+
s.gsub(' ','_').camelcase
|
36
|
+
end
|
37
|
+
def true_action?(s)
|
38
|
+
%w(call ws redirect invoke email).include? s
|
39
|
+
end
|
40
|
+
def set_global
|
41
|
+
$xmain= @xmain ; $runseq = @runseq ; $user = current_ma_user ; $xvars= @xmain.xvars; $ip = request.env["REMOTE_ADDR"]
|
42
|
+
end
|
43
|
+
def authorize? # use in pending tasks
|
44
|
+
@runseq= @xmain.runseqs.find @xmain.current_runseq
|
45
|
+
return false unless @runseq
|
46
|
+
@user = current_ma_user
|
47
|
+
set_global
|
48
|
+
return false unless eval(@runseq.rule) if @runseq.rule
|
49
|
+
return true if true_action?(@runseq.action)
|
50
|
+
# return false if check_wait
|
51
|
+
return true if @runseq.role.blank?
|
52
|
+
unless @runseq.role.empty?
|
53
|
+
return false unless @user.role
|
54
|
+
return @user.role.upcase.split(',').include?(@runseq.role.upcase)
|
55
|
+
end
|
56
|
+
return true
|
57
|
+
end
|
58
|
+
def authorize_init? # use when initialize new transaction
|
59
|
+
# check module role
|
60
|
+
mrole = @service.module.role
|
61
|
+
return false if mrole && !current_ma_user
|
62
|
+
return false if mrole && !current_ma_user.has_role(mrole)
|
63
|
+
|
64
|
+
# check step 1 role
|
65
|
+
xml= @service.xml
|
66
|
+
step1 = REXML::Document.new(xml).root.elements['node']
|
67
|
+
role= get_option_xml("role", step1) || ""
|
68
|
+
# rule= get_option_xml("rule", step1) || true
|
69
|
+
rule= get_option_xml("rule", step1) || true
|
70
|
+
return true if role==""
|
71
|
+
unless current_ma_user
|
72
|
+
return role.blank?
|
73
|
+
else
|
74
|
+
return false unless current_ma_user.role
|
75
|
+
return current_ma_user.has_role(role)
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
79
|
+
def ma_log(message)
|
80
|
+
# Jinda::Notice.create :message => ERB::Util.html_escape(message.gsub("`","'")),
|
81
|
+
# :unread=> true, :ip=> ($ip || request.env["REMOTE_ADDR"])
|
82
|
+
if session[:user_id]
|
83
|
+
Jinda::Notice.create :message => ERB::Util.html_escape(message.gsub("`","'")),
|
84
|
+
:user_id => $user.id, :unread=> true, :ip=>request.env["REMOTE_ADDR"]
|
85
|
+
else
|
86
|
+
Jinda::Notice.create :message => ERB::Util.html_escape(message.gsub("`","'")),
|
87
|
+
:unread=> true, :ip=>request.env["REMOTE_ADDR"]
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
alias :ma_notice :ma_log
|
92
|
+
|
93
|
+
# methods from application_helper
|
94
|
+
def markdown(text)
|
95
|
+
begin
|
96
|
+
erbified = ERB.new(text.html_safe).result(binding)
|
97
|
+
rescue => error
|
98
|
+
flash[:notice] = "This ruby version not support #{error}"
|
99
|
+
return
|
100
|
+
end
|
101
|
+
red = Redcarpet::Markdown.new(Redcarpet::Render::HTML, :autolink => true, :space_after_headers => true)
|
102
|
+
red.render(erbified).html_safe
|
103
|
+
end
|
104
|
+
def align_text(s, pixel=3)
|
105
|
+
"<span style='position:relative; top:-#{pixel}px;'>#{s}</span>".html_safe
|
106
|
+
end
|
107
|
+
def status_icon(status)
|
108
|
+
case status
|
109
|
+
when 'R'
|
110
|
+
image_tag 'user.png'
|
111
|
+
when 'F'
|
112
|
+
image_tag 'tick.png'
|
113
|
+
when 'I'
|
114
|
+
image_tag 'control_play.png'
|
115
|
+
when 'E'
|
116
|
+
image_tag 'logout.png'
|
117
|
+
when 'X'
|
118
|
+
image_tag 'cross.png'
|
119
|
+
else
|
120
|
+
image_tag 'cancel.png'
|
121
|
+
end
|
122
|
+
end
|
123
|
+
def role_name(code)
|
124
|
+
role= Jinda::Role.where(code:code).first
|
125
|
+
return role ? role.name : ""
|
126
|
+
end
|
127
|
+
def uncomment(s)
|
128
|
+
s.sub(/^#\s/,'')
|
129
|
+
end
|
130
|
+
def code_div(s)
|
131
|
+
"<pre style='background-color: #efffef;'><code class='ruby' lang='ruby'> #{s}</code></pre>".html_safe
|
132
|
+
end
|
133
|
+
def ajax?(s)
|
134
|
+
return s.match('file_field') ? false : true
|
135
|
+
end
|
136
|
+
def step(s, total) # square text
|
137
|
+
s = (s==0)? 1: s.to_i
|
138
|
+
total = total.to_i
|
139
|
+
out ="<div class='step'>"
|
140
|
+
(s-1).times {|ss| out += "<span class='steps_done'>#{(ss+1)}</span>" }
|
141
|
+
out += %Q@<span class='step_now' >@
|
142
|
+
out += s.to_s
|
143
|
+
out += "</span>"
|
144
|
+
out += %Q@@
|
145
|
+
for i in s+1..total
|
146
|
+
out += "<span class='steps_more'>#{i}</span>"
|
147
|
+
end
|
148
|
+
out += "</div>"
|
149
|
+
out.html_safe
|
150
|
+
end
|
151
|
+
|
152
|
+
def current_ma_user
|
153
|
+
# if session[:user_id]
|
154
|
+
# return @user ||= User.find(session[:user_id]['$oid'])
|
155
|
+
# else
|
156
|
+
# return nil
|
157
|
+
# end
|
158
|
+
#@user ||= User.find_by_auth_token!(cookies[:auth_token]) if cookies[:auth_token]
|
159
|
+
@user ||= User.where(:auth_token => cookies[:auth_token]).first if cookies[:auth_token]
|
160
|
+
return @user
|
161
|
+
end
|
162
|
+
|
163
|
+
def ui_action?(s)
|
164
|
+
%w(form output mail pdf).include? s
|
165
|
+
end
|
166
|
+
# def handle_ma_notice
|
167
|
+
# if Jinda::Notice.recent.count>0
|
168
|
+
# notice= Jinda::Notice.recent.last
|
169
|
+
# notice.update_attribute :unread, false
|
170
|
+
# "<script>notice('#{notice.message}');</script>"
|
171
|
+
# else
|
172
|
+
# ""
|
173
|
+
# end
|
174
|
+
# end
|
175
|
+
|