jinda 0.4.4 → 0.4.5

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.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/lib/generators/jinda/install_generator.rb +24 -10
  3. data/lib/generators/jinda/templates/app/assets/javascripts/application.js-jqm +2 -0
  4. data/lib/generators/jinda/templates/app/assets/stylesheets/{application.css → application.css.scss} +0 -0
  5. data/lib/generators/jinda/templates/app/controllers/api/v1/notes_controller.rb +81 -0
  6. data/lib/generators/jinda/templates/app/controllers/jinda_org/jinda_controller.rb +22 -0
  7. data/lib/generators/jinda/templates/app/controllers/jinda_org/notes_controller.rb +86 -0
  8. data/lib/generators/jinda/templates/app/jinda/index.mm +138 -21
  9. data/lib/generators/jinda/templates/app/mailers/note_mailer.rb +10 -0
  10. data/lib/generators/jinda/templates/app/models/note.rb +22 -0
  11. data/lib/generators/jinda/templates/app/views/api/v1/note.haml +0 -0
  12. data/lib/generators/jinda/templates/app/views/jinda/index.html.haml +1 -1
  13. data/lib/generators/jinda/templates/app/views/jinda/run_form.haml +4 -0
  14. data/lib/generators/jinda/templates/app/views/note_mailer/gmail.html.haml +7 -0
  15. data/lib/generators/jinda/templates/app/views/note_mailer/gmail.text.haml +8 -0
  16. data/lib/generators/jinda/templates/app/views/notes/delete/select_note.html.erb +14 -0
  17. data/lib/generators/jinda/templates/app/views/notes/edit/edit_note.html.erb +10 -0
  18. data/lib/generators/jinda/templates/app/views/notes/edit/select_note.html.erb +14 -0
  19. data/lib/generators/jinda/templates/app/views/notes/index.haml +71 -0
  20. data/lib/generators/jinda/templates/app/views/notes/mail/display_mail.html.erb +20 -0
  21. data/lib/generators/jinda/templates/app/views/notes/mail/select_note.html.erb +19 -0
  22. data/lib/generators/jinda/templates/app/views/notes/mail/show.html.haml +13 -0
  23. data/lib/generators/jinda/templates/app/views/notes/my.haml +21 -0
  24. data/lib/generators/jinda/templates/app/views/notes/new/new_note.html.erb +13 -0
  25. data/lib/generators/jinda/templates/app/views/notes/show.haml +10 -0
  26. data/lib/generators/jinda/templates/app/views/notes/xedit/edit_note.html.erb +10 -0
  27. data/lib/generators/jinda/templates/spec/controllers/api/v1_get_index_spec.rb +23 -0
  28. data/lib/generators/jinda/templates/spec/controllers/api/v1_get_my_spec.rb +14 -0
  29. data/lib/generators/jinda/templates/spec/controllers/api/v1_post_spec.rb +19 -0
  30. data/lib/generators/jinda/templates/spec/mailers/note_spec.rb +24 -0
  31. data/lib/generators/jinda/templates/spec/mailers/previews/note_preview.rb +9 -0
  32. data/lib/generators/jinda/templates/spec/models/note_spec.rb +41 -0
  33. data/lib/generators/jinda/templates/spec/rails_helper.rb +29 -40
  34. data/lib/generators/jinda/templates/spec/support/authentication_helper.rb +20 -0
  35. data/lib/generators/jinda/templates/spec/support/factory_bot.rb +9 -3
  36. data/lib/generators/jinda/templates/spec/support/request_spec_helper.rb +8 -0
  37. data/lib/jinda/ template/view.html.erb +0 -2
  38. data/lib/jinda/version.rb +1 -1
  39. metadata +29 -4
  40. data/lib/generators/jinda/templates/install.sh +0 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 673f63519baba2d14750c80b76aea80d6c5823289dcb174c40ed2c9d484f61f6
4
- data.tar.gz: 9af4281b173296766412ae636e9e7ba79f98eab8ab1f10a438370b0f88ff378d
3
+ metadata.gz: bc475da4a23373ee9c19c6a1e4f2fc3f10dcfe82d94dc67197651fe3cde8ee3c
4
+ data.tar.gz: 58c799c742f34feb2f62d17667fa4da4f4b1ab20913869b44a78a192e1df9c1b
5
5
  SHA512:
6
- metadata.gz: 871c548a4ddc1f98cddb49781e13a00f1852c7aa52ed53318bb0d068b235f101fc495a8e87fbd8a26f1da224081e5ab2cbeaef70422a98d84ebcc87ea743dc0c
7
- data.tar.gz: 1f0c3b66424e3e6a7dba74019c48f0cecb57d3f28bacbb377e9e4a72cea24764d25f8e87dcae40818a6e4aeaf49d2e3b8635ea91b3a9452e39edae788e4a70e0
6
+ metadata.gz: e1ceffa9eb1a6270e7da0bdf5a8ddd03fb08ad9e07f77e5e4b0947ec065628b29d9c9dac0fc7e840a10a8c348450bbd647484936a675cf24e8706a3c6288f574
7
+ data.tar.gz: e70897bac06191c0a1cb6198451a10d6148221bebb37ee30c77c5276ffc3ef708b6243b796030c29514cde351142c8bdae4b470c602300dde9fdba800140ac92
@@ -10,14 +10,16 @@ module Jinda
10
10
  gem 'maruku', '~> 0.7.3'
11
11
  gem 'rouge'
12
12
  gem 'normalize-rails'
13
- gem 'font-awesome-sass', '~> 4.7.0'
13
+ gem 'font-awesome-rails'
14
+ gem 'font-awesome-sass', '~> 5.12.0'
14
15
  gem 'ckeditor', github: 'galetahub/ckeditor'
15
16
  gem 'mongoid-paperclip', require: 'mongoid_paperclip'
16
17
  gem 'meta-tags'
17
18
  gem 'jquery-turbolinks'
18
19
  gem 'mongo', '~> 2.7.0'
19
20
  gem 'bson', '~> 4.0'
20
- gem 'mongoid'
21
+ gem 'mongoid', '>= 6.0'
22
+ gem 'turbolinks_render'
21
23
  gem 'nokogiri' # use for jinda/doc
22
24
  gem 'haml', '~> 5.1', '>= 5.1.2'
23
25
  gem 'haml-rails', '~> 1.0'
@@ -42,14 +44,14 @@ module Jinda
42
44
  gem 'binding_of_caller'
43
45
  gem 'pry-byebug'
44
46
  gem 'factory_bot_rails'
45
- gem 'database_cleaner'
47
+ gem 'database_cleaner'
46
48
  gem 'guard'
47
49
  gem 'guard-rspec'
48
50
  gem 'guard-minitest'
49
51
  gem 'capybara'
50
- gem 'selenium-webdriver'
52
+ gem 'selenium-webdriver'
51
53
  gem 'rb-fsevent'
52
- gem 'valid_attribute'
54
+ gem 'valid_attribute'
53
55
  gem 'faker', :git => 'https://github.com/stympy/faker.git', :branch => 'master'
54
56
  end
55
57
  end
@@ -60,7 +62,7 @@ module Jinda
60
62
  inside("app/views/layouts") {(File.file? "application.html.erb") ? (FileUtils.mv 'application.html.erb', 'application.html.erb.bak') : ( say "no app/views/layout/ application.html.erb", :blue )}
61
63
  inside("app/controllers") {(File.file? "application_controller.rb") ? (FileUtils.mv 'application_controller.rb', 'application_controller.rb.bak' ) : ( say "no app/controller/application_controller.rb, :blue ")}
62
64
  inside("app/helpers") {(File.file? "application_helper.rb") ? (FileUtils.mv 'application_helper.rb', 'application_helper.rb.bak') : ( say "no app/helpers/application_helper.rb", :blue)}
63
- inside("app/assets/javascripts") {(File.file? "javascripts.js") ? (FileUtils.mv 'javascripts.js', 'javascripts.js.bak') : ( say "no javascript.js", :blue)}
65
+ inside("app/assets/javascripts") {(File.file? 'application.js') ? (FileUtils.mv 'application.js', 'application.js.bak') : ( say "no application.js", :blue)}
64
66
  inside("app/assets/stylesheets") {(File.file? "application.css") ? (FileUtils.mv 'application.css', 'application.css.bak') : ( say "no application.css", :blue)}
65
67
  inside("config/initializers") {(File.file? "omniauth.rb") ? (FileUtils.mv 'omniauth.rb', 'omniauth.rb.bak') : (say "no omniauth.rb", :blue)}
66
68
  # inside("config/initializers") {(File.file? "mongoid.rb") ? (FileUtils.mv 'mongoid.rb', 'mongoid.rb.bak') : (say "no mongoid.rb")}
@@ -88,29 +90,41 @@ module Jinda
88
90
  inside("app/controllers") {(File.file? "sessions_controller.rb") ? ( say "Please merge existing jinda_org/sessions_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/sessions_controller.rb', 'sessions_controller.rb')}
89
91
  inside("app/controllers") {(File.file? "users_controller.rb") ? ( say "Please merge existing jinda_org/users_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/users_controller.rb', 'users_controller.rb')}
90
92
  inside("app/controllers") {(File.file? "sitemap_controller.rb") ? ( say "Please merge existing jinda_org/sitemap_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/sitemap_controller.rb', 'sitemap_controller.rb')}
93
+ inside("app/controllers") {(File.file? "notes_controller.rb") ? ( say "Please merge existing jinda_org/notes_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/notes_controller.rb', 'notes_controller.rb')}
91
94
  end
92
95
  # routes created each line as reversed order button up in routes
93
96
  def setup_routes
97
+ route "end"
98
+ route " end"
99
+ route " namespace :v1 do resources :notes, :only => [:index] end"
100
+ route " namespace :api do"
101
+ route "post '/api/v1/notes' => 'api/v1/notes#create', as: 'api_v1_notes'"
102
+ route "get '/api/v1/notes/my' => 'api/v1/notes#my'"
103
+ route "\# api"
94
104
  route "root :to => 'jinda#index'"
95
105
  route "resources :jinda, :only => [:index, :new]"
96
106
  route "resources :password_resets"
97
107
  route "resources :sessions"
98
108
  route "resources :identities"
99
109
  route "resources :users"
110
+ route "resources :notes"
100
111
  route "resources :articles"
101
- route "get '/articles/my/destroy' => 'articles#destroy'"
112
+ route "get '/notes/destroy/:id' => 'notes#destroy'"
113
+ route "get '/notes/my/destroy/:id' => 'notes#destroy'"
114
+ route "get '/notes/my' => 'notes/my'"
115
+ route "get '/articles/my/destroy' => 'articles#destroy'"
102
116
  route "get '/articles/my' => 'articles/my'"
103
117
  route "get '/logout' => 'sessions#destroy', :as => 'logout'"
104
118
  route "get '/auth/failure' => 'sessions#destroy'"
105
119
  route "get '/auth/:provider/callback' => 'sessions#create'"
106
120
  route "post '/auth/:provider/callback' => 'sessions#create'"
107
- route "\# end jinda method routes"
121
+ route "\# end jinda method routes"
108
122
  route "mount Ckeditor::Engine => '/ckeditor'"
109
123
  route "post '/jinda/end_form' => 'jinda#end_form'"
110
124
  route "post '/jinda/pending' => 'jinda#index'"
111
125
  route "post '/jinda/init' => 'jinda#init'"
112
126
  route "jinda_methods.each do \|aktion\| get \"/jinda/\#\{aktion\}\" => \"jinda#\#\{aktion\}\" end"
113
- route "jinda_methods += ['init','run','run_do','run_form','end_form','error_logs', 'notice_logs', 'cancel']"
127
+ route "jinda_methods += ['init','run','run_mail','document','run_do','run_form','end_form','error_logs', 'notice_logs', 'cancel']"
114
128
  route "jinda_methods = ['pending','status','search','doc','logs','ajax_notice']"
115
129
  route "\# start jiinda method routes"
116
130
  end
@@ -156,7 +170,7 @@ MM = "#{Rails.root}/app/jinda/index.mm"
156
170
  DEFAULT_TITLE = 'Jinda'
157
171
  DEFAULT_HEADER = 'Jinda'
158
172
  DEFAULT_DESCRIPTION = 'Rails Application Generator'
159
- DEFAULT_KEYWORDS = %w[Jinda Rails ruby Generator]
173
+ DEFAULT_KEYWORDS = %w[Jinda Rails ruby Generator, Prateep Kul]
160
174
  GMAP = false
161
175
  # ADSENSE = true
162
176
  NEXT = "Next >"
@@ -22,5 +22,7 @@
22
22
  //= require turbolinks
23
23
  //= require jqm/disable_enter_key.js
24
24
  //= require ckeditor/init
25
+ //= require disable_enter_key.js
26
+ //= require notes.js
25
27
 
26
28
 
@@ -0,0 +1,81 @@
1
+ class Api::V1::NotesController < ApplicationController
2
+ before_action :load_note, only: [:show, :destroy]
3
+ # before_action :xload_current_ma_user, only: [:destroy]
4
+
5
+ def index
6
+ @notes = Note.desc(:created_at).page(params[:page]).per(10)
7
+ render json: @notes
8
+ end
9
+
10
+ def my
11
+ @notes = Note.where(user_id: current_ma_user).desc(:created_at).page(params[:page]).per(10)
12
+ render json: @notes
13
+ end
14
+
15
+ def show
16
+ end
17
+
18
+ def edit
19
+ @note = Note.find(params[:id])
20
+ @page_title = 'Edit Note'
21
+ end
22
+
23
+ def create
24
+ @note = Note.new(
25
+ title: params[:title],
26
+ body: params[:body],
27
+ user_id: params[:user])
28
+
29
+ @note.save!
30
+ render json: @note, status: :created
31
+ end
32
+
33
+
34
+ def update
35
+ # $xvars["select_note"] and $xvars["edit_note"]
36
+ # These are variables.
37
+ # They contain everything that we get their forms select_note and edit_note
38
+ note_id = $xvars["select_note"] ? $xvars["select_note"]["id"] : $xvars["p"]["note_id"]
39
+ @note = Note.find(note_id)
40
+ @note.update(title: $xvars["edit_note"]["title"],
41
+ body: $xvars["edit_note"]["body"])
42
+ redirect_to @note
43
+
44
+ end
45
+
46
+ def delete
47
+ # called by freemind
48
+ # Tobe called from other controller:jinda
49
+ @note_id = $xvars["select_note"] ? $xvars["select_note"]["id"] : $xvars["p"]["note_id"]
50
+ @note = Note.find(@note_id)
51
+ @note.destroy
52
+ end
53
+
54
+ def destroy
55
+ # called by rails menu my
56
+ if current_ma_user.role.upcase.split(',').include?("A") || current_ma_user == @note.user
57
+ @note.destroy
58
+ end
59
+ redirect_to :action=>'my'
60
+ end
61
+
62
+ def mail
63
+ NoteMailer.gmail(
64
+ $xvars["display_mail"]["body"],
65
+ $xvars["select_note"]["email"],
66
+ $xvars["display_mail"]["title"],
67
+ xload_current_ma_user.email)
68
+ end
69
+
70
+ private
71
+
72
+ # Tobe called from other controller:jinda
73
+ def xload_current_ma_user
74
+ @current_ma_user = User.find($xvars["user_id"])
75
+ end
76
+
77
+ def load_note
78
+ @note = Note.find(params[:id])
79
+ end
80
+
81
+ end
@@ -1,4 +1,26 @@
1
1
  # -*- encoding : utf-8 -*-
2
+ ###################################################### @runseq ####################################################
3
+ # @runseq => #<Jinda::Runseq _id: 5df31912a54d758417a7afc9,
4
+ # created_at: 2019-12-13 04:52:34 UTC,
5
+ # updated_at: 2019-12-13 04:52:43 UTC,
6
+ # user_id: nil,
7
+ # xmain_id: BSON::ObjectId('5df31912a54d758417a7afc7'),
8
+ # action: "do",
9
+ # status: "R",
10
+ # code: "create",
11
+ # name: "Create Article",
12
+ # role: "",
13
+ # rule: "true",
14
+ # rstep: 2,
15
+ # form_step: 1,
16
+ # start: 2019-12-13 04:52:43 UTC,
17
+ # stop: nil,
18
+ # end: true,
19
+ # xml: "<node CREATED='1493419491125' ID='ID_1687683396' MODIFIED='1493483244848' TEXT='create: Create Article'><icon BUILTIN='bookmark'/></node>",
20
+ # ip: nil>
21
+
22
+ ######################################################################################################################
23
+
2
24
  class JindaController < ApplicationController
3
25
  def index
4
26
  end
@@ -0,0 +1,86 @@
1
+ class NotesController < ApplicationController
2
+ before_action :load_note, only: [:show, :destroy]
3
+ # before_action :xload_current_ma_user, only: [:destroy]
4
+
5
+ def index
6
+ @notes = Note.desc(:created_at).page(params[:page]).per(10)
7
+ end
8
+
9
+ def my
10
+ @notes = Note.where(user_id: current_ma_user).desc(:created_at).page(params[:page]).per(10)
11
+ end
12
+
13
+ def show
14
+ end
15
+
16
+ def edit
17
+ @note = Note.find(params[:id])
18
+ @page_title = 'Edit Note'
19
+ end
20
+
21
+ def create
22
+ @note = Note.new(
23
+ title: $xvars["new_note"]["title"],
24
+ body: $xvars["new_note"]["body"],
25
+ user_id: $xvars["user_id"])
26
+ @note.save!
27
+ # if @note.save!
28
+ # format.html { redirect_to @note, notice: 'Sample was successfully created.' }
29
+ # format.json { render :show, status: :created, location: @note }
30
+ # else
31
+ # format.html { render :new }
32
+ # format.json { render json: @note.errors, status: :unprocessable_entity }
33
+ # end
34
+ redirect_to @note
35
+
36
+ end
37
+
38
+
39
+ def update
40
+ # $xvars["select_note"] and $xvars["edit_note"]
41
+ # These are variables.
42
+ # They contain everything that we get their forms select_note and edit_note
43
+ note_id = $xvars["select_note"] ? $xvars["select_note"]["id"] : $xvars["p"]["note_id"]
44
+ @note = Note.find(note_id)
45
+ @note.update(title: $xvars["edit_note"]["title"],
46
+ body: $xvars["edit_note"]["body"])
47
+ redirect_to @note
48
+
49
+ end
50
+
51
+ def delete
52
+ # called by freemind
53
+ # Tobe called from other controller:jinda
54
+ @note_id = $xvars["select_note"] ? $xvars["select_note"]["id"] : $xvars["p"]["note_id"]
55
+ @note = Note.find(@note_id)
56
+ @note.destroy
57
+ end
58
+
59
+ def destroy
60
+ # called by rails menu my
61
+ if current_ma_user.role.upcase.split(',').include?("A") || current_ma_user == @note.user
62
+ @note.destroy
63
+ end
64
+ redirect_to :action=>'my'
65
+ end
66
+
67
+ def mail
68
+ NoteMailer.gmail(
69
+ $xvars["display_mail"]["body"],
70
+ $xvars["select_note"]["email"],
71
+ $xvars["display_mail"]["title"],
72
+ xload_current_ma_user.email)
73
+ end
74
+
75
+ private
76
+
77
+ # Tobe called from other controller:jinda
78
+ def xload_current_ma_user
79
+ @current_ma_user = User.find($xvars["user_id"])
80
+ end
81
+
82
+ def load_note
83
+ @note = Note.find(params[:id])
84
+ end
85
+
86
+ end
@@ -1,8 +1,8 @@
1
1
  <map version="1.0.1">
2
2
  <!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net -->
3
3
  <node CREATED="1273819432637" ID="ID_1098419600" MODIFIED="1334737006485" TEXT="Jinda">
4
- <node CREATED="1273819462973" ID="ID_282419531" MODIFIED="1493705904561" POSITION="right" TEXT="services">
5
- <node CREATED="1275756501221" ID="ID_1720745721" MODIFIED="1528215844718" TEXT="users:User">
4
+ <node CREATED="1273819462973" ID="ID_282419531" MODIFIED="1583088810861" POSITION="right" TEXT="services">
5
+ <node CREATED="1275756501221" FOLDED="true" ID="ID_1720745721" MODIFIED="1583097151076" TEXT="users:User">
6
6
  <node CREATED="1278491598711" ID="ID_1662699954" MODIFIED="1494393920347" TEXT="role:m"/>
7
7
  <node CREATED="1279700865182" ID="ID_1266797279" MODIFIED="1357798847781" TEXT="link:info: /users"/>
8
8
  <node CREATED="1319015338880" ID="ID_189841353" MODIFIED="1528215866339" TEXT="link:pending tasks: /jinda/pending"/>
@@ -25,7 +25,7 @@
25
25
  </node>
26
26
  </node>
27
27
  </node>
28
- <node CREATED="1275752678377" ID="ID_1348489452" MODIFIED="1507572377728" TEXT="admins:Admin">
28
+ <node CREATED="1275752678377" FOLDED="true" ID="ID_1348489452" MODIFIED="1583097147577" TEXT="admins:Admin">
29
29
  <node CREATED="1275752688167" ID="ID_229996461" MODIFIED="1275752690948" TEXT="role:a"/>
30
30
  <node CREATED="1282722836614" ID="ID_1213363124" MODIFIED="1330477902602" TEXT="edit_role:edit user role">
31
31
  <node CREATED="1282722862918" ID="ID_1190117882" MODIFIED="1330477922159" TEXT="select_user:select user">
@@ -44,33 +44,69 @@
44
44
  <node CREATED="1275790679363" ID="ID_829325467" MODIFIED="1511159696044" TEXT="link: logs: /jinda/logs"/>
45
45
  <node CREATED="1507573166973" ID="ID_351025910" MODIFIED="1511159700908" TEXT="link: docs: /jinda/doc"/>
46
46
  </node>
47
- <node CREATED="1273706796854" ID="ID_1003882979" MODIFIED="1494393450847" TEXT="devs: Developer">
47
+ <node CREATED="1273706796854" FOLDED="true" ID="ID_1003882979" MODIFIED="1583097155227" TEXT="devs: Developer">
48
48
  <node CREATED="1275373154914" ID="ID_340725299" MODIFIED="1275373158632" TEXT="role:d"/>
49
49
  <node CREATED="1275788317299" ID="ID_716276608" MODIFIED="1511159716471" TEXT="link: error_logs: /jinda/error_logs"/>
50
50
  </node>
51
- <node CREATED="1489875563330" FOLDED="true" ID="ID_1495015891" MODIFIED="1507248509212" TEXT="ctrs: ctrs&amp; Menu">
52
- <node CREATED="1489875583646" ID="ID_1796125628" MODIFIED="1494393464288" TEXT="role:a"/>
53
- <node CREATED="1275905802131" ID="ID_1960607342" MODIFIED="1489938927874" TEXT="vfolder1:Sub Menu 1">
54
- <node CREATED="1275756515843" ID="ID_328242903" MODIFIED="1489939229748" TEXT="viewfile1: Title 1">
51
+ <node CREATED="1493393619430" FOLDED="true" ID="ID_554831343" MODIFIED="1583091831967" TEXT="notes: Notes">
52
+ <node CREATED="1493489768542" ID="ID_737469676" MODIFIED="1581383331288" TEXT="link:My Notes: /notes/my">
53
+ <node CREATED="1493490295677" ID="ID_514416082" MODIFIED="1493490302239" TEXT="role:m"/>
54
+ </node>
55
+ <node CREATED="1493419257021" ID="ID_553734932" MODIFIED="1581180635669" TEXT="new: New Note">
56
+ <node CREATED="1493419299004" ID="ID_723334321" MODIFIED="1581351169990" TEXT="new_note: New ">
55
57
  <icon BUILTIN="attach"/>
56
- <node CREATED="1282816887988" ID="ID_1479413309" MODIFIED="1282817769412" TEXT="rule:login? &amp;&amp; own_xmain?"/>
58
+ <node CREATED="1493479075294" ID="ID_1009521360" MODIFIED="1493479079687" TEXT="role:m"/>
57
59
  </node>
58
- <node CREATED="1275756515843" ID="ID_1316819449" MODIFIED="1490683859703" TEXT="viewfile2: Title 2">
60
+ <node CREATED="1493419491125" ID="ID_1125779183" MODIFIED="1581180747700" TEXT="create: Create">
61
+ <icon BUILTIN="bookmark"/>
62
+ </node>
63
+ </node>
64
+ <node CREATED="1493419562726" ID="ID_1241171950" MODIFIED="1581180788218" TEXT="edit: Edit">
65
+ <node CREATED="1493419577933" ID="ID_1790163920" MODIFIED="1581350888992" TEXT="select_note: Select">
59
66
  <icon BUILTIN="attach"/>
60
- <node CREATED="1282816887988" ID="ID_1510989172" MODIFIED="1282817769412" TEXT="rule:login? &amp;&amp; own_xmain?"/>
67
+ <node CREATED="1493479602815" ID="ID_1289003986" MODIFIED="1493479606921" TEXT="role:m"/>
61
68
  </node>
62
- <node CREATED="1275756530989" ID="ID_171099141" MODIFIED="1489939276491" TEXT="update_viewfile1">
69
+ <node CREATED="1493419612720" ID="ID_938262436" MODIFIED="1581350996674" TEXT="edit_note: Edit">
70
+ <icon BUILTIN="attach"/>
71
+ <node CREATED="1493479557266" ID="ID_211108947" MODIFIED="1493479561055" TEXT="role:m"/>
72
+ </node>
73
+ <node CREATED="1493419735921" ID="ID_1581002301" MODIFIED="1581180869775" TEXT="update: Update">
63
74
  <icon BUILTIN="bookmark"/>
64
75
  </node>
65
76
  </node>
66
- <node CREATED="1275756504750" ID="ID_914236141" MODIFIED="1489939000929" TEXT="vfolder2:Title 2">
67
- <node CREATED="1275756515843" ID="ID_1222970183" MODIFIED="1489939293714" TEXT="viewfile2: Title 2">
77
+ <node CREATED="1495246388313" ID="ID_320521408" MODIFIED="1581340759604" STYLE="fork" TEXT="delete:Delete">
78
+ <edge COLOR="#808080" STYLE="bezier" WIDTH="thin"/>
79
+ <node CREATED="1493419577933" ID="ID_1631275659" MODIFIED="1581350942681" TEXT="select_note: Select">
68
80
  <icon BUILTIN="attach"/>
69
- <node CREATED="1282816887988" ID="ID_1312913420" MODIFIED="1282817769412" TEXT="rule:login? &amp;&amp; own_xmain?"/>
81
+ <node CREATED="1493479602815" ID="ID_851238107" MODIFIED="1493479606921" TEXT="role:m"/>
82
+ </node>
83
+ <node CREATED="1495246466176" ID="ID_1347765598" MODIFIED="1581799929028" TEXT="delete: Delete">
84
+ <icon BUILTIN="bookmark"/>
70
85
  </node>
71
86
  </node>
87
+ <node CREATED="1581531446494" ID="ID_1325232876" MODIFIED="1581715693485" TEXT="mail: Mail">
88
+ <node CREATED="1493419577933" FOLDED="true" ID="ID_1817148049" MODIFIED="1581531563343" TEXT="select_note: Select">
89
+ <icon BUILTIN="attach"/>
90
+ <node CREATED="1493479602815" ID="ID_1650154281" MODIFIED="1493479606921" TEXT="role:m"/>
91
+ </node>
92
+ <node CREATED="1581531468872" ID="ID_379926448" MODIFIED="1581564690354" TEXT="display_mail: Dsiplay Mail">
93
+ <icon BUILTIN="attach"/>
72
94
  </node>
73
- <node CREATED="1493393619430" ID="ID_328863650" MODIFIED="1507471634803" TEXT="articles: Article">
95
+ <node CREATED="1581564346466" ID="ID_1981382192" MODIFIED="1581564388041" TEXT="mail: Mail">
96
+ <icon BUILTIN="bookmark"/>
97
+ </node>
98
+ </node>
99
+ <node CREATED="1495246388313" FOLDED="true" ID="ID_807216843" MODIFIED="1581715858604" TEXT="xedit: Future use">
100
+ <node CREATED="1493419612720" ID="ID_6864095" MODIFIED="1581350996674" TEXT="edit_note: Edit">
101
+ <icon BUILTIN="attach"/>
102
+ <node CREATED="1493479557266" ID="ID_297597260" MODIFIED="1493479561055" TEXT="role:m"/>
103
+ </node>
104
+ <node CREATED="1581400438157" ID="ID_1206027492" MODIFIED="1581400464170" TEXT="update: Update">
105
+ <icon BUILTIN="bookmark"/>
106
+ </node>
107
+ </node>
108
+ </node>
109
+ <node CREATED="1493393619430" FOLDED="true" ID="ID_328863650" MODIFIED="1583093622195" TEXT="articles: Article">
74
110
  <node CREATED="1493419096527" ID="ID_1521905276" MODIFIED="1493478060121" TEXT="link: All Articles: /articles"/>
75
111
  <node CREATED="1493489768542" ID="ID_1376361427" MODIFIED="1493768994418" TEXT="link: My article: /articles/my">
76
112
  <node CREATED="1493490295677" ID="ID_628476988" MODIFIED="1493490302239" TEXT="role:m"/>
@@ -107,7 +143,7 @@
107
143
  </node>
108
144
  </node>
109
145
  </node>
110
- <node CREATED="1493664700564" FOLDED="true" ID="ID_704959130" MODIFIED="1507383970984" TEXT="comments: Comment">
146
+ <node CREATED="1493664700564" FOLDED="true" ID="ID_704959130" MODIFIED="1583091848193" TEXT="comments: Comment">
111
147
  <node CREATED="1493665155709" ID="ID_1973520751" MODIFIED="1493665186791" TEXT="new_comment: New Comment">
112
148
  <node CREATED="1493665192413" ID="ID_345629058" MODIFIED="1493665226422" TEXT="create">
113
149
  <icon BUILTIN="bookmark"/>
@@ -116,12 +152,71 @@
116
152
  </node>
117
153
  <node CREATED="1494393494180" ID="ID_1101205873" MODIFIED="1495275996686" TEXT="role:m"/>
118
154
  </node>
155
+ <node CREATED="1489875563330" FOLDED="true" ID="ID_1495015891" MODIFIED="1507248509212" TEXT="ctrs: ctrs&amp; Menu">
156
+ <node CREATED="1489875583646" ID="ID_1796125628" MODIFIED="1494393464288" TEXT="role:a"/>
157
+ <node CREATED="1275905802131" ID="ID_1960607342" MODIFIED="1489938927874" TEXT="vfolder1:Sub Menu 1">
158
+ <node CREATED="1275756515843" ID="ID_328242903" MODIFIED="1489939229748" TEXT="viewfile1: Title 1">
159
+ <icon BUILTIN="attach"/>
160
+ <node CREATED="1282816887988" ID="ID_1479413309" MODIFIED="1282817769412" TEXT="rule:login? &amp;&amp; own_xmain?"/>
161
+ </node>
162
+ <node CREATED="1275756515843" ID="ID_1316819449" MODIFIED="1490683859703" TEXT="viewfile2: Title 2">
163
+ <icon BUILTIN="attach"/>
164
+ <node CREATED="1282816887988" ID="ID_1510989172" MODIFIED="1282817769412" TEXT="rule:login? &amp;&amp; own_xmain?"/>
165
+ </node>
166
+ <node CREATED="1275756530989" ID="ID_171099141" MODIFIED="1489939276491" TEXT="update_viewfile1">
167
+ <icon BUILTIN="bookmark"/>
168
+ </node>
169
+ </node>
170
+ <node CREATED="1275756504750" ID="ID_914236141" MODIFIED="1489939000929" TEXT="vfolder2:Title 2">
171
+ <node CREATED="1275756515843" ID="ID_1222970183" MODIFIED="1489939293714" TEXT="viewfile2: Title 2">
172
+ <icon BUILTIN="attach"/>
173
+ <node CREATED="1282816887988" ID="ID_1312913420" MODIFIED="1282817769412" TEXT="rule:login? &amp;&amp; own_xmain?"/>
174
+ </node>
175
+ </node>
176
+ </node>
119
177
  <node CREATED="1494172726642" ID="ID_925257043" MODIFIED="1494172755433" TEXT="sitemap: Sitemap">
120
178
  <node CREATED="1494172758253" ID="ID_961056168" MODIFIED="1494172797972" TEXT="sitemap: Sitemap"/>
121
179
  <node CREATED="1494393494180" ID="ID_242460166" MODIFIED="1494393504971" TEXT="role:a"/>
122
180
  </node>
181
+ <node CREATED="1493393619430" FOLDED="true" ID="ID_35210833" MODIFIED="1583097140716" TEXT="api/v1/notes: Notes API ">
182
+ <node CREATED="1493489768542" ID="ID_1053900670" MODIFIED="1582131857208" TEXT="link:My Notes: /api/v1/notes/my">
183
+ <node CREATED="1493490295677" ID="ID_1597553308" MODIFIED="1493490302239" TEXT="role:m"/>
184
+ </node>
185
+ <node CREATED="1493419257021" ID="ID_1182560700" MODIFIED="1581180635669" TEXT="new: New Note">
186
+ <node CREATED="1493419299004" ID="ID_840380967" MODIFIED="1581351169990" TEXT="new_note: New ">
187
+ <icon BUILTIN="attach"/>
188
+ <node CREATED="1493479075294" ID="ID_10690659" MODIFIED="1493479079687" TEXT="role:m"/>
189
+ </node>
190
+ <node CREATED="1493419491125" ID="ID_924027059" MODIFIED="1581180747700" TEXT="create: Create">
191
+ <icon BUILTIN="bookmark"/>
192
+ </node>
193
+ </node>
194
+ <node CREATED="1493419562726" ID="ID_963001770" MODIFIED="1581180788218" TEXT="edit: Edit">
195
+ <node CREATED="1493419577933" ID="ID_1640736660" MODIFIED="1581350888992" TEXT="select_note: Select">
196
+ <icon BUILTIN="attach"/>
197
+ <node CREATED="1493479602815" ID="ID_1623444138" MODIFIED="1493479606921" TEXT="role:m"/>
198
+ </node>
199
+ <node CREATED="1493419612720" ID="ID_1362613316" MODIFIED="1581350996674" TEXT="edit_note: Edit">
200
+ <icon BUILTIN="attach"/>
201
+ <node CREATED="1493479557266" ID="ID_1838104057" MODIFIED="1493479561055" TEXT="role:m"/>
202
+ </node>
203
+ <node CREATED="1493419735921" ID="ID_1445882396" MODIFIED="1581180869775" TEXT="update: Update">
204
+ <icon BUILTIN="bookmark"/>
205
+ </node>
206
+ </node>
207
+ <node CREATED="1495246388313" ID="ID_918406528" MODIFIED="1581340759604" STYLE="fork" TEXT="delete:Delete">
208
+ <edge COLOR="#808080" STYLE="bezier" WIDTH="thin"/>
209
+ <node CREATED="1493419577933" ID="ID_809771470" MODIFIED="1581350942681" TEXT="select_note: Select">
210
+ <icon BUILTIN="attach"/>
211
+ <node CREATED="1493479602815" ID="ID_1160875526" MODIFIED="1493479606921" TEXT="role:m"/>
212
+ </node>
213
+ <node CREATED="1495246466176" ID="ID_506410154" MODIFIED="1581799929028" TEXT="delete: Delete">
214
+ <icon BUILTIN="bookmark"/>
215
+ </node>
123
216
  </node>
124
- <node CREATED="1273819465949" FOLDED="true" ID="ID_855471610" MODIFIED="1493768913078" POSITION="right" TEXT="roles">
217
+ </node>
218
+ </node>
219
+ <node CREATED="1273819465949" FOLDED="true" ID="ID_855471610" MODIFIED="1583097143651" POSITION="right" TEXT="roles">
125
220
  <node CREATED="1273819847470" ID="ID_1681080231" MODIFIED="1330477307826" TEXT="m: member"/>
126
221
  <node CREATED="1273819855875" ID="ID_1429503284" MODIFIED="1330477311102" TEXT="a: admin"/>
127
222
  <node CREATED="1273819859775" ID="ID_568365839" MODIFIED="1330477315009" TEXT="d: developer"/>
@@ -150,7 +245,7 @@
150
245
  <node CREATED="1292243471343" ID="ID_1859608350" MODIFIED="1310195256623" TEXT="lat: float"/>
151
246
  <node CREATED="1292243477436" ID="ID_48497260" MODIFIED="1310195262534" TEXT="lng: float"/>
152
247
  </node>
153
- <node CREATED="1493418879485" ID="ID_1995497233" MODIFIED="1493718770637" TEXT="article">
248
+ <node CREATED="1493418879485" FOLDED="true" ID="ID_1995497233" MODIFIED="1583097163789" TEXT="article">
154
249
  <node CREATED="1493418891110" ID="ID_364756011" MODIFIED="1493418905253" TEXT="title"/>
155
250
  <node CREATED="1493418906868" ID="ID_1676483995" MODIFIED="1493418911919" TEXT="text"/>
156
251
  <node CREATED="1493487131376" ID="ID_1334057464" MODIFIED="1538328284823" TEXT="belongs_to :user, :class_name =&gt; &quot;User&quot;">
@@ -165,7 +260,7 @@
165
260
  <node CREATED="1494181636998" ID="ID_229502630" MODIFIED="1494181660419" TEXT="body"/>
166
261
  <node CREATED="1497913676275" ID="ID_404103076" MODIFIED="1497913685065" TEXT="keywords"/>
167
262
  </node>
168
- <node CREATED="1493418915637" ID="ID_429078131" MODIFIED="1493418930081" TEXT="comment">
263
+ <node CREATED="1493418915637" FOLDED="true" ID="ID_429078131" MODIFIED="1583097162517" TEXT="comment">
169
264
  <node CREATED="1493418939760" ID="ID_1251093062" MODIFIED="1493418943423" TEXT="body"/>
170
265
  <node CREATED="1493418945686" ID="ID_911071644" MODIFIED="1493418986711" TEXT="belongs_to :article">
171
266
  <icon BUILTIN="edit"/>
@@ -177,13 +272,35 @@
177
272
  <icon BUILTIN="edit"/>
178
273
  </node>
179
274
  </node>
180
- <node CREATED="1494040082403" ID="ID_864577403" MODIFIED="1494040090700" TEXT="picture">
275
+ <node CREATED="1494040082403" FOLDED="true" ID="ID_864577403" MODIFIED="1583097161145" TEXT="picture">
181
276
  <node CREATED="1494040091583" ID="ID_679208099" MODIFIED="1494040119098" TEXT="picture"/>
182
277
  <node CREATED="1494040120208" ID="ID_1266154874" MODIFIED="1494040125130" TEXT="description"/>
183
278
  <node CREATED="1493487131376" ID="ID_1422817360" MODIFIED="1493487186856" TEXT="belongs_to :user">
184
279
  <icon BUILTIN="edit"/>
185
280
  </node>
186
281
  </node>
282
+ <node CREATED="1581177067029" FOLDED="true" ID="ID_1450593753" MODIFIED="1583089083450" TEXT="note">
283
+ <node CREATED="1581243923100" ID="ID_537548385" MODIFIED="1581243965554" TEXT="include Mongoid::Attributes::Dynamic">
284
+ <icon BUILTIN="edit"/>
285
+ </node>
286
+ <node CREATED="1581177848957" ID="ID_1611227370" MODIFIED="1581177857470" TEXT="title"/>
287
+ <node CREATED="1581177867775" ID="ID_88547965" MODIFIED="1581177883555" TEXT="body"/>
288
+ <node CREATED="1493643129947" ID="ID_1655403736" MODIFIED="1493643146424" TEXT="belongs_to :user">
289
+ <icon BUILTIN="edit"/>
290
+ </node>
291
+ <node CREATED="1581984419312" ID="ID_1934899110" MODIFIED="1581985586488" TEXT="before_validation :ensure_title_has_a_value ">
292
+ <icon BUILTIN="edit"/>
293
+ </node>
294
+ <node CREATED="1581495182445" ID="ID_1430552418" MODIFIED="1581985664674" TEXT="validates :title, length: { maximum: (MAX_TITLE_LENGTH = 30), message: &quot;Must be less than 30 characters&quot; }, presence: true">
295
+ <icon BUILTIN="edit"/>
296
+ </node>
297
+ <node CREATED="1581495221779" ID="ID_1231500988" MODIFIED="1581985709585" TEXT="validates :body, length: { maximum: (MAX_BODY_LENGTH = 1000), message: &quot;Must be less than 1000 characters&quot;} ">
298
+ <icon BUILTIN="edit"/>
299
+ </node>
300
+ <node CREATED="1581986280028" ID="ID_1069060625" MODIFIED="1581987310544" TEXT="private&#xa; def ensure_title_has_a_value&#xa; if title.blank?&#xa; self.title = body[0..(MAX_TITLE_LENGTH-1)] unless body.blank?&#xa; end&#xa; end&#xa; &#xa;">
301
+ <icon BUILTIN="edit"/>
302
+ </node>
303
+ </node>
187
304
  </node>
188
305
  </node>
189
306
  </map>