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,368 @@
|
|
1
|
+
module JindaRunConcern
|
2
|
+
extend ActiveSupport::Concern
|
3
|
+
|
4
|
+
def run_form
|
5
|
+
init_vars(params[:id])
|
6
|
+
if authorize?
|
7
|
+
if ['F', 'X'].include? @xmain.status
|
8
|
+
redirect_to_root
|
9
|
+
else
|
10
|
+
service= @xmain.service
|
11
|
+
###############################################################################################
|
12
|
+
# Run View Form f created template by jinda rake follow freemind mm file
|
13
|
+
###############################################################################################
|
14
|
+
if service
|
15
|
+
@title= "Transaction ID #{@xmain.xid}: #{@xmain.name} / #{@runseq.name}"
|
16
|
+
fhelp= "app/views/#{service.module.code}/#{service.code}/#{@runseq.code}.md"
|
17
|
+
###############################################################################################
|
18
|
+
# Check if help file available for this form
|
19
|
+
###############################################################################################
|
20
|
+
@help = File.read(fhelp) if File.exists?(fhelp)
|
21
|
+
f1= "app/views/#{service.module.code}/#{service.code}/#{@runseq.code}.html.erb"
|
22
|
+
f2= "app/views/#{service.module.code}/#{service.code}/#{@runseq.code}.html.haml"
|
23
|
+
if File.file?(f1)
|
24
|
+
@ui= File.read(f1)
|
25
|
+
elsif File.file?(f2)
|
26
|
+
@ui= File.read(f2)
|
27
|
+
else
|
28
|
+
# flash[:notice]= "Error: Can not find the view file for this controller"
|
29
|
+
ma_log "Error: Can not find the view file for this controller"
|
30
|
+
redirect_to_root
|
31
|
+
end
|
32
|
+
end
|
33
|
+
init_vars(params[:id])
|
34
|
+
end
|
35
|
+
else
|
36
|
+
redirect_to_root
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def run_if
|
41
|
+
init_vars(params[:id])
|
42
|
+
condition= eval(@runseq.code).to_s
|
43
|
+
match_found= false
|
44
|
+
if condition
|
45
|
+
xml= REXML::Document.new(@runseq.xml).root
|
46
|
+
next_runseq= nil
|
47
|
+
text = xml.elements['//node/node'].attributes['TEXT']
|
48
|
+
match, name= text.split(':',2)
|
49
|
+
label= name2code(name.strip)
|
50
|
+
if condition==match
|
51
|
+
if label=="end"
|
52
|
+
@end_job= true
|
53
|
+
else
|
54
|
+
next_runseq= @xmain.runseqs.where(:code=> label, :action.ne=>'redirect').first
|
55
|
+
match_found= true if next_runseq
|
56
|
+
@runseq_not_f= false
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
unless match_found || @end_job
|
61
|
+
next_runseq= @xmain.runseqs.where( rstep:(@xvars['current_step']+1) ).first
|
62
|
+
end
|
63
|
+
end_action(next_runseq)
|
64
|
+
end
|
65
|
+
|
66
|
+
# redirect when finish last runseq
|
67
|
+
# eg: http://localhost:3000/notes/my
|
68
|
+
def run_direct_to
|
69
|
+
init_vars(params[:id])
|
70
|
+
next_runseq= @xmain.runseqs.where(:id.ne=>@runseq.id, :code=>@runseq.code).first
|
71
|
+
if !@runseq.code.blank?
|
72
|
+
@xvars['p']['return'] = @runseq.code
|
73
|
+
else
|
74
|
+
flash[:notice]= "Error: missing required forward path in Freemind"
|
75
|
+
ma_log "Error: require forward path in Freemind"
|
76
|
+
end
|
77
|
+
end_action(next_runseq)
|
78
|
+
end
|
79
|
+
|
80
|
+
def run_redirect
|
81
|
+
init_vars(params[:id])
|
82
|
+
# next_runseq= @xmain.runseqs.first :conditions=>["id != ? AND code = ?",@runseq.id, @runseq.code]
|
83
|
+
next_runseq= @xmain.runseqs.where(:id.ne=>@runseq.id, :code=>@runseq.code).first
|
84
|
+
@xmain.current_runseq= next_runseq.id
|
85
|
+
end_action(next_runseq)
|
86
|
+
end
|
87
|
+
|
88
|
+
# call controller to do the freemind task using Star symbol eg: Update
|
89
|
+
# not for run_form
|
90
|
+
def run_do
|
91
|
+
init_vars(params[:id])
|
92
|
+
@runseq.start ||= Time.now
|
93
|
+
@runseq.status= 'R' # running
|
94
|
+
$runseq_id= @runseq.id
|
95
|
+
$user_id= current_ma_user.try(:id)
|
96
|
+
# $xmain, $runseq, $user, $xvars, $ip from local
|
97
|
+
set_global
|
98
|
+
controller = Kernel.const_get(@xvars['custom_controller']).new
|
99
|
+
result = controller.send(@runseq.code)
|
100
|
+
# save local var to database
|
101
|
+
init_vars_by_runseq($runseq_id)
|
102
|
+
@xvars = $xvars
|
103
|
+
@xvars[@runseq.code.to_sym]= result.to_s
|
104
|
+
@xvars['current_step']= @runseq.rstep
|
105
|
+
@runseq.status= 'F' #finish
|
106
|
+
@runseq.stop= Time.now
|
107
|
+
@runseq.save
|
108
|
+
end_action
|
109
|
+
rescue => e
|
110
|
+
@xmain.status='E'
|
111
|
+
@xvars['error']= e.to_s+e.backtrace.to_s
|
112
|
+
@xmain.xvars= $xvars
|
113
|
+
@xmain.save
|
114
|
+
@runseq.status= 'F' #finish
|
115
|
+
@runseq.stop= Time.now
|
116
|
+
@runseq.save
|
117
|
+
refresh_to "/", :alert => "Sorry opeation error at #{@xmain.id} #{@xvars['error']}"
|
118
|
+
end
|
119
|
+
|
120
|
+
def run_list
|
121
|
+
init_vars(params[:id])
|
122
|
+
service= @xmain.service
|
123
|
+
# disp= get_option("display")
|
124
|
+
# disp = Nil or :"??????"
|
125
|
+
# get option from last node: rule, role, display
|
126
|
+
disp= get_option("display")
|
127
|
+
# change from Nil to false and string to true
|
128
|
+
ma_display = (disp && !affirm(disp)) ? false : true
|
129
|
+
# Todo check if file is available
|
130
|
+
# if service and file exist
|
131
|
+
# ma_display from disp of 3rd level node as rule, role, display
|
132
|
+
if service && !@runseq.code.blank?
|
133
|
+
f= "app/views/#{service.module.code}/#{service.code}/#{@runseq.code}.html.erb"
|
134
|
+
@ui= File.read(f)
|
135
|
+
if Jinda::Doc.where(:runseq_id=>@runseq.id).exists?
|
136
|
+
@doc= Jinda::Doc.where(:runseq_id=>@runseq.id).first
|
137
|
+
@doc.update_attributes :data_text=> render_to_string(:inline=>@ui, :layout=>"utf8"),
|
138
|
+
:xmain=>@xmain, :runseq=>@runseq, :user=>current_ma_user,
|
139
|
+
:ip=> get_ip, :service=>service, :ma_display=>ma_display,
|
140
|
+
:ma_secured => @xmain.service.ma_secured,
|
141
|
+
:filename => "#{@runseq.code}.html.erb"
|
142
|
+
else
|
143
|
+
@doc= Jinda::Doc.create :name=> @runseq.name,
|
144
|
+
:content_type=>"output", :data_text=> render_to_string(:inline=>@ui, :layout=>"utf8"),
|
145
|
+
:xmain=>@xmain, :runseq=>@runseq, :user=>current_ma_user,
|
146
|
+
:ip=> get_ip, :service=>service, :ma_display=>ma_display,
|
147
|
+
:ma_secured => @xmain.service.ma_secured,
|
148
|
+
:filename => "#{@runseq.code}.html.erb"
|
149
|
+
end
|
150
|
+
# @message = defined?(MSG_NEXT) ? MSG_NEXT : "Next >"
|
151
|
+
@message = defined?(MSG_NEXT) ? MSG_NEXT : "Next >>"
|
152
|
+
@message = "Finish" if @runseq.end
|
153
|
+
ma_log("Todo defined?(NSG_NEXT : Next >>)")
|
154
|
+
eval "@xvars[@runseq.code] = url_for(:controller=>'jinda', :action=>'document', :id=>@doc.id)"
|
155
|
+
else
|
156
|
+
flash[:notice]= "Error: Can not find the view file for this controller"
|
157
|
+
ma_log "Error: Can not find the view file for this controller"
|
158
|
+
redirect_to_root
|
159
|
+
end
|
160
|
+
# Check if ma_display available
|
161
|
+
# ma_display= get_option("display")
|
162
|
+
# if not ma_display then no display both controller-view and content then end back to root
|
163
|
+
unless ma_display
|
164
|
+
end_action
|
165
|
+
end
|
166
|
+
# controller display from @ui
|
167
|
+
end
|
168
|
+
|
169
|
+
def run_folder
|
170
|
+
init_vars(params[:id])
|
171
|
+
service= @xmain.service
|
172
|
+
# disp= get_option("display")
|
173
|
+
# disp = Nil or :"??????"
|
174
|
+
disp= get_option("display")
|
175
|
+
ma_display = (disp && !affirm(disp)) ? false : true
|
176
|
+
# Todo check if file is available
|
177
|
+
# if service and file exist
|
178
|
+
if service && !@runseq.code.blank?
|
179
|
+
f= "app/views/#{service.module.code}/#{service.code}/#{@runseq.code}.html.erb"
|
180
|
+
@ui= File.read(f)
|
181
|
+
if Jinda::Doc.where(:runseq_id=>@runseq.id).exists?
|
182
|
+
@doc= Jinda::Doc.where(:runseq_id=>@runseq.id).first
|
183
|
+
@doc.update_attributes :data_text=> render_to_string(:inline=>@ui, :layout=>"utf8"),
|
184
|
+
:xmain=>@xmain, :runseq=>@runseq, :user=>current_ma_user,
|
185
|
+
:ip=> get_ip, :service=>service, :ma_display=>ma_display,
|
186
|
+
:ma_secured => @xmain.service.ma_secured,
|
187
|
+
:filename => "#{@runseq.code}.html.erb"
|
188
|
+
else
|
189
|
+
@doc= Jinda::Doc.create :name=> @runseq.name,
|
190
|
+
:content_type=>"output", :data_text=> render_to_string(:inline=>@ui, :layout=>"utf8"),
|
191
|
+
:xmain=>@xmain, :runseq=>@runseq, :user=>current_ma_user,
|
192
|
+
:ip=> get_ip, :service=>service, :ma_display=>ma_display,
|
193
|
+
:ma_secured => @xmain.service.ma_secured,
|
194
|
+
:filename => "#{@runseq.code}.html.erb"
|
195
|
+
end
|
196
|
+
# @message = defined?(MSG_NEXT) ? MSG_NEXT : "Next >"
|
197
|
+
@message = defined?(MSG_NEXT) ? MSG_NEXT : "Next >>"
|
198
|
+
@message = "Finish" if @runseq.end
|
199
|
+
ma_log("Todo defined?(NSG_NEXT : Next >>)")
|
200
|
+
eval "@xvars[@runseq.code] = url_for(:controller=>'jinda', :action=>'document', :id=>@doc.id)"
|
201
|
+
else
|
202
|
+
flash[:notice]= "Error: Can not find the view file for this controller"
|
203
|
+
ma_log "Error: Can not find the view file for this controller"
|
204
|
+
redirect_to_root
|
205
|
+
end
|
206
|
+
# Check if ma_display available
|
207
|
+
# ma_display= get_option("display")
|
208
|
+
unless ma_display
|
209
|
+
end_action
|
210
|
+
end
|
211
|
+
# controller display from @ui
|
212
|
+
end
|
213
|
+
|
214
|
+
def run_output
|
215
|
+
init_vars(params[:id])
|
216
|
+
service= @xmain.service
|
217
|
+
# disp= get_option("display")
|
218
|
+
# disp = Nil or :"??????"
|
219
|
+
disp= get_option("display")
|
220
|
+
ma_display = (disp && !affirm(disp)) ? false : true
|
221
|
+
# Todo check if file is available
|
222
|
+
# if service and file exist
|
223
|
+
if service && !@runseq.code.blank?
|
224
|
+
f= "app/views/#{service.module.code}/#{service.code}/#{@runseq.code}.html.erb"
|
225
|
+
@ui= File.read(f)
|
226
|
+
if Jinda::Doc.where(:runseq_id=>@runseq.id).exists?
|
227
|
+
@doc= Jinda::Doc.where(:runseq_id=>@runseq.id).first
|
228
|
+
@doc.update_attributes :data_text=> render_to_string(:inline=>@ui, :layout=>"utf8"),
|
229
|
+
:xmain=>@xmain, :runseq=>@runseq, :user=>current_ma_user,
|
230
|
+
:ip=> get_ip, :service=>service, :ma_display=>ma_display,
|
231
|
+
:ma_secured => @xmain.service.ma_secured,
|
232
|
+
:filename => "#{@runseq.code}.html.erb"
|
233
|
+
else
|
234
|
+
@doc= Jinda::Doc.create :name=> @runseq.name,
|
235
|
+
:content_type=>"output", :data_text=> render_to_string(:inline=>@ui, :layout=>"utf8"),
|
236
|
+
:xmain=>@xmain, :runseq=>@runseq, :user=>current_ma_user,
|
237
|
+
:ip=> get_ip, :service=>service, :ma_display=>ma_display,
|
238
|
+
:ma_secured => @xmain.service.ma_secured,
|
239
|
+
:filename => "#{@runseq.code}.html.erb"
|
240
|
+
end
|
241
|
+
# @message = defined?(MSG_NEXT) ? MSG_NEXT : "Next >"
|
242
|
+
@message = defined?(MSG_NEXT) ? MSG_NEXT : "Next >>"
|
243
|
+
@message = "Finish" if @runseq.end
|
244
|
+
ma_log("Todo defined?(NSG_NEXT : Next >>)")
|
245
|
+
eval "@xvars[@runseq.code] = url_for(:controller=>'jinda', :action=>'document', :id=>@doc.id)"
|
246
|
+
else
|
247
|
+
flash[:notice]= "Error: Can not find the view file for this controller"
|
248
|
+
ma_log "Error: Can not find the view file for this controller"
|
249
|
+
redirect_to_root
|
250
|
+
end
|
251
|
+
# Check if ma_display available
|
252
|
+
# ma_display= get_option("display")
|
253
|
+
unless ma_display
|
254
|
+
end_action
|
255
|
+
end
|
256
|
+
# controller display from @ui
|
257
|
+
end
|
258
|
+
|
259
|
+
def run_mail
|
260
|
+
init_vars(params[:id])
|
261
|
+
service= @xmain.service
|
262
|
+
f= "app/views/#{service.module.code}/#{service.code}/#{@runseq.code}.html.erb"
|
263
|
+
@ui= File.read(f).html_safe
|
264
|
+
@doc= Jinda::Doc.create :name=> @runseq.name,
|
265
|
+
:content_type=>"mail", :data_text=> render_to_string(:inline=>@ui, :layout=>false),
|
266
|
+
:xmain=>@xmain, :runseq=>@runseq, :user=>current_ma_user,
|
267
|
+
:ip=> get_ip, :service=>service, :ma_display=>false,
|
268
|
+
:ma_secured => @xmain.service.ma_secured
|
269
|
+
eval "@xvars[:#{@runseq.code}] = url_for(:controller=>'jinda', :action=>'document', :id=>@doc.id)"
|
270
|
+
mail_from = get_option('from')
|
271
|
+
# sender= render_to_string(:inline=>mail_from) if mail_from
|
272
|
+
mail_to = get_option('to')
|
273
|
+
recipients= render_to_string(:inline=>mail_to) if mail_to
|
274
|
+
mail_subject = get_option('subject')
|
275
|
+
subject= render_to_string(:inline=>mail_subject) || "#{@runseq.name}"
|
276
|
+
JindaMailer.gmail(@doc.data_text, recipients, subject).deliver unless DONT_SEND_MAIL
|
277
|
+
end_action
|
278
|
+
end
|
279
|
+
|
280
|
+
def end_output
|
281
|
+
init_vars(params[:xmain_id])
|
282
|
+
end_action
|
283
|
+
end
|
284
|
+
|
285
|
+
# Store params to @xvars[@runseq]
|
286
|
+
# Perform task from the form input eg: attach file
|
287
|
+
# replace end_action (for form)
|
288
|
+
# Store params attach file to @xvars to use in get_image
|
289
|
+
def end_form
|
290
|
+
if params[:xmain_id]
|
291
|
+
init_vars(params[:xmain_id])
|
292
|
+
else
|
293
|
+
ma_log "Known Bug : repeated end_form "
|
294
|
+
redirect_to_root and return
|
295
|
+
end
|
296
|
+
eval "@xvars[@runseq.code] = {} unless @xvars[@runseq.code]"
|
297
|
+
# Search for uploaded file name if exist
|
298
|
+
params.each { |k,v|
|
299
|
+
if params[k].respond_to? :original_filename
|
300
|
+
get_image(k, params[k])
|
301
|
+
# check if params of array in form eg: edit_article
|
302
|
+
elsif params[k].is_a?(ActionController::Parameters)
|
303
|
+
eval "@xvars[@runseq.code][k] = {} unless @xvars[@runseq.code][k]"
|
304
|
+
params[k].each { |k1,v1|
|
305
|
+
# eval "@xvars[@runseq.code][k1] = params.require(k1).permit(k1)"
|
306
|
+
eval "@xvars[@runseq.code][k][k1] = v1"
|
307
|
+
next unless v1.respond_to?(:original_filename)
|
308
|
+
doc = {}
|
309
|
+
get_image1(k, k1, params[k][k1])
|
310
|
+
}
|
311
|
+
else
|
312
|
+
# No file attached
|
313
|
+
#
|
314
|
+
# https://stackoverflow.com/questions/34949505/rails-5-unable-to- retrieve-hash-values-from-parameter # bug in to_unsalfe_h rails 5.1.6 https://github.com/getsentry/raven-ruby/issues/799
|
315
|
+
# Solution:
|
316
|
+
# https://stackoverflow.com/questions/34949505/rails-5-unable-to-retrieve-hash-values-from-parameter
|
317
|
+
# v = v.to_unsafe_h unless v.class == String
|
318
|
+
# v = params.require[k] unless v.class == String
|
319
|
+
v = v.to_s unless v.class == String
|
320
|
+
# Create @xvars[@runseq.code]
|
321
|
+
eval "@xvars[@runseq.code][k] = v"
|
322
|
+
end
|
323
|
+
}
|
324
|
+
end_action
|
325
|
+
rescue => e
|
326
|
+
@xmain.status='E'
|
327
|
+
@xvars['error']= e.to_s+e.backtrace.to_s
|
328
|
+
@xmain.xvars= $xvars
|
329
|
+
@xmain.save
|
330
|
+
@runseq.status= 'F' #finish
|
331
|
+
@runseq.stop= Time.now
|
332
|
+
@runseq.save
|
333
|
+
ma_log "Error:end_form "
|
334
|
+
refresh_to "/", :alert => "Sorry opeation error at #{@xmain.id} #{@xvars['error']}"
|
335
|
+
end
|
336
|
+
|
337
|
+
def end_action(next_runseq = nil)
|
338
|
+
# not for form
|
339
|
+
# @runseq.status='F' unless @runseq_not_f
|
340
|
+
@xmain.xvars= @xvars
|
341
|
+
@xmain.status= 'R' # running
|
342
|
+
@xmain.save!
|
343
|
+
@runseq.status='F'
|
344
|
+
@runseq.user= current_ma_user
|
345
|
+
@runseq.stop= Time.now
|
346
|
+
@runseq.save
|
347
|
+
next_runseq= @xmain.runseqs.where(:rstep=> @runseq.rstep+1).first unless next_runseq
|
348
|
+
if @end_job || !next_runseq # job finish
|
349
|
+
@xmain.xvars= @xvars
|
350
|
+
@xmain.status= 'F' unless @xmain.status== 'E' # finish
|
351
|
+
@xmain.stop= Time.now
|
352
|
+
@xmain.save
|
353
|
+
if @xvars['p']['return']
|
354
|
+
redirect_to @xvars['p']['return'] and return
|
355
|
+
else
|
356
|
+
if @user
|
357
|
+
redirect_to :action=>'index' and return
|
358
|
+
else
|
359
|
+
redirect_to_root and return
|
360
|
+
end
|
361
|
+
end
|
362
|
+
else
|
363
|
+
@xmain.update_attribute :current_runseq, next_runseq.id
|
364
|
+
redirect_to :action=>'run', :id=>@xmain.id and return
|
365
|
+
end
|
366
|
+
end
|
367
|
+
|
368
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
|
3
|
+
class JindaController < ApplicationController
|
4
|
+
include JindaRunConcern
|
5
|
+
include JindaGeneralConcern
|
6
|
+
# view menu by user selected what service (module and code) to run (not all services like menu did
|
7
|
+
# Its only one service
|
8
|
+
|
9
|
+
def init
|
10
|
+
module_code, code = params[:s].split(":")
|
11
|
+
@service= Jinda::Service.where(:module_code=> module_code, :code=> code).first
|
12
|
+
if @service && authorize_init?
|
13
|
+
xmain = create_xmain(@service)
|
14
|
+
result = create_runseq(xmain)
|
15
|
+
unless result
|
16
|
+
message = "Node missing action icon: cannot find action for xmain #{xmain.id}, the node required action(icon) in freemind eg: form, list, method"
|
17
|
+
ma_log(message)
|
18
|
+
flash[:notice]= message
|
19
|
+
redirect_to "pending" and return
|
20
|
+
end
|
21
|
+
xmain.update_attribute(:xvars, @xvars)
|
22
|
+
xmain.runseqs.last.update_attribute(:end,true)
|
23
|
+
#Above line cause error update_attribute in heroku shown in logs and it was proposed to fixed in github:'kul1/g241502'
|
24
|
+
# Main action run with :id
|
25
|
+
redirect_to :action=>'run', :id=>xmain.id
|
26
|
+
|
27
|
+
else
|
28
|
+
refresh_to "/", :alert => "Error: cannot process"
|
29
|
+
error_run_xmain = "Error_run_xmain"
|
30
|
+
ma_log(error_run_xmain)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
########################################################################]
|
35
|
+
# run if, form, mail, output etc depend on icon in freemind
|
36
|
+
# action from @r.action == do, form, if, output
|
37
|
+
# Then will call def run_do, run_form, run_if, run_output
|
38
|
+
########################################################################]
|
39
|
+
#
|
40
|
+
# run
|
41
|
+
# init_vars
|
42
|
+
# To get all var from global and runseq, action
|
43
|
+
# (@runseq.action)
|
44
|
+
#
|
45
|
+
# run_do, run_form, run_if, run_output
|
46
|
+
# run_do => controller => action eg: update, create, document
|
47
|
+
# run_form =>
|
48
|
+
# run_form.haml => - next step => def end_form
|
49
|
+
# - next_step = end_form
|
50
|
+
# run_if =>
|
51
|
+
# run_output =>
|
52
|
+
#
|
53
|
+
# end_action
|
54
|
+
# => save local var to database :current_runseq
|
55
|
+
# :current_runseq => next_runseq
|
56
|
+
#
|
57
|
+
def run
|
58
|
+
init_vars(params[:id])
|
59
|
+
if authorize?
|
60
|
+
# session[:full_layout]= false
|
61
|
+
redirect_to(:action=>"run_#{@runseq.action}", :id=>@xmain.id)
|
62
|
+
else
|
63
|
+
redirect_to_root
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "jinda"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start(__FILE__)
|
data/bin/setup
ADDED
data/config/mongoid.yml
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
production:
|
2
|
+
clients:
|
3
|
+
default:
|
4
|
+
uri: <%= ENV['MONGOHQ_URL'] %>
|
5
|
+
options:
|
6
|
+
skip_version_check: true
|
7
|
+
safe: true
|
8
|
+
development:
|
9
|
+
clients:
|
10
|
+
default:
|
11
|
+
database: jinda
|
12
|
+
hosts:
|
13
|
+
- localhost:27017
|
14
|
+
test:
|
15
|
+
clients:
|
16
|
+
default:
|
17
|
+
database: jinda
|
18
|
+
hosts:
|
19
|
+
- localhost:27017
|
data/config/routes.rb
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
Rails.application.routes.draw do
|
2
|
+
# start jiinda method routes
|
3
|
+
jinda_methods = ['pending', 'status', 'search', 'doc', 'doc_print', 'logs', 'ajax_notice']
|
4
|
+
jinda_methods += ['init', 'run', 'run_mail', 'document', 'run_do', 'run_form', 'end_form']
|
5
|
+
jinda_methods += ['run_redirect', 'run_direct_to','run_if']
|
6
|
+
jinda_methods += ['error_logs', 'notice_logs', 'cancel', 'run_output', 'end_output']
|
7
|
+
jinda_methods.each do |aktion| get "/jinda/#{aktion}" => "jinda##{aktion}" end
|
8
|
+
post '/jinda/init' => 'jinda#init'
|
9
|
+
post '/jinda/pending' => 'jinda#index'
|
10
|
+
post '/jinda/end_form' => 'jinda#end_form'
|
11
|
+
post '/jinda/end_output' => 'jinda#end_output'
|
12
|
+
# end jinda method routes
|
13
|
+
post '/auth/:provider/callback' => 'sessions#create'
|
14
|
+
get '/auth/:provider/callback' => 'sessions#create'
|
15
|
+
get '/auth/failure' => 'sessions#failure'
|
16
|
+
get '/logout' => 'sessions#destroy', :as => 'logout'
|
17
|
+
get '/articles/my' => 'articles#my'
|
18
|
+
get '/articles/my/destroy' => 'articles#destroy'
|
19
|
+
get '/articles/show' => 'articles/show'
|
20
|
+
get '/articles/edit' => 'articles/edit'
|
21
|
+
get '/docs/my' => 'docs/my'
|
22
|
+
get '/notes/my' => 'notes/my'
|
23
|
+
get '/docs/my/destroy' => 'docs#destroy'
|
24
|
+
get '/notes/my/destroy/:id' => 'notes#destroy'
|
25
|
+
get '/notes/destroy/:id' => 'notes#destroy'
|
26
|
+
get '/jinda/document/:id' => 'jinda#document'
|
27
|
+
resources :articles do resources :comments end
|
28
|
+
resources :comments
|
29
|
+
resources :notes
|
30
|
+
resources :docs
|
31
|
+
resources :users
|
32
|
+
resources :identities
|
33
|
+
resources :sessions
|
34
|
+
resources :password_resets
|
35
|
+
resources :jinda, :only => [:index, :new]
|
36
|
+
# root :to => 'jinda#index'
|
37
|
+
# api
|
38
|
+
get '/api/v1/notes/my' => 'api/v1/notes#my'
|
39
|
+
post '/api/v1/notes' => 'api/v1/notes#create', as: 'api_v1_notes'
|
40
|
+
namespace :api do
|
41
|
+
namespace :v1 do resources :notes, :only => [:index] end
|
42
|
+
end
|
43
|
+
# For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
|
44
|
+
end
|
@@ -0,0 +1,102 @@
|
|
1
|
+
module Jinda
|
2
|
+
module Generators
|
3
|
+
class ConfigGenerator < Rails::Generators::Base
|
4
|
+
def self.source_root
|
5
|
+
File.dirname(__FILE__) + "/templates"
|
6
|
+
end
|
7
|
+
desc "Backup Files"
|
8
|
+
def backup_files
|
9
|
+
st=" "
|
10
|
+
# inside("config/initializers") {(File.file? "omniauth.rb") ? (FileUtils.mv "omniauth.rb", "omniauth.rb.bak") : (puts "new omniauth.rb created")}
|
11
|
+
# inside("config/initializers") {(File.file? "mongoid.rb") ? (FileUtils.mv "mongoid.rb", "omniauth.rb.bak") : (puts "new mongoid.rb created")}
|
12
|
+
(File.file? ".env") ? (FileUtils.mv ".env", ".env-bak") : (puts "backup .env")
|
13
|
+
end
|
14
|
+
desc "gen_image_store"
|
15
|
+
def gen_image_store
|
16
|
+
# FileUtils.cp "cloudinary.yml","config/cloudinary.yml"
|
17
|
+
# FileUtils.cp "dot.env",".env"
|
18
|
+
# FileUtils.cp "dot.rspec",".rspec"
|
19
|
+
empty_directory "upload" # create upload directory just in case
|
20
|
+
end
|
21
|
+
desc "Set up omniauth config"
|
22
|
+
def setup_omniauth
|
23
|
+
# gem 'bcrypt-ruby', '~> 3.0.0'
|
24
|
+
# gem 'omniauth-identity'
|
25
|
+
initializer "omniauth.rb" do
|
26
|
+
%q{
|
27
|
+
Rails.application.config.middleware.use OmniAuth::Builder do
|
28
|
+
provider :identity,
|
29
|
+
:fields => [:code, :email],
|
30
|
+
:on_failed_registration=> lambda { |env|
|
31
|
+
IdentitiesController.action(:new).call(env)
|
32
|
+
}
|
33
|
+
provider :facebook, ENV['FACEBOOK_API'], ENV['FACEBOOK_KEY']
|
34
|
+
provider :google_oauth2, ENV['GOOGLE_CLIENT_ID'], ENV['GOOGLE_CLIENT_SECRET'], skip_jwt: true
|
35
|
+
end
|
36
|
+
|
37
|
+
# https://stackoverflow.com/questions/11461084/handle-omniautherror-invalid-credentials-for-identity-login
|
38
|
+
OmniAuth.config.on_failure = Proc.new { |env|
|
39
|
+
OmniAuth::FailureEndpoint.new(env).redirect_to_failure
|
40
|
+
}
|
41
|
+
|
42
|
+
}
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
desc "Set up mongoid config"
|
47
|
+
def setup_mongoid
|
48
|
+
generate "mongoid:config"
|
49
|
+
inject_into_file 'config/mongoid.yml', :after => ' # raise_not_found_error: true' do
|
50
|
+
"\n raise_not_found_error: false"
|
51
|
+
end
|
52
|
+
|
53
|
+
inject_into_file 'config/mongoid.yml', :after => ' # belongs_to_required_by_default: true' do
|
54
|
+
"\n belongs_to_required_by_default: false"
|
55
|
+
end
|
56
|
+
inject_into_file 'config/mongoid.yml', :after => ' # app_name: MyApplicationName' do
|
57
|
+
"\n\nproduction:" +
|
58
|
+
"\n clients:" +
|
59
|
+
"\n default:" +
|
60
|
+
"\n uri: <%= ENV['MONGODB_URI'] %>" +
|
61
|
+
"\n options:" +
|
62
|
+
"\n raise_not_found_error: false" +
|
63
|
+
"\n belongs_to_required_by_default: false\n"
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
desc "Setup Dockerfile"
|
68
|
+
def setup_docker
|
69
|
+
puts " Setup Docker files"
|
70
|
+
FileUtils.cp source_paths[0]+"/"+"Dockerfile", "Dockerfile"
|
71
|
+
FileUtils.cp source_paths[0]+"/"+"docker-compose.yml", "docker-compose.yml"
|
72
|
+
FileUtils.cp source_paths[0]+"/"+"entrypoint.sh", "entrypoint.sh"
|
73
|
+
end
|
74
|
+
|
75
|
+
def finish
|
76
|
+
puts " configured omniauth.\n"
|
77
|
+
puts " configured Mongoid.\n"
|
78
|
+
puts "\n"
|
79
|
+
puts " To set user/password as admin/secret run:\n"
|
80
|
+
puts "-----------------------------------------\n"
|
81
|
+
puts "rails jinda:seed\n"
|
82
|
+
puts "-----------------------------------------\n"
|
83
|
+
puts " To test with rspec run:"
|
84
|
+
puts "-----------------------------------------\n"
|
85
|
+
puts "rspec\n"
|
86
|
+
puts "-----------------------------------------\n"
|
87
|
+
puts " To config rspec run:"
|
88
|
+
puts "rails g jinda:rspec\n"
|
89
|
+
puts "run $chromediver for Capybara & Chrome\n"
|
90
|
+
puts "-----------------------------------------\n"
|
91
|
+
puts " To config minitest run:"
|
92
|
+
puts "-----------------------------------------\n"
|
93
|
+
puts "rails g jinda:minitest\n"
|
94
|
+
puts "-----------------------------------------\n"
|
95
|
+
puts " To login with facebook"
|
96
|
+
puts "-----------------------------------------\n"
|
97
|
+
puts "Please config. in .env or restore from .env-bak \n"
|
98
|
+
puts "-----------------------------------------\n"
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|