jinda 0.7.7.4 → 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 +46 -29
- data/Rakefile +103 -1
- data/app/assets/config/manifest.js +4 -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 +305 -148
- 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/config/manifest.js +4 -0
- data/lib/generators/jinda/templates/app/assets/javascripts/application.js +8 -8
- 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/{test/dummy → lib/generators/jinda/templates}/app/controllers/adminltes_controller.rb +1 -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/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/_header.haml +54 -0
- data/{test/dummy → lib/generators/jinda/templates}/app/views/layouts/lte/_sidebar.haml +1 -1
- 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/config/mongoid.yml +3 -3
- data/lib/generators/jinda/templates/config/mongoid.yml-docker +3 -3
- data/lib/generators/jinda/templates/config/mongoid.yml-localhost +3 -3
- 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 -7
- data/test/dummy/Gemfile +38 -29
- data/test/dummy/Gemfile.lock +671 -292
- data/test/dummy/app/assets/config/manifest.js +4 -0
- 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/application_mailer.rb +2 -2
- data/test/dummy/app/mailers/application_mailer.rb-org +4 -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/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 +2 -2
- 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/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 +2 -2
- data/test/dummy/config/initializers/filter_parameter_logging.rb +3 -3
- 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 +172 -53
- data/test/dummy/config/mongoid.yml-docker +3 -3
- data/test/dummy/config/mongoid.yml-localhost +3 -3
- 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 -18
- data/test/dummy/log/development.log +5834 -2261
- 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 +188 -60
- data/lib/generators/jinda/templates/app/assets/stylesheets/application.css.scss +0 -15
- 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/_footer.haml +0 -7
- 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/_menu_mm.haml +0 -34
- 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/Guardfile +0 -96
- 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/identities/new-bak.html.haml +0 -32
- data/test/dummy/app/views/layouts/application.haml.bak +0 -4
- data/test/dummy/app/views/layouts/application.html.erb.bak +0 -15
- data/test/dummy/app/views/layouts/lte/_header.haml +0 -111
- data/test/dummy/app/views/layouts/lte/_rightbar.haml +0 -123
- data/test/dummy/app/views/sessions/new-bak.html.haml +0 -22
- data/test/dummy/config/initializers/fix_mongoid_generator.rb-org +0 -14
- data/test/dummy/tmp/development_secret.txt +0 -1
- data/test/integration/navigation_test.rb +0 -7
- data/test/jinda_test.rb +0 -7
- /data/{test/dummy → lib/generators/jinda/templates}/app/assets/stylesheets/application.scss +0 -0
- /data/{test/dummy → lib/generators/jinda/templates}/app/assets/stylesheets/jinda.scss +0 -0
- /data/lib/generators/jinda/templates/app/mailers/{application_mailer.rb → application_mailer.rb-org} +0 -0
- /data/{test/dummy → lib/generators/jinda/templates}/app/views/adminltes/dashboard1.haml +0 -0
- /data/{test/dummy → lib/generators/jinda/templates}/app/views/adminltes/dashboard2.haml +0 -0
- /data/{test/dummy → lib/generators/jinda/templates}/app/views/layouts/lte/_flash.haml +0 -0
- /data/{test/dummy → lib/generators/jinda/templates}/app/views/layouts/lte/_footer.haml +0 -0
- /data/{test/dummy → lib/generators/jinda/templates}/app/views/layouts/lte/_menu.haml +0 -0
- /data/{test/dummy → lib/generators/jinda/templates}/app/views/layouts/lte/_menu_mm.haml +0 -0
- /data/lib/generators/jinda/templates/app/views/layouts/{bsb → lte}/_rightbar.haml +0 -0
|
@@ -1,66 +1,67 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
class User
|
|
2
4
|
include Mongoid::Document
|
|
3
|
-
# https://docs.mongodb.com/mongoid/master/tutorials/mongoid-indexes/
|
|
4
|
-
index({ code: 1 }, { unique: true, name: "code_index" })
|
|
5
|
-
before_create {generate_token(:auth_token)}
|
|
6
|
-
field :provider, :type => String
|
|
7
|
-
field :uid, :type => String
|
|
8
|
-
field :code, :type => String
|
|
9
|
-
field :email, :type => String
|
|
10
|
-
field :role, :type => String
|
|
11
|
-
field :user, :type => String
|
|
12
|
-
field :auth_token, :type => String
|
|
13
|
-
field :password_reset_token, :type => String
|
|
14
|
-
field :password_reset_sent_at,:type => DateTime
|
|
15
|
-
field :image, :type => String
|
|
16
5
|
|
|
17
|
-
|
|
18
|
-
|
|
6
|
+
# https://docs.mongodb.com/mongoid/master/tutorials/mongoid-indexes/
|
|
7
|
+
index({ code: 1 }, { unique: true, name: 'code_index' })
|
|
8
|
+
before_create { generate_token(:auth_token) }
|
|
9
|
+
field :provider, type: String
|
|
10
|
+
field :uid, type: String
|
|
11
|
+
field :code, type: String
|
|
12
|
+
field :email, type: String
|
|
13
|
+
field :role, type: String
|
|
14
|
+
field :user, type: String
|
|
15
|
+
field :auth_token, type: String
|
|
16
|
+
field :password_reset_token, type: String
|
|
17
|
+
field :password_reset_sent_at, type: DateTime
|
|
18
|
+
field :image, type: String
|
|
19
|
+
|
|
20
|
+
belongs_to :identity, polymorphic: true, optional: true
|
|
21
|
+
has_many :xmains, class_name: 'Jinda::Xmain'
|
|
19
22
|
validates :code,
|
|
20
|
-
|
|
21
|
-
|
|
23
|
+
presence: true,
|
|
24
|
+
uniqueness: true
|
|
22
25
|
|
|
23
26
|
## Add to create forgot password
|
|
24
27
|
def generate_token(column)
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
end
|
|
28
|
-
#end while User.exists?(column => self[column])
|
|
28
|
+
self[column] = SecureRandom.urlsafe_base64
|
|
29
|
+
|
|
30
|
+
# end while User.exists?(column => self[column])
|
|
29
31
|
end
|
|
30
32
|
|
|
31
33
|
def has_role(role1)
|
|
32
|
-
|
|
34
|
+
role.upcase.split(',').include?(role1.upcase)
|
|
33
35
|
end
|
|
34
|
-
|
|
36
|
+
|
|
35
37
|
def self.from_omniauth(auth)
|
|
36
|
-
|
|
37
|
-
|
|
38
|
+
# Rails now no longer support slice
|
|
39
|
+
# where(auth.slice(:uid, :provider, :email)).first_or_create do |user|
|
|
38
40
|
where(uid: auth.uid, provider: auth.provider, email: auth.info.email).first_or_create do |user|
|
|
39
|
-
case auth.provider
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
end
|
|
41
|
+
case auth.provider
|
|
42
|
+
when 'identity'
|
|
43
|
+
identity = Identity.find auth.uid
|
|
44
|
+
user.code = identity.code
|
|
45
|
+
user.email = identity.email
|
|
46
|
+
else
|
|
47
|
+
user.email = auth.info.email
|
|
48
|
+
user.uid = auth.uid
|
|
49
|
+
user.provider = auth.provider
|
|
50
|
+
user.code = auth.info.name
|
|
51
|
+
user.role = 'M'
|
|
52
|
+
user.image = auth.info.image
|
|
52
53
|
end
|
|
53
54
|
end
|
|
54
|
-
|
|
55
|
+
end
|
|
56
|
+
|
|
55
57
|
def ma_secured?
|
|
56
58
|
role.upcase.split(',').include?(ma_secured_ROLE)
|
|
57
59
|
end
|
|
58
|
-
|
|
60
|
+
|
|
59
61
|
def send_password_reset
|
|
60
62
|
generate_token(:password_reset_token)
|
|
61
63
|
self.password_reset_sent_at = Time.zone.now
|
|
62
64
|
save!
|
|
63
65
|
UserMailer.password_reset(self).deliver
|
|
64
66
|
end
|
|
65
|
-
|
|
66
67
|
end
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
= link_to image_tag('pencil.png', style:'border:none; float:right;', id: 'article_pen'), {controller: "articles", action: "edit", article_id: @article.id}, data: { confirm: "Please Confirm" }
|
|
11
11
|
%div.font-weight-light
|
|
12
12
|
by
|
|
13
|
-
%
|
|
13
|
+
%i.img-circle{"aria-hidden" => "true", class: "fa fa-user", style: "font-size: 48px; color: #999;"}
|
|
14
14
|
%div.font-weight-light
|
|
15
15
|
= @show[:user][:code]
|
|
16
16
|
%div.font-weight-light
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
%div.inner
|
|
28
28
|
%div.font-weight-light
|
|
29
29
|
- user_image = get_user_image(comment.user_id)
|
|
30
|
-
%
|
|
30
|
+
%i.comment-user-image{"aria-hidden" => "true", class: "fa fa-user", style: "width: 45px; height: 45px; font-size: 24px; color: #bbb; text-align: center; line-height: 45px; background: #f4f4f4; border-radius: 50%; display: inline-block;"}
|
|
31
31
|
|
|
32
32
|
%div.font-weight-light
|
|
33
33
|
Author:
|
|
@@ -3,6 +3,19 @@
|
|
|
3
3
|
- @title= 'Sign Up'
|
|
4
4
|
= form_tag "/auth/identity/register", {'data-ajax'=>'false'} do
|
|
5
5
|
%h1.h3.mb-3.font-weight-normal{:style => "text-align: center"} Sign Up
|
|
6
|
+
%p.hint-text Sign Up with your social media account or Username
|
|
7
|
+
.social-btn.text-center
|
|
8
|
+
%a.btn.btn-primary.btn-lg{:href => "/auth/facebook"}
|
|
9
|
+
%i.fa.fa-facebook
|
|
10
|
+
Facebook
|
|
11
|
+
%a.btn.btn-info.btn-lg{:href => "#"}
|
|
12
|
+
%i.fa.fa-twitter
|
|
13
|
+
Twitter
|
|
14
|
+
%a.btn.btn-danger.btn-lg{:href => "/auth/google_oauth2"}
|
|
15
|
+
%i.fa.fa-google
|
|
16
|
+
Google
|
|
17
|
+
.or-seperator
|
|
18
|
+
%b or
|
|
6
19
|
.sign_in
|
|
7
20
|
.label-warning
|
|
8
21
|
= flash[:alert]
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
.modal.fade#searchModal{"aria-hidden" => "true", "aria-labelledby" => "searchModalLabel", "tabindex" => "-1"}
|
|
2
|
+
.modal-dialog
|
|
3
|
+
.modal-content
|
|
4
|
+
.modal-header
|
|
5
|
+
%h5.modal-title#searchModalLabel Search
|
|
6
|
+
%button.btn-close{"aria-label" => "Close", "data-bs-dismiss" => "modal", "type" => "button"}
|
|
7
|
+
.modal-body.jinda-static
|
|
8
|
+
/ Search form
|
|
9
|
+
- form_tag({:controller=>"jinda", :action=>"search"}, :method => "get", :class => "mb-3" ) do
|
|
10
|
+
.mb-3
|
|
11
|
+
= text_field_tag :q, "", :type=>"search", :required=>true, :placeholder=>"key word", :class => "form-control"
|
|
12
|
+
= submit_tag "Search", :class => "btn btn-jinda-primary w-100"
|
|
13
|
+
|
|
14
|
+
/ Status form
|
|
15
|
+
- form_tag({:controller=>"jinda", :action=>"status"}, :method => "get", :class => "mb-3" ) do
|
|
16
|
+
.mb-3
|
|
17
|
+
= text_field_tag :id, nil, :required=>true, :placeholder=>"task number", :class => "form-control"
|
|
18
|
+
= submit_tag "Status", :class => "btn btn-jinda-primary w-100"
|
|
19
|
+
|
|
20
|
+
/ Action buttons
|
|
21
|
+
= link_to "Pending Tasks", "/jinda/pending", :class => "btn btn-jinda-primary w-100 mb-2"
|
|
22
|
+
= link_to "Refresh", "#", :onclick=>"window.location.replace('/')", :class => "btn btn-outline-secondary w-100 mb-2"
|
|
23
|
+
= link_to "About", "#about", :class => "btn btn-outline-secondary w-100"
|
|
@@ -1,24 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
xml.instruct! # <?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
xml.comment!
|
|
3
|
-
xml.feed
|
|
4
|
-
xml.title
|
|
5
|
-
# xml.subtitle h(@feed.subtitle), "type" => 'html'
|
|
6
|
-
xml.link url_for(
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
xml.comment! 'a comment' # <!-- a comment -->
|
|
5
|
+
xml.feed 'xmlns' => 'http://www.w3.org/2005/Atom' do
|
|
6
|
+
xml.title 'My Atom Feed'
|
|
7
|
+
# xml.subtitle h(@feed.subtitle), "type" => 'html'
|
|
8
|
+
xml.link url_for(only_path: false,
|
|
9
|
+
controller: 'main',
|
|
10
|
+
action: 'atom')
|
|
9
11
|
xml.updated Time.now.iso8601
|
|
10
12
|
xml.author do
|
|
11
|
-
xml.name
|
|
12
|
-
xml.email
|
|
13
|
+
xml.name 'Jens-Christian Fischer'
|
|
14
|
+
xml.email 'jcfischer@gmail.com'
|
|
13
15
|
end
|
|
14
16
|
@waypoints.each do |entry|
|
|
15
17
|
xml.entry do
|
|
16
18
|
xml.code entry.code
|
|
17
19
|
xml.title entry.name
|
|
18
|
-
xml.link
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
xml.link 'href' => url_for(only_path: false,
|
|
21
|
+
controller: 'entries',
|
|
22
|
+
action: 'show',
|
|
23
|
+
id: entry)
|
|
22
24
|
xml.id entry.uid
|
|
23
25
|
xml.updated entry.updated_at.iso8601
|
|
24
26
|
xml.summary h(entry.description)
|
|
@@ -1,4 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
%doctype
|
|
2
|
+
%html
|
|
3
|
+
%head
|
|
4
|
+
%meta{:content => "text/html; charset=UTF-8", "http-equiv" => "Content-Type"}/
|
|
5
|
+
= csrf_meta_tags
|
|
6
|
+
/ %link{:href => "https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic", :rel => "stylesheet"}/
|
|
7
|
+
%title Jinda AdminLTE 2 | Starter
|
|
8
|
+
= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload'
|
|
9
|
+
= javascript_include_tag "application", 'data-turbolinks-track': 'reload'
|
|
10
|
+
%body.hold-transition.skin-blue.sidebar-mini
|
|
11
|
+
.wrapper{style: "height: auto; min-height: 100%; background-color: #7c7c7d;"}
|
|
12
|
+
= render "layouts/lte/header"
|
|
13
|
+
= render "layouts/lte/sidebar"
|
|
14
|
+
.content-wrapper
|
|
15
|
+
%h3.box-title
|
|
16
|
+
= @page_title
|
|
17
|
+
= render 'layouts/lte/flash'
|
|
18
|
+
.label-warning
|
|
19
|
+
#flashes
|
|
20
|
+
- if flash[:notice]
|
|
21
|
+
%p#flash_notice.messages.notice= flash[:notice]
|
|
22
|
+
= javascript_tag "$('#flash_notice').effect('highlight',{},1000);"
|
|
23
|
+
- if flash[:error] || flash[:errors]
|
|
24
|
+
%p#flash_errors.messages.errors= flash[:error] || flash[:errors]
|
|
25
|
+
= javascript_tag "$('#flash_errors').effect('highlight',{},1000);"
|
|
26
|
+
- flash[:error] = flash[:errors] = flash[:notice] = nil
|
|
27
|
+
= yield
|
|
28
|
+
= render 'layouts/lte/footer'
|
|
29
|
+
.control-sidebar-bg
|
|
30
|
+
/ REQUIRED JS SCRIPTS
|
|
31
|
+
/ jQuery 3
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
|
|
2
|
+
%header.main-header
|
|
3
|
+
/ Logo
|
|
4
|
+
%a.logo{:href => root_path}
|
|
5
|
+
/ mini logo for sidebar mini 50x50 pixels
|
|
6
|
+
%span.logo-mini
|
|
7
|
+
%b> J
|
|
8
|
+
LTE
|
|
9
|
+
/ logo for regular state and mobile devices
|
|
10
|
+
%span.logo-lg
|
|
11
|
+
%b Jinda
|
|
12
|
+
/ Header Navbar: style can be found in header.less
|
|
13
|
+
%nav.navbar.navbar-static-top
|
|
14
|
+
/ Sidebar toggle button
|
|
15
|
+
%a.sidebar-toggle{"data-toggle" => "push-menu", :href => "#", :role => "button"}
|
|
16
|
+
%span.sr-only Toggle lte
|
|
17
|
+
|
|
18
|
+
.navbar-custom-menu
|
|
19
|
+
%ul.nav.navbar-nav
|
|
20
|
+
/ Removed messages, notifications, tasks icons for clean look
|
|
21
|
+
%li.dropdown.user.user-menu
|
|
22
|
+
%a.dropdown-toggle{"data-toggle" => "dropdown", :href => "#", style: "display: flex; align-items: center; gap: 5px;"}
|
|
23
|
+
- get_login_user_info
|
|
24
|
+
%i.user-image{"aria-hidden" => "true", class: "fa fa-user", style: "vertical-align: middle; margin-right: 5px; line-height: 1; font-size: 18px; color: #bbb;"}
|
|
25
|
+
%span.hidden-xs #{$user_name}
|
|
26
|
+
%ul.dropdown-menu
|
|
27
|
+
%li.user-header
|
|
28
|
+
%i{"aria-hidden" => "true", class: "fa fa-user", style: "font-size: 48px; vertical-align: middle; color: #bbb;"}
|
|
29
|
+
%p
|
|
30
|
+
#{$user_name} - Developer
|
|
31
|
+
%small Member since Nov. 2012
|
|
32
|
+
|
|
33
|
+
- if !login?
|
|
34
|
+
%li.user-body
|
|
35
|
+
/ Add Profile and Status here
|
|
36
|
+
%li
|
|
37
|
+
.col-xs-4.text-center
|
|
38
|
+
%a{:href => '/auth/facebook', "data-panel" => "main", rel: "external"}
|
|
39
|
+
%i.fa.fa-facebook
|
|
40
|
+
.col-xs-4.text-center
|
|
41
|
+
%a{:href => '/auth/google_oauth2', "data-panel" => "main", rel: "external"}
|
|
42
|
+
%i.fa.fa-google
|
|
43
|
+
%li.user-footer
|
|
44
|
+
.pull-right
|
|
45
|
+
- if login?
|
|
46
|
+
%li
|
|
47
|
+
%a.btn.btn-default.btn-flat{"data-panel" => "main", :href => logout_path, "data-ajax"=>"false"} Sign Out
|
|
48
|
+
- else
|
|
49
|
+
%li
|
|
50
|
+
%a.btn.btn-default.btn-flat{:href =>new_session_path,"data-panel" => "main"}
|
|
51
|
+
%i.fa.fa-circle-o
|
|
52
|
+
%span
|
|
53
|
+
Sign In
|
|
54
|
+
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
.pull-left.image
|
|
5
5
|
=# %img.img-circle{:alt => "User Image", :src => asset_url("dist/img/user2-160x160.jpg")}/
|
|
6
6
|
- get_login_user_info
|
|
7
|
-
%
|
|
7
|
+
%i.img-circle{"aria-hidden" => "true", class: "fa fa-user", style: "font-size: 32px; color: #bbb; width: 45px; height: 45px; line-height: 45px; text-align: center; background: #f4f4f4; border-radius: 50%; display: inline-block;"}
|
|
8
8
|
.pull-left.info
|
|
9
9
|
%p #{$user_name}
|
|
10
10
|
%a{:href => "#"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
!!!5
|
|
2
|
+
%html
|
|
3
|
+
%head
|
|
4
|
+
%meta{charset: 'utf-8'}
|
|
5
|
+
%meta{name: 'viewport', content: 'width=device-width, initial-scale=1'}
|
|
6
|
+
%title Jinda Mindmap Editor
|
|
7
|
+
= csrf_meta_tags
|
|
8
|
+
%link{rel: 'stylesheet', href: 'https://unpkg.com/jsmind@0.5.2/style/jsmind.css'}
|
|
9
|
+
:css
|
|
10
|
+
body { margin: 0; padding: 20px; font-family: Arial, sans-serif; }
|
|
11
|
+
h1 { margin: 0 0 20px 0; }
|
|
12
|
+
.controls { margin-bottom: 20px; }
|
|
13
|
+
#jsmind_container {
|
|
14
|
+
width: 100%;
|
|
15
|
+
height: 70vh;
|
|
16
|
+
border: 1px solid #ccc;
|
|
17
|
+
border-radius: 4px;
|
|
18
|
+
background: #f9f9f9;
|
|
19
|
+
}
|
|
20
|
+
.btn {
|
|
21
|
+
padding: 10px 20px;
|
|
22
|
+
margin-right: 10px;
|
|
23
|
+
background: #4CAF50;
|
|
24
|
+
color: white;
|
|
25
|
+
border: none;
|
|
26
|
+
border-radius: 4px;
|
|
27
|
+
cursor: pointer;
|
|
28
|
+
font-size: 14px;
|
|
29
|
+
}
|
|
30
|
+
.btn:hover { background: #45a049; }
|
|
31
|
+
.btn-secondary { background: #008CBA; }
|
|
32
|
+
.btn-secondary:hover { background: #007399; }
|
|
33
|
+
#status { padding: 10px; margin-top: 10px; border-radius: 4px; }
|
|
34
|
+
.success { background: #d4edda; color: #155724; border: 1px solid #c3e6cb; }
|
|
35
|
+
.error { background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; }
|
|
36
|
+
%body
|
|
37
|
+
%h1 Jinda Mindmap Editor
|
|
38
|
+
|
|
39
|
+
.controls
|
|
40
|
+
%button.btn#save_button{type: 'button'} Save & Update
|
|
41
|
+
%button.btn.btn-secondary#reload_button{type: 'button'} Reload
|
|
42
|
+
%span{style: 'margin-left: 20px; color: #666;'} Double-click nodes to edit | Right-click for options
|
|
43
|
+
|
|
44
|
+
#jsmind_container
|
|
45
|
+
|
|
46
|
+
#status
|
|
47
|
+
|
|
48
|
+
%script{src: 'https://unpkg.com/jsmind@0.5.2/js/jsmind.js'}
|
|
49
|
+
:javascript
|
|
50
|
+
var jm = null;
|
|
51
|
+
var originalData = #{raw @mind_data.to_json};
|
|
52
|
+
|
|
53
|
+
window.addEventListener('load', function() {
|
|
54
|
+
console.log('jsMind loaded:', typeof jsMind !== 'undefined');
|
|
55
|
+
console.log('Mind data:', originalData);
|
|
56
|
+
|
|
57
|
+
if (typeof jsMind === 'undefined') {
|
|
58
|
+
document.getElementById('jsmind_container').innerHTML =
|
|
59
|
+
'<div style="padding: 20px; color: red;">Error: jsMind library failed to load</div>';
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// Initialize jsMind
|
|
64
|
+
var options = {
|
|
65
|
+
container: 'jsmind_container',
|
|
66
|
+
theme: 'primary',
|
|
67
|
+
editable: true,
|
|
68
|
+
mode: 'full'
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
jm = new jsMind(options);
|
|
72
|
+
jm.show(originalData);
|
|
73
|
+
|
|
74
|
+
// Save button handler
|
|
75
|
+
document.getElementById('save_button').addEventListener('click', function() {
|
|
76
|
+
var button = this;
|
|
77
|
+
button.disabled = true;
|
|
78
|
+
button.textContent = 'Saving...';
|
|
79
|
+
|
|
80
|
+
var data = jm.get_data();
|
|
81
|
+
console.log('Saving data:', data);
|
|
82
|
+
|
|
83
|
+
fetch('#{mindmap_editor_save_path}', {
|
|
84
|
+
method: 'POST',
|
|
85
|
+
headers: {
|
|
86
|
+
'Content-Type': 'application/json',
|
|
87
|
+
'X-CSRF-Token': document.querySelector('meta[name="csrf-token"]').content
|
|
88
|
+
},
|
|
89
|
+
body: JSON.stringify({ mind_data: data })
|
|
90
|
+
})
|
|
91
|
+
.then(response => response.json())
|
|
92
|
+
.then(result => {
|
|
93
|
+
button.disabled = false;
|
|
94
|
+
button.textContent = 'Save & Update';
|
|
95
|
+
|
|
96
|
+
var status = document.getElementById('status');
|
|
97
|
+
if (result.success) {
|
|
98
|
+
status.className = 'success';
|
|
99
|
+
status.innerHTML = '<strong>Success!</strong> ' + result.message;
|
|
100
|
+
if (result.output) {
|
|
101
|
+
status.innerHTML += '<br><small>Output: ' + result.output.substring(0, 200) + '...</small>';
|
|
102
|
+
}
|
|
103
|
+
} else {
|
|
104
|
+
status.className = 'error';
|
|
105
|
+
status.innerHTML = '<strong>Error:</strong> ' + result.error;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
setTimeout(() => { status.innerHTML = ''; status.className = ''; }, 5000);
|
|
109
|
+
})
|
|
110
|
+
.catch(error => {
|
|
111
|
+
button.disabled = false;
|
|
112
|
+
button.textContent = 'Save & Update';
|
|
113
|
+
|
|
114
|
+
var status = document.getElementById('status');
|
|
115
|
+
status.className = 'error';
|
|
116
|
+
status.innerHTML = '<strong>Error:</strong> ' + error.message;
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
|
|
120
|
+
// Reload button handler
|
|
121
|
+
document.getElementById('reload_button').addEventListener('click', function() {
|
|
122
|
+
if (confirm('Reload mindmap? Any unsaved changes will be lost.')) {
|
|
123
|
+
location.reload();
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
});
|
|
@@ -2,6 +2,19 @@
|
|
|
2
2
|
.signup-form
|
|
3
3
|
= form_tag "/auth/identity/callback", {'data-ajax'=>'false'} do
|
|
4
4
|
%h1.h3.mb-3.font-weight-normal{:style => "text-align: center"} Sign in
|
|
5
|
+
%p.hint-text Sign in with your social media account or Username
|
|
6
|
+
.social-btn.text-center
|
|
7
|
+
%a.btn.btn-primary.btn-lg{:href => "/auth/facebook"}
|
|
8
|
+
%i.fa.fa-facebook
|
|
9
|
+
Facebook
|
|
10
|
+
%a.btn.btn-info.btn-lg{:href => "#"}
|
|
11
|
+
%i.fa.fa-twitter
|
|
12
|
+
Twitter
|
|
13
|
+
%a.btn.btn-danger.btn-lg{:href => "/auth/google_oauth2"}
|
|
14
|
+
%i.fa.fa-google
|
|
15
|
+
Google
|
|
16
|
+
.or-seperator
|
|
17
|
+
%b or
|
|
5
18
|
.sign_in
|
|
6
19
|
.label-warning
|
|
7
20
|
= flash[:alert]
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
require "timeout"
|
|
3
|
+
|
|
4
|
+
modified = `git status --porcelain`.lines.filter_map { |l| l.split.last }.uniq
|
|
5
|
+
files = modified.select { |p| p.end_with?(".rb") }
|
|
6
|
+
|
|
7
|
+
if files.empty?
|
|
8
|
+
puts "No modified Ruby files."
|
|
9
|
+
exit 0
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
files.each do |file|
|
|
13
|
+
puts "RuboCop: #{file}"
|
|
14
|
+
begin
|
|
15
|
+
Timeout.timeout(30) do
|
|
16
|
+
system("rubocop", "--config", File.expand_path("~/.rubocop.yml"), "-A", file)
|
|
17
|
+
end
|
|
18
|
+
rescue Timeout::Error
|
|
19
|
+
puts "Timeout on #{file} (over 30s). Skipping; fix manually."
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -4,12 +4,12 @@ development:
|
|
|
4
4
|
# Defines the default client. (required)
|
|
5
5
|
default:
|
|
6
6
|
# Mongoid can connect to a URI accepted by the driver:
|
|
7
|
-
# uri: mongodb://user:password@mongodb.domain.com:27017/
|
|
7
|
+
# uri: mongodb://user:password@mongodb.domain.com:27017/jinda_development
|
|
8
8
|
|
|
9
9
|
# Otherwise define the parameters separately.
|
|
10
10
|
# This defines the name of the default database that Mongoid can connect to.
|
|
11
11
|
# (required).
|
|
12
|
-
database:
|
|
12
|
+
database: jinda_development
|
|
13
13
|
# Provides the hosts the default client can connect to. Must be an array
|
|
14
14
|
# of host:port pairs. (required)
|
|
15
15
|
hosts:
|
|
@@ -173,7 +173,7 @@ production:
|
|
|
173
173
|
test:
|
|
174
174
|
clients:
|
|
175
175
|
default:
|
|
176
|
-
database:
|
|
176
|
+
database: jinda_test
|
|
177
177
|
hosts:
|
|
178
178
|
- localhost:27017
|
|
179
179
|
options:
|
|
@@ -4,12 +4,12 @@ development:
|
|
|
4
4
|
# Defines the default client. (required)
|
|
5
5
|
default:
|
|
6
6
|
# Mongoid can connect to a URI accepted by the driver:
|
|
7
|
-
# uri: mongodb://user:password@mongodb.domain.com:27017/
|
|
7
|
+
# uri: mongodb://user:password@mongodb.domain.com:27017/jinda_development
|
|
8
8
|
|
|
9
9
|
# Otherwise define the parameters separately.
|
|
10
10
|
# This defines the name of the default database that Mongoid can connect to.
|
|
11
11
|
# (required).
|
|
12
|
-
database:
|
|
12
|
+
database: jinda_development
|
|
13
13
|
# Provides the hosts the default client can connect to. Must be an array
|
|
14
14
|
# of host:port pairs. (required)
|
|
15
15
|
hosts:
|
|
@@ -173,7 +173,7 @@ production:
|
|
|
173
173
|
test:
|
|
174
174
|
clients:
|
|
175
175
|
default:
|
|
176
|
-
database:
|
|
176
|
+
database: jinda_test
|
|
177
177
|
hosts:
|
|
178
178
|
- localhost:27017
|
|
179
179
|
options:
|
|
@@ -4,12 +4,12 @@ development:
|
|
|
4
4
|
# Defines the default client. (required)
|
|
5
5
|
default:
|
|
6
6
|
# Mongoid can connect to a URI accepted by the driver:
|
|
7
|
-
# uri: mongodb://user:password@mongodb.domain.com:27017/
|
|
7
|
+
# uri: mongodb://user:password@mongodb.domain.com:27017/jinda_development
|
|
8
8
|
|
|
9
9
|
# Otherwise define the parameters separately.
|
|
10
10
|
# This defines the name of the default database that Mongoid can connect to.
|
|
11
11
|
# (required).
|
|
12
|
-
database:
|
|
12
|
+
database: jinda_development
|
|
13
13
|
# Provides the hosts the default client can connect to. Must be an array
|
|
14
14
|
# of host:port pairs. (required)
|
|
15
15
|
hosts:
|
|
@@ -173,7 +173,7 @@ production:
|
|
|
173
173
|
test:
|
|
174
174
|
clients:
|
|
175
175
|
default:
|
|
176
|
-
database:
|
|
176
|
+
database: jinda_test
|
|
177
177
|
hosts:
|
|
178
178
|
- localhost:27017
|
|
179
179
|
options:
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# docker-compose-web.yml - Full stack with web application and MongoDB
|
|
2
|
+
# For development with local gem modifications:
|
|
3
|
+
# 1. Add volume mounts for your local gem paths:
|
|
4
|
+
# volumes:
|
|
5
|
+
# - .:/myapp
|
|
6
|
+
# - ~/mygem/jinda:/path/to/local/jinda
|
|
7
|
+
# - ~/mygem/jinda_adminlte:/path/to/local/jinda_adminlte
|
|
8
|
+
# 2. Update Gemfile to use path: '/path/to/local/jinda'
|
|
9
|
+
|
|
10
|
+
services:
|
|
11
|
+
web:
|
|
12
|
+
build: .
|
|
13
|
+
env_file: .env
|
|
14
|
+
command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
|
|
15
|
+
volumes:
|
|
16
|
+
- .:/myapp
|
|
17
|
+
# TODO: Add your local gem paths here for development
|
|
18
|
+
# - ~/mygem/jinda:/path/to/local/jinda
|
|
19
|
+
# - ~/mygem/jinda_adminlte:/path/to/local/jinda_adminlte
|
|
20
|
+
ports:
|
|
21
|
+
- "3000:3000"
|
|
22
|
+
depends_on:
|
|
23
|
+
- mongodb
|
|
24
|
+
|
|
25
|
+
mongodb:
|
|
26
|
+
image: mongo:latest
|
|
27
|
+
container_name: jinda_mongodb_web
|
|
28
|
+
ports:
|
|
29
|
+
- "27017:27017"
|
|
30
|
+
volumes:
|
|
31
|
+
- mongodb_data_web:/data/db
|
|
32
|
+
environment:
|
|
33
|
+
- MONGO_INITDB_DATABASE=jinda_development
|
|
34
|
+
|
|
35
|
+
volumes:
|
|
36
|
+
mongodb_data_web:
|
|
@@ -1,17 +1,13 @@
|
|
|
1
|
-
version: '3.5'
|
|
2
1
|
services:
|
|
3
|
-
web:
|
|
4
|
-
build: .
|
|
5
|
-
env_file: .env
|
|
6
|
-
command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
|
|
7
|
-
volumes:
|
|
8
|
-
- .:/myapp
|
|
9
|
-
ports:
|
|
10
|
-
- "3000:3000"
|
|
11
|
-
depends_on:
|
|
12
|
-
- mongodb
|
|
13
|
-
|
|
14
2
|
mongodb:
|
|
15
|
-
image: mongo
|
|
3
|
+
image: mongo:latest
|
|
4
|
+
container_name: jinda_mongodb
|
|
16
5
|
ports:
|
|
17
|
-
- "
|
|
6
|
+
- "27017:27017"
|
|
7
|
+
volumes:
|
|
8
|
+
- mongodb_data:/data/db
|
|
9
|
+
environment:
|
|
10
|
+
- MONGO_INITDB_DATABASE=jinda_development
|
|
11
|
+
|
|
12
|
+
volumes:
|
|
13
|
+
mongodb_data:
|