jinda 0.8.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +8 -5
- data/Rakefile +103 -1
- data/app/assets/javascripts/jinda_bootstrap.js +20 -0
- data/app/assets/stylesheets/_jinda_bootstrap_theme.scss +190 -0
- data/{lib/generators/jinda/templates/app/assets/stylesheets/jinda_jqm.css.scss → app/assets/stylesheets/jinda_bootstrap.css.scss} +12 -10
- data/app/config/routes.rb +38 -28
- data/app/controllers/concerns/jinda_general_concern.rb +86 -87
- data/app/controllers/concerns/jinda_run_concern.rb +184 -184
- data/app/controllers/jinda_controller.rb +23 -22
- data/bin/lint_modified +21 -0
- data/config/routes.rb +41 -22
- data/lib/generators/jinda/config_generator.rb +102 -81
- data/lib/generators/jinda/install_generator.rb +304 -146
- data/lib/generators/jinda/install_generator.rb.bak2 +268 -0
- data/lib/generators/jinda/installer/gems_install.rb +125 -127
- data/lib/generators/jinda/minitest_generator.rb +19 -18
- data/lib/generators/jinda/rspec_generator.rb +15 -14
- data/lib/generators/jinda/templates/DOCKER.md +188 -0
- data/lib/generators/jinda/templates/Dockerfile +15 -5
- data/lib/generators/jinda/templates/README.md +3 -3
- data/lib/generators/jinda/templates/app/assets/javascripts/application.js +8 -8
- data/lib/generators/jinda/templates/app/assets/stylesheets/{application.css.scss → application.scss} +12 -4
- data/lib/generators/jinda/templates/app/assets/stylesheets/jinda.scss +253 -0
- data/lib/generators/jinda/templates/app/channels/application_cable/channel.rb +2 -0
- data/lib/generators/jinda/templates/app/channels/application_cable/connection.rb +2 -0
- data/lib/generators/jinda/templates/app/controllers/adminltes_controller.rb +3 -0
- data/lib/generators/jinda/templates/app/controllers/api/v1/notes_controller.rb +80 -78
- data/lib/generators/jinda/templates/app/controllers/jinda_org/admins_controller.rb +4 -2
- data/lib/generators/jinda/templates/app/controllers/jinda_org/application_controller.rb +11 -9
- data/lib/generators/jinda/templates/app/controllers/jinda_org/articles_controller.rb +40 -44
- data/lib/generators/jinda/templates/app/controllers/jinda_org/comments_controller.rb +10 -8
- data/lib/generators/jinda/templates/app/controllers/jinda_org/docs_controller.rb +23 -24
- data/lib/generators/jinda/templates/app/controllers/jinda_org/identities_controller.rb +3 -1
- data/lib/generators/jinda/templates/app/controllers/jinda_org/notes_controller.rb +25 -27
- data/lib/generators/jinda/templates/app/controllers/jinda_org/password_resets_controller.rb +16 -18
- data/lib/generators/jinda/templates/app/controllers/jinda_org/sessions_controller.rb +13 -14
- data/lib/generators/jinda/templates/app/controllers/jinda_org/sitemap_controller.rb +4 -4
- data/lib/generators/jinda/templates/app/controllers/jinda_org/users_controller.rb +14 -14
- data/lib/generators/jinda/templates/app/controllers/mindmap_editor_controller.rb +74 -0
- data/lib/generators/jinda/templates/app/helpers/admins_helper.rb +2 -0
- data/lib/generators/jinda/templates/app/helpers/application_helper.rb +21 -20
- 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/mindmap_editor_helper.rb +3 -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 +276 -298
- data/lib/generators/jinda/templates/app/jinda/template/index.mm +1 -0
- data/lib/generators/jinda/templates/app/mailers/jinda_mailer.rb +5 -3
- data/lib/generators/jinda/templates/app/mailers/note_mailer.rb +6 -4
- data/lib/generators/jinda/templates/app/mailers/user_mailer.rb +5 -5
- data/lib/generators/jinda/templates/app/models/address.rb +10 -8
- data/lib/generators/jinda/templates/app/models/article.rb +8 -6
- data/lib/generators/jinda/templates/app/models/comment.rb +10 -8
- data/lib/generators/jinda/templates/app/models/identity.rb +11 -10
- data/lib/generators/jinda/templates/app/models/jinda/doc.rb +36 -33
- data/lib/generators/jinda/templates/app/models/jinda/jinda_module.rb +15 -0
- data/lib/generators/jinda/templates/app/models/jinda/module.rb +14 -10
- data/lib/generators/jinda/templates/app/models/jinda/notice.rb +15 -11
- data/lib/generators/jinda/templates/app/models/jinda/role.rb +11 -7
- data/lib/generators/jinda/templates/app/models/jinda/runseq.rb +23 -20
- data/lib/generators/jinda/templates/app/models/jinda/service.rb +19 -15
- data/lib/generators/jinda/templates/app/models/jinda/xmain.rb +42 -36
- data/lib/generators/jinda/templates/app/models/note.rb +14 -10
- data/lib/generators/jinda/templates/app/models/param.rb +23 -20
- data/lib/generators/jinda/templates/app/models/person.rb +9 -7
- data/lib/generators/jinda/templates/app/models/user.rb +42 -41
- data/lib/generators/jinda/templates/app/views/adminltes/dashboard1.haml +461 -0
- data/lib/generators/jinda/templates/app/views/adminltes/dashboard2.haml +656 -0
- data/lib/generators/jinda/templates/app/views/articles/show.html.haml +2 -2
- data/lib/generators/jinda/templates/app/views/identities/new.html.haml +13 -0
- data/lib/generators/jinda/templates/app/views/jinda/_static_bootstrap.haml +23 -0
- data/lib/generators/jinda/templates/app/views/jinda/feed.rss.builder +15 -13
- data/lib/generators/jinda/templates/app/views/jinda/index.html.haml +3 -2
- data/lib/generators/jinda/templates/app/views/layouts/application.haml +31 -4
- data/lib/generators/jinda/templates/app/views/layouts/lte/_flash.haml +9 -0
- data/lib/generators/jinda/templates/app/views/layouts/{bsb → lte}/_footer.haml +2 -2
- data/lib/generators/jinda/templates/app/views/layouts/lte/_header.haml +54 -0
- data/lib/generators/jinda/templates/app/views/layouts/lte/_menu.haml +42 -0
- data/lib/generators/jinda/templates/app/views/layouts/{bsb → lte}/_menu_mm.haml +7 -5
- data/lib/generators/jinda/templates/app/views/layouts/lte/_sidebar.haml +154 -0
- data/lib/generators/jinda/templates/app/views/mindmap_editor/edit.html.haml +126 -0
- data/lib/generators/jinda/templates/app/views/mindmap_editor/save.html.haml +2 -0
- data/lib/generators/jinda/templates/app/views/sessions/new.html.haml +13 -0
- data/lib/generators/jinda/templates/bin/lint_modified +21 -0
- data/lib/generators/jinda/templates/docker-compose-mongodb.yml +13 -0
- data/lib/generators/jinda/templates/docker-compose-web.yml +36 -0
- data/lib/generators/jinda/templates/docker-compose.yml +10 -14
- data/lib/generators/jinda/templates/spec/controllers/api/v1_get_index_spec.rb +15 -14
- data/lib/generators/jinda/templates/spec/controllers/api/v1_get_my_spec.rb +9 -4
- data/lib/generators/jinda/templates/spec/controllers/api/v1_post_spec.rb +4 -3
- data/lib/generators/jinda/templates/spec/controllers/sessions_controller_spec.rb +82 -90
- data/lib/generators/jinda/templates/spec/features/userlogins_spec.rb +12 -15
- data/lib/generators/jinda/templates/spec/mailers/note_spec.rb +5 -8
- data/lib/generators/jinda/templates/spec/mailers/previews/note_preview.rb +3 -5
- data/lib/generators/jinda/templates/spec/models/note_spec.rb +36 -35
- data/lib/generators/jinda/templates/spec/models/user_spec.rb +10 -8
- data/lib/generators/jinda/templates/spec/rails_helper.rb +29 -31
- data/lib/generators/jinda/templates/spec/spec_helper.rb +19 -17
- data/lib/generators/jinda/templates/spec/support/authentication_helper.rb +8 -7
- data/lib/generators/jinda/templates/spec/support/databasecleaner.rb +3 -1
- data/lib/generators/jinda/templates/spec/support/factory_bot.rb +7 -5
- data/lib/generators/jinda/templates/spec/support/omniauth_macros.rb +14 -19
- data/lib/generators/jinda/templates/spec/support/request_spec_helper.rb +3 -1
- data/lib/generators/jinda/templates/spec/views/articles/_article.html.erb_spec.rbx +9 -8
- data/lib/generators/jinda/templates/test/application_system_test_case.rb +3 -1
- data/lib/generators/jinda/templates/test/integration/jinda_routes_test.rb +16 -21
- data/lib/generators/jinda/templates/test/test_helper.rb +7 -3
- data/lib/jinda/date_helpers.rb +50 -41
- data/lib/jinda/gem_helpers.rb +10 -8
- data/lib/jinda/gen_class.rb +14 -12
- data/lib/jinda/gen_controller.rb +9 -8
- data/lib/jinda/gen_freemind.rb +33 -32
- data/lib/jinda/gen_helpers.rb +146 -139
- data/lib/jinda/gen_models.rb +125 -131
- data/lib/jinda/gen_modules.rb +21 -16
- data/lib/jinda/gen_runseq.rb +71 -67
- data/lib/jinda/gen_services.rb +74 -80
- data/lib/jinda/gen_xmain.rb +38 -36
- data/lib/jinda/get_app.rb +31 -29
- data/lib/jinda/helpers.rb +4 -4
- data/lib/jinda/init_vars.rb +41 -36
- data/lib/jinda/mindmap_converter.rb +196 -0
- data/lib/jinda/railtie.rb +10 -2
- data/lib/jinda/rake_views.rb +61 -60
- data/lib/jinda/refresh.rb +67 -61
- data/lib/jinda/themes.rb +80 -60
- data/lib/jinda/version.rb +3 -1
- data/lib/jinda.rb +2 -0
- data/lib/tasks/jinda.rake +25 -22
- data/test/INTEGRATION_TEST_README.md +374 -0
- data/test/LOCAL_DEVELOPMENT.md +345 -0
- data/test/README.md +243 -0
- data/test/TEST_INFRASTRUCTURE.md +412 -0
- data/test/TEST_INSTALLATION_SH_FIXES.md +205 -0
- data/test/UNIT_TESTS_README.md +366 -0
- data/test/api_notes_controller_test.rb +231 -0
- data/test/dummy/DOCKER.md +188 -0
- data/test/dummy/Dockerfile +15 -5
- data/test/dummy/Gemfile +37 -26
- data/test/dummy/Gemfile.lock +634 -271
- data/test/dummy/app/assets/javascripts/application.js +8 -8
- data/test/dummy/app/channels/application_cable/channel.rb +2 -0
- data/test/dummy/app/channels/application_cable/connection.rb +2 -0
- data/test/dummy/app/controllers/admins_controller.rb +4 -2
- data/test/dummy/app/controllers/api/v1/notes_controller.rb +80 -78
- data/test/dummy/app/controllers/application_controller.rb +11 -9
- data/test/dummy/app/controllers/articles_controller.rb +40 -44
- data/test/dummy/app/controllers/comments_controller.rb +10 -8
- data/test/dummy/app/controllers/ctrs_controller.rb +2 -0
- data/test/dummy/app/controllers/devs_controller.rb +2 -0
- data/test/dummy/app/controllers/docs_controller.rb +23 -24
- data/test/dummy/app/controllers/identities_controller.rb +3 -1
- data/test/dummy/app/controllers/mindmap_editor_controller.rb +74 -0
- data/test/dummy/app/controllers/notes_controller.rb +25 -27
- data/test/dummy/app/controllers/password_resets_controller.rb +16 -18
- data/test/dummy/app/controllers/sessions_controller.rb +13 -14
- data/test/dummy/app/controllers/sitemap_controller.rb +4 -4
- data/test/dummy/app/controllers/users_controller.rb +14 -14
- data/test/dummy/app/helpers/admins_helper.rb +2 -0
- data/test/dummy/app/helpers/application_helper.rb +21 -20
- data/test/dummy/app/helpers/articles_helper.rb +2 -0
- data/test/dummy/app/helpers/basic_helper.rb +2 -0
- data/test/dummy/app/helpers/comments_helper.rb +2 -0
- data/test/dummy/app/helpers/ctrs_helper.rb +2 -0
- data/test/dummy/app/helpers/devs_helper.rb +2 -0
- data/test/dummy/app/helpers/mindmap_editor_helper.rb +3 -0
- data/test/dummy/app/helpers/pictures_helper.rb +2 -0
- data/test/dummy/app/helpers/sitemap_helper.rb +2 -0
- data/test/dummy/app/helpers/users_helper.rb +2 -0
- data/test/dummy/app/jinda/index.mm +384 -486
- data/test/dummy/app/jinda/template/index.mm +1 -0
- data/test/dummy/app/mailers/jinda_mailer.rb +5 -3
- data/test/dummy/app/mailers/note_mailer.rb +6 -4
- data/test/dummy/app/mailers/user_mailer.rb +5 -5
- data/test/dummy/app/models/address.rb +2 -0
- data/test/dummy/app/models/article.rb +2 -0
- data/test/dummy/app/models/comment.rb +3 -2
- data/test/dummy/app/models/identity.rb +11 -10
- data/test/dummy/app/models/jinda/doc.rb +36 -33
- data/test/dummy/app/models/jinda/jinda_module.rb +15 -0
- data/test/dummy/app/models/jinda/module.rb +14 -10
- data/test/dummy/app/models/jinda/notice.rb +15 -11
- data/test/dummy/app/models/jinda/role.rb +11 -7
- data/test/dummy/app/models/jinda/runseq.rb +23 -20
- data/test/dummy/app/models/jinda/service.rb +19 -15
- data/test/dummy/app/models/jinda/xmain.rb +42 -36
- data/test/dummy/app/models/note.rb +3 -8
- data/test/dummy/app/models/param.rb +23 -20
- data/test/dummy/app/models/person.rb +2 -0
- data/test/dummy/app/models/picture.rb +11 -0
- data/test/dummy/app/models/user.rb +42 -41
- data/test/dummy/app/views/admins/index.haml +21 -0
- data/test/dummy/app/views/api/v1/notes/delete/select_note.html.erb +21 -0
- data/test/dummy/app/views/api/v1/notes/edit/edit_note.html.erb +21 -0
- data/test/dummy/app/views/api/v1/notes/index.haml +21 -0
- data/test/dummy/app/views/api/v1/notes/new/new_note.html.erb +21 -0
- data/test/dummy/app/views/articles/show.html.haml +2 -2
- data/test/dummy/app/views/devs/index.haml +21 -0
- data/test/dummy/app/views/identities/new.html.haml +13 -0
- data/test/dummy/app/views/jinda/feed.rss.builder +15 -13
- data/test/dummy/app/views/jinda/index.html.haml +3 -2
- data/test/dummy/app/views/layouts/application.haml +51 -4
- data/test/dummy/app/views/mindmap_editor/edit.html.haml +126 -0
- data/test/dummy/app/views/mindmap_editor/save.html.haml +2 -0
- data/test/dummy/app/views/sessions/new.html.haml +13 -0
- data/test/dummy/bin/docker-entrypoint +3 -0
- data/test/dummy/bin/lint_modified +21 -0
- data/test/dummy/bin/setup +1 -1
- data/test/dummy/config/application.rb +7 -2
- data/test/dummy/config/boot.rb +2 -1
- data/test/dummy/config/cable.yml +1 -1
- data/test/dummy/config/credentials.yml.enc +1 -1
- data/test/dummy/config/environments/development.rb +7 -1
- data/test/dummy/config/environments/production.rb +30 -26
- data/test/dummy/config/environments/test.rb +12 -8
- data/test/dummy/config/initializers/content_security_policy.rb +6 -7
- data/test/dummy/config/initializers/filter_parameter_logging.rb +3 -1
- data/test/dummy/config/initializers/mindmap_converter.rb +5 -0
- data/test/dummy/config/initializers/mongoid.rb +24 -9
- data/test/dummy/config/initializers/omniauth.rb +5 -0
- data/test/dummy/config/initializers/permissions_policy.rb +11 -9
- data/test/dummy/config/locales/en.yml +11 -13
- data/test/dummy/config/mongoid.yml +156 -51
- data/test/dummy/config/puma.rb +21 -20
- data/test/dummy/config/routes.rb +7 -1
- data/test/dummy/docker-compose-mongodb.yml +13 -0
- data/test/dummy/docker-compose-web.yml +36 -0
- data/test/dummy/docker-compose.yml +10 -14
- data/test/dummy/log/development.log +5904 -2
- data/test/dummy/spec/controllers/api/v1_get_index_spec.rb +15 -14
- data/test/dummy/spec/controllers/api/v1_get_my_spec.rb +9 -4
- data/test/dummy/spec/controllers/api/v1_post_spec.rb +4 -3
- data/test/dummy/spec/controllers/sessions_controller_spec.rb +82 -90
- data/test/dummy/spec/factories/pictures.rb +5 -0
- data/test/dummy/spec/features/userlogins_spec.rb +12 -15
- data/test/dummy/spec/mailers/note_spec.rb +5 -8
- data/test/dummy/spec/mailers/previews/note_preview.rb +3 -5
- data/test/dummy/spec/models/note_spec.rb +36 -35
- data/test/dummy/spec/models/picture_spec.rb +5 -0
- data/test/dummy/spec/models/user_spec.rb +10 -8
- data/test/dummy/spec/rails_helper.rb +29 -31
- data/test/dummy/spec/requests/ctrs_spec.rb +7 -0
- data/test/dummy/spec/requests/devs_spec.rb +7 -0
- data/test/dummy/spec/spec_helper.rb +19 -17
- data/test/dummy/spec/support/authentication_helper.rb +8 -7
- data/test/dummy/spec/support/databasecleaner.rb +3 -1
- data/test/dummy/spec/support/factory_bot.rb +7 -5
- data/test/dummy/spec/support/omniauth_macros.rb +14 -19
- data/test/dummy/spec/support/request_spec_helper.rb +3 -1
- data/test/dummy/spec/views/articles/_article.html.erb_spec.rbx +9 -8
- data/test/generated_app_test.rb +261 -0
- data/test/installation_test.rb +368 -0
- data/test/integration_test.rb +398 -0
- data/test/jenkins_stage_test.rb +182 -0
- data/test/note_model_test.rb +224 -0
- data/test/note_validation_integration_test.rb +292 -0
- data/test/run_unit_tests.sh +91 -0
- data/test/test_helper.rb +8 -16
- metadata +186 -48
- data/lib/generators/jinda/templates/app/controllers/jinda_org/password_resets.rb +0 -28
- data/lib/generators/jinda/templates/app/views/layouts/_head.html.erb +0 -10
- data/lib/generators/jinda/templates/app/views/layouts/_meta_tag.html.erb +0 -19
- data/lib/generators/jinda/templates/app/views/layouts/bsb/_header.haml +0 -147
- data/lib/generators/jinda/templates/app/views/layouts/bsb/_menu.haml +0 -47
- data/lib/generators/jinda/templates/app/views/layouts/bsb/_sidebar.haml +0 -155
- data/lib/generators/jinda/templates/app/views/layouts/bsb/application.haml-bsb +0 -47
- data/lib/generators/jinda/templates/app/views/layouts/gmail.html.erb +0 -9
- data/lib/generators/jinda/templates/app/views/layouts/jqm/_full.haml +0 -33
- data/lib/generators/jinda/templates/app/views/layouts/jqm/_page.haml +0 -16
- data/lib/generators/jinda/templates/app/views/layouts/jqm/application.haml-jqm +0 -4
- data/lib/generators/jinda/templates/app/views/layouts/mailer.html.erb +0 -13
- data/lib/generators/jinda/templates/app/views/layouts/mailer.html.haml +0 -3
- data/lib/generators/jinda/templates/app/views/layouts/mailer.text.erb +0 -1
- data/lib/generators/jinda/templates/app/views/layouts/mailer.text.haml +0 -1
- data/lib/generators/jinda/templates/app/views/layouts/mobile.html.erb +0 -13
- data/lib/generators/jinda/templates/app/views/layouts/mobilejq.html.erb +0 -31
- data/lib/generators/jinda/templates/app/views/layouts/print.html.erb +0 -22
- data/lib/generators/jinda/templates/app/views/layouts/utf8.html.erb +0 -22
- data/lib/generators/jinda/templates/config/initializers/fix_mongoid_generator.rb-org +0 -14
- data/test/dummy/README.md.bak +0 -24
- data/test/dummy/app/assets/stylesheets/application.css.bak +0 -15
- data/test/dummy/app/assets/stylesheets/application.css.scss +0 -15
- data/test/dummy/app/assets/stylesheets/jinda_jqm.css.scss +0 -32
- data/test/dummy/app/controllers/application_controller.rb.bak +0 -2
- data/test/dummy/app/controllers/password_resets.rb +0 -28
- data/test/dummy/app/helpers/application_helper.rb.bak +0 -2
- data/test/dummy/app/views/layouts/application.html.erb.bak +0 -15
- data/test/dummy/config/initializers/fix_mongoid_generator.rb-org +0 -14
- data/test/dummy/tmp/development_secret.txt +0 -1
- data/test/integration/config_generator_test.rb +0 -28
- data/test/integration/navigation_test.rb +0 -7
- data/test/jinda_test.rb +0 -7
- /data/lib/generators/jinda/templates/app/views/layouts/{bsb → lte}/_rightbar.haml +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2f9be4b459cfb98b0b6f7f3296311b062ffe48e9647eb1f98ffc6dbeb7bed1af
|
|
4
|
+
data.tar.gz: 2af8fd314ad10ddd9264a447df787e72a161467c1445c950b7e1cc0bb0bc4b35
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 678ebc069140578546cafbb1e74ffe9197d1f015f49fdd3741073e5e64a03a6362696c448194f6ec5afb3db6531515891c1ae6dab7a6fb06a6cbbb7872bb61a7
|
|
7
|
+
data.tar.gz: 3a388da43fb395a403a8a668aea954a486dd6258ee8a481a2bf0b2efa7c309f1b8a1d925dd7a251d55201a4ad9eb25e57fcff65c6beb4798584d5c5922e31765
|
data/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Jinda
|
|
2
2
|
|
|
3
|
-
Jinda is a gem to create Rails Workflow & Application Generator using Freemind
|
|
3
|
+
Jinda is a gem to create Rails Workflow & Application Generator using Freemind and coming with AI
|
|
4
4
|
|
|
5
5
|
Jinda is a tools for Ruby on Rails developer. (Required: basic Ruby on Rails )
|
|
6
6
|
|
|
@@ -17,12 +17,15 @@ Jinda is a tools for Ruby on Rails developer. (Required: basic Ruby on Rails )
|
|
|
17
17
|
- Sample app: Articles, API Note, Document
|
|
18
18
|
- Support themes: Jinda_adminlte, Jinda_adminBSB
|
|
19
19
|
- Support HTML, HAML, SCSS
|
|
20
|
+
- AI
|
|
20
21
|
<br />
|
|
21
22
|
|
|
22
23
|
# [Jinda](https://github.com/kul1/jinda)
|
|
23
24
|
|
|
24
25
|
|
|
25
|
-

|
|
27
|
+
|
|
28
|
+

|
|
26
29
|
|
|
27
30
|
## Additional Extension themes also available at
|
|
28
31
|
|
|
@@ -35,6 +38,8 @@ Jinda is a tools for Ruby on Rails developer. (Required: basic Ruby on Rails )
|
|
|
35
38
|
|
|
36
39
|
## Prerequisites
|
|
37
40
|
|
|
41
|
+
**Jinda 0.8.0+ is compatible with Ruby 3.1+ and Rails 7.0+**
|
|
42
|
+
|
|
38
43
|
These versions works for sure but others may do.
|
|
39
44
|
|
|
40
45
|
- Ruby 3.1.2
|
|
@@ -68,9 +73,7 @@ arch -x86_64 gem install nokogiri -v '1.10.10' --platform=ruby -- --use-system-l
|
|
|
68
73
|
|
|
69
74
|
### Screen shot install Jinda
|
|
70
75
|
|
|
71
|
-
[
|
|
72
|
-
<br />
|
|
73
|
-
[](https://www.youtube.com/watch?v=XUXv7Yrskjk&feature=youtu.be)
|
|
76
|
+
[Watch install video on YouTube](https://www.youtube.com/watch?v=XUXv7Yrskjk)
|
|
74
77
|
|
|
75
78
|
### Sample Jinda in Docker
|
|
76
79
|
|
data/Rakefile
CHANGED
|
@@ -1,3 +1,105 @@
|
|
|
1
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'rake/testtask'
|
|
4
|
+
|
|
5
|
+
# RuboCop task (optional - only loads if gem is available)
|
|
6
|
+
# This makes the Rakefile work in CI environments where RuboCop may not be installed yet
|
|
7
|
+
begin
|
|
8
|
+
require 'rubocop/rake_task'
|
|
9
|
+
RuboCop::RakeTask.new(:rubocop) do |task|
|
|
10
|
+
task.options = ['--config', '.rubocop.yml']
|
|
11
|
+
task.fail_on_error = true
|
|
12
|
+
end
|
|
13
|
+
RUBOCOP_AVAILABLE = true
|
|
14
|
+
rescue LoadError
|
|
15
|
+
# RuboCop not available - will be skipped in default task
|
|
16
|
+
RUBOCOP_AVAILABLE = false
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# Installation test task (runs first)
|
|
20
|
+
Rake::TestTask.new(:test_installation) do |t|
|
|
21
|
+
t.libs << 'test'
|
|
22
|
+
t.libs << 'lib'
|
|
23
|
+
t.test_files = FileList['test/installation_test.rb']
|
|
24
|
+
t.verbose = true
|
|
25
|
+
t.warning = false
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# Integration test task (runs after installation)
|
|
29
|
+
Rake::TestTask.new(:test_integration) do |t|
|
|
30
|
+
t.libs << 'test'
|
|
31
|
+
t.libs << 'lib'
|
|
32
|
+
t.test_files = FileList['test/integration_test.rb']
|
|
33
|
+
t.verbose = true
|
|
34
|
+
t.warning = false
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# Unit tests - fast static analysis tests (no app generation)
|
|
38
|
+
Rake::TestTask.new(:test_unit) do |t|
|
|
39
|
+
t.libs << 'test'
|
|
40
|
+
t.libs << 'lib'
|
|
41
|
+
t.test_files = FileList[
|
|
42
|
+
'test/jenkins_stage_test.rb',
|
|
43
|
+
'test/note_model_test.rb',
|
|
44
|
+
'test/api_notes_controller_test.rb',
|
|
45
|
+
'test/note_validation_integration_test.rb'
|
|
46
|
+
]
|
|
47
|
+
t.verbose = true
|
|
48
|
+
t.warning = false
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# Test groups for parallel CI execution
|
|
52
|
+
namespace :test do
|
|
53
|
+
desc 'Run unit tests (static analysis - fast)'
|
|
54
|
+
task :unit do
|
|
55
|
+
Rake::Task['test_unit'].invoke
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
desc 'Run installation tests (generates test app)'
|
|
59
|
+
task :installation do
|
|
60
|
+
Rake::Task['test_installation'].invoke
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
desc 'Run integration tests (uses generated app from installation test)'
|
|
64
|
+
task :integration do
|
|
65
|
+
Rake::Task['test_integration'].invoke
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
desc 'Run generated app tests (tests in test/dummy if exists)'
|
|
69
|
+
task :generated_app do
|
|
70
|
+
dummy_path = File.expand_path('test/dummy', __dir__)
|
|
71
|
+
if File.directory?(dummy_path)
|
|
72
|
+
puts "=== Running tests in generated app: #{dummy_path} ==="
|
|
73
|
+
Dir.chdir(dummy_path) do
|
|
74
|
+
sh 'bundle exec rake test' if File.exist?('Rakefile')
|
|
75
|
+
sh 'bundle exec rspec' if File.directory?('spec')
|
|
76
|
+
end
|
|
77
|
+
else
|
|
78
|
+
puts "⚠️ No test/dummy directory found. Run generators first."
|
|
79
|
+
puts " To create test/dummy: cd test && rails new dummy -BOTJ && cd dummy && [run generators]"
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
desc 'Run gem-level tests (unit + installation)'
|
|
84
|
+
task gem: %i[unit installation]
|
|
85
|
+
|
|
86
|
+
desc 'Run all tests including generated app'
|
|
87
|
+
task all: %i[unit installation integration]
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
# Default test task (unit + installation for quick local feedback)
|
|
91
|
+
task test: %i[test_unit test_installation]
|
|
92
|
+
|
|
93
|
+
# Convenience task for full test suite
|
|
94
|
+
task test_all: ['test:all']
|
|
95
|
+
|
|
96
|
+
# Default task - only includes rubocop if available
|
|
97
|
+
if defined?(RUBOCOP_AVAILABLE) && RUBOCOP_AVAILABLE
|
|
98
|
+
task default: %i[rubocop test]
|
|
99
|
+
else
|
|
100
|
+
task default: :test
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
task console: :environment do
|
|
2
104
|
exec 'irb -r jinda -I ./lib'
|
|
3
105
|
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// This is a manifest file for Jinda Bootstrap theme
|
|
2
|
+
// Replaces jQuery Mobile with Bootstrap 5
|
|
3
|
+
//
|
|
4
|
+
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
|
5
|
+
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
|
|
6
|
+
//
|
|
7
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
|
8
|
+
// the compiled file.
|
|
9
|
+
//
|
|
10
|
+
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
|
|
11
|
+
// GO AFTER THE REQUIRES BELOW.
|
|
12
|
+
//
|
|
13
|
+
//= require jquery
|
|
14
|
+
//= require jquery_ujs
|
|
15
|
+
//= require bootstrap-sprockets
|
|
16
|
+
//= require jinda
|
|
17
|
+
// require turbolinks
|
|
18
|
+
// require disable_enter_key.js
|
|
19
|
+
|
|
20
|
+
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/* Jinda Bootstrap Theme - Maintains Original Jinda Look & Feel */
|
|
2
|
+
|
|
3
|
+
/* ========== Variables ========== */
|
|
4
|
+
$jinda-primary: #3388cc;
|
|
5
|
+
$jinda-header-bg: #3388cc;
|
|
6
|
+
$jinda-sidebar-bg: #f7f7f7;
|
|
7
|
+
$jinda-sidebar-active: #ddd;
|
|
8
|
+
|
|
9
|
+
/* ========== Layout ========== */
|
|
10
|
+
body {
|
|
11
|
+
font-family: 'Sarabun', Arial, sans-serif;
|
|
12
|
+
margin: 0;
|
|
13
|
+
padding: 0;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/* ========== Header ========== */
|
|
17
|
+
.jinda-header {
|
|
18
|
+
background-color: $jinda-header-bg;
|
|
19
|
+
color: white;
|
|
20
|
+
padding: 15px;
|
|
21
|
+
position: fixed;
|
|
22
|
+
top: 0;
|
|
23
|
+
left: 0;
|
|
24
|
+
right: 0;
|
|
25
|
+
z-index: 1000;
|
|
26
|
+
|
|
27
|
+
h1 {
|
|
28
|
+
margin: 0;
|
|
29
|
+
font-size: 20px;
|
|
30
|
+
font-weight: normal;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.navbar-toggler {
|
|
34
|
+
border-color: rgba(255, 255, 255, 0.5);
|
|
35
|
+
|
|
36
|
+
.navbar-toggler-icon {
|
|
37
|
+
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.75)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/* ========== Sidebar/Menu ========== */
|
|
43
|
+
.jinda-sidebar {
|
|
44
|
+
position: fixed;
|
|
45
|
+
top: 60px;
|
|
46
|
+
left: 0;
|
|
47
|
+
bottom: 0;
|
|
48
|
+
width: 250px;
|
|
49
|
+
background-color: $jinda-sidebar-bg;
|
|
50
|
+
overflow-y: auto;
|
|
51
|
+
border-right: 1px solid #ddd;
|
|
52
|
+
padding: 0;
|
|
53
|
+
|
|
54
|
+
.nav {
|
|
55
|
+
flex-direction: column;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.nav-link {
|
|
59
|
+
color: #333;
|
|
60
|
+
padding: 10px 15px;
|
|
61
|
+
border-radius: 0;
|
|
62
|
+
|
|
63
|
+
&:hover {
|
|
64
|
+
background-color: $jinda-sidebar-active;
|
|
65
|
+
color: #000;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
&.active {
|
|
69
|
+
background-color: $jinda-sidebar-active;
|
|
70
|
+
color: #000;
|
|
71
|
+
font-weight: bold;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// Nested menu items
|
|
76
|
+
.nav .nav {
|
|
77
|
+
padding-left: 20px;
|
|
78
|
+
|
|
79
|
+
.nav-link {
|
|
80
|
+
padding: 8px 15px;
|
|
81
|
+
font-size: 0.9em;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// Module headers
|
|
86
|
+
.module-header {
|
|
87
|
+
font-weight: bold;
|
|
88
|
+
padding: 15px 15px 5px 15px;
|
|
89
|
+
color: #666;
|
|
90
|
+
text-transform: uppercase;
|
|
91
|
+
font-size: 0.85em;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/* ========== Main Content ========== */
|
|
96
|
+
.jinda-content {
|
|
97
|
+
margin-top: 60px;
|
|
98
|
+
margin-left: 250px;
|
|
99
|
+
padding: 20px;
|
|
100
|
+
|
|
101
|
+
@media (max-width: 768px) {
|
|
102
|
+
margin-left: 0;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/* ========== Buttons ========== */
|
|
107
|
+
.btn-jinda-primary {
|
|
108
|
+
background-color: $jinda-primary;
|
|
109
|
+
border-color: $jinda-primary;
|
|
110
|
+
color: white;
|
|
111
|
+
|
|
112
|
+
&:hover {
|
|
113
|
+
background-color: darken($jinda-primary, 10%);
|
|
114
|
+
border-color: darken($jinda-primary, 10%);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/* ========== Forms ========== */
|
|
119
|
+
.jinda-form {
|
|
120
|
+
.form-label {
|
|
121
|
+
font-weight: 500;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.form-control {
|
|
125
|
+
border-radius: 4px;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/* ========== Tables ========== */
|
|
130
|
+
.jinda-table {
|
|
131
|
+
width: 100%;
|
|
132
|
+
|
|
133
|
+
th {
|
|
134
|
+
background-color: #f5f5f5;
|
|
135
|
+
font-weight: 600;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/* ========== Mobile Responsive ========== */
|
|
140
|
+
@media (max-width: 768px) {
|
|
141
|
+
.jinda-sidebar {
|
|
142
|
+
left: -250px;
|
|
143
|
+
transition: left 0.3s ease;
|
|
144
|
+
|
|
145
|
+
&.show {
|
|
146
|
+
left: 0;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.jinda-content {
|
|
151
|
+
margin-left: 0;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/* ========== Offcanvas Menu (Mobile) ========== */
|
|
156
|
+
.offcanvas-jinda {
|
|
157
|
+
width: 250px;
|
|
158
|
+
background-color: $jinda-sidebar-bg;
|
|
159
|
+
|
|
160
|
+
.offcanvas-header {
|
|
161
|
+
background-color: $jinda-header-bg;
|
|
162
|
+
color: white;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.offcanvas-body {
|
|
166
|
+
padding: 0;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/* ========== Search & Static Pages ========== */
|
|
171
|
+
.jinda-static {
|
|
172
|
+
padding: 20px;
|
|
173
|
+
|
|
174
|
+
.btn {
|
|
175
|
+
margin: 5px 0;
|
|
176
|
+
width: 100%;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/* ========== Social Login ========== */
|
|
181
|
+
.login-box {
|
|
182
|
+
padding: 15px;
|
|
183
|
+
text-align: center;
|
|
184
|
+
|
|
185
|
+
.social-button {
|
|
186
|
+
display: block;
|
|
187
|
+
margin: 10px auto;
|
|
188
|
+
max-width: 250px;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* This is a manifest file
|
|
3
|
-
*
|
|
2
|
+
* This is a manifest file for Jinda Bootstrap theme
|
|
3
|
+
* Replaces jQuery Mobile with Bootstrap 5
|
|
4
4
|
*
|
|
5
5
|
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
|
|
6
6
|
* or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
|
|
@@ -11,21 +11,23 @@
|
|
|
11
11
|
*= require normalize-rails
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
@import "
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
// Import Bootstrap 5
|
|
15
|
+
@import "bootstrap";
|
|
16
|
+
|
|
17
|
+
// Import Font Awesome
|
|
18
|
+
@import "font-awesome-sprockets";
|
|
19
|
+
@import "font-awesome";
|
|
20
|
+
|
|
21
|
+
// Import custom Jinda styles (keep existing styles)
|
|
18
22
|
@import "sarabun";
|
|
19
23
|
@import "jinda";
|
|
20
24
|
@import "kul-4.2";
|
|
21
25
|
@import "articles";
|
|
22
26
|
@import "app.scss";
|
|
23
|
-
@import "font-awesome-sprockets";
|
|
24
|
-
@import "font-awesome";
|
|
25
27
|
@import "social";
|
|
26
28
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
+
// Import custom Bootstrap theme for Jinda
|
|
30
|
+
@import "jinda_bootstrap_theme";
|
|
29
31
|
|
|
30
32
|
|
|
31
33
|
|
data/app/config/routes.rb
CHANGED
|
@@ -1,30 +1,36 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
Rails.application.routes.draw do
|
|
2
4
|
# start jiinda method routes
|
|
3
|
-
jinda_methods
|
|
4
|
-
jinda_methods += [
|
|
5
|
-
jinda_methods += [
|
|
6
|
-
jinda_methods += [
|
|
7
|
-
jinda_methods.each do |aktion|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
post
|
|
11
|
-
post
|
|
5
|
+
jinda_methods = %w[pending status search doc doc_print logs ajax_notice]
|
|
6
|
+
jinda_methods += %w[init run run_mail document run_do run_form end_form]
|
|
7
|
+
jinda_methods += %w[run_redirect run_direct_to run_if]
|
|
8
|
+
jinda_methods += %w[error_logs notice_logs cancel run_output end_output]
|
|
9
|
+
jinda_methods.each do |aktion|
|
|
10
|
+
get "/jinda/#{aktion}" => "jinda##{aktion}"
|
|
11
|
+
end
|
|
12
|
+
post "/jinda/init" => "jinda#init"
|
|
13
|
+
post "/jinda/pending" => "jinda#index"
|
|
14
|
+
post "/jinda/end_form" => "jinda#end_form"
|
|
15
|
+
post "/jinda/end_output" => "jinda#end_output"
|
|
12
16
|
# end jinda method routes
|
|
13
|
-
post
|
|
14
|
-
get
|
|
15
|
-
get
|
|
16
|
-
get
|
|
17
|
-
get
|
|
18
|
-
get
|
|
19
|
-
get
|
|
20
|
-
get
|
|
21
|
-
get
|
|
22
|
-
get
|
|
23
|
-
get
|
|
24
|
-
get
|
|
25
|
-
get
|
|
26
|
-
get
|
|
27
|
-
resources :articles do
|
|
17
|
+
post "/auth/:provider/callback" => "sessions#create"
|
|
18
|
+
get "/auth/:provider/callback" => "sessions#create"
|
|
19
|
+
get "/auth/failure" => "sessions#failure"
|
|
20
|
+
get "/logout" => "sessions#destroy", :as => "logout"
|
|
21
|
+
get "/articles/my" => "articles#my"
|
|
22
|
+
get "/articles/my/destroy" => "articles#destroy"
|
|
23
|
+
get "/articles/show" => "articles/show"
|
|
24
|
+
get "/articles/edit" => "articles/edit"
|
|
25
|
+
get "/docs/my" => "docs/my"
|
|
26
|
+
get "/notes/my" => "notes/my"
|
|
27
|
+
get "/docs/my/destroy" => "docs#destroy"
|
|
28
|
+
get "/notes/my/destroy/:id" => "notes#destroy"
|
|
29
|
+
get "/notes/destroy/:id" => "notes#destroy"
|
|
30
|
+
get "/jinda/document/:id" => "jinda#document"
|
|
31
|
+
resources :articles do
|
|
32
|
+
resources :comments
|
|
33
|
+
end
|
|
28
34
|
resources :comments
|
|
29
35
|
resources :notes
|
|
30
36
|
resources :docs
|
|
@@ -32,13 +38,17 @@ Rails.application.routes.draw do
|
|
|
32
38
|
resources :identities
|
|
33
39
|
resources :sessions
|
|
34
40
|
resources :password_resets
|
|
35
|
-
resources :jinda, :
|
|
41
|
+
resources :jinda, only: %i[index new]
|
|
36
42
|
# root :to => 'jinda#index'
|
|
37
43
|
# api
|
|
38
|
-
get
|
|
39
|
-
post
|
|
44
|
+
get "/api/v1/notes/my" => "api/v1/notes#my"
|
|
45
|
+
post "/api/v1/notes" => "api/v1/notes#create", as: "api_v1_notes"
|
|
40
46
|
namespace :api do
|
|
41
|
-
|
|
47
|
+
namespace :v1 do
|
|
48
|
+
resources :notes, only: [:index]
|
|
49
|
+
end
|
|
42
50
|
end
|
|
43
51
|
# For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
|
|
44
52
|
end
|
|
53
|
+
# Define Routes constant
|
|
54
|
+
Routes = Rails.application.routes
|