jinda 0.5.6 → 0.6.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b19ce89ffc7d0cc62a3694aa01206e6de1d04ae31c3204a8fd39ca7195593434
4
- data.tar.gz: 425b20ce57cfba2d88b3eb9f578366bdb363594bde4e175f98e4a5106a38ba45
3
+ metadata.gz: 270299e97f9a8656002d344e027b0dae973ffa4de5aea1a09c17b057ac1ff013
4
+ data.tar.gz: c56bd2a9f51bd551bae663b87004dd94a89103c4ebdc02abd54fea862a90ab8f
5
5
  SHA512:
6
- metadata.gz: 1380caefa23d4e6fc49053f55f40dcfd1e5b244efdebe101b7adfb48043bf0d8b57cfc6f2b5fa48dcd67f500d5e99a3574c75608cff9521d7b0a3643f6c093ef
7
- data.tar.gz: 7fef8092499796b99418abef949dce07f3d61565dcdfd5a95525580a90ceefeea5c7c443e1a8b60588265cad164052a9b8bca74f1f2f85c6eb6b4c23a0477c3a
6
+ metadata.gz: c81b86cb7774c918d0483f0c883c408cf286741f0c3395af64bb760adc916aa85c93e8648319ea5a75982b34ed6d5eb0e4d079890a2602cc8965ba13eb1abf65
7
+ data.tar.gz: c588613108ec0a86eb83590198889f74d7e0a00b49b7ab3daca6129342e5060b75b004cc58724d967c07a90f1e7dd2536914e0ee02f5448f943055355a807c26
data/README.md CHANGED
@@ -40,7 +40,7 @@ app without ActiveRecord
40
40
 
41
41
  ## Add jinda to your Gemfile:
42
42
 
43
- gem 'jinda', '~> 0.5.6'
43
+ gem 'jinda', '~> 0.6.1'
44
44
 
45
45
  For Development (most updated)
46
46
 
@@ -19,7 +19,7 @@ module Jinda
19
19
  gem 'bson', '4.4.2'
20
20
  gem 'mongoid', '7.1.0.rc0'
21
21
  gem 'turbolinks_render'
22
- gem 'nokogiri', '1.10.9'
22
+ gem 'nokogiri', '1.10.10'
23
23
  gem 'haml', '~> 5.1', '>= 5.1.2'
24
24
  gem 'haml-rails', '~> 2.0.1'
25
25
  gem 'mail'
@@ -110,15 +110,18 @@ module Jinda
110
110
  route "resources :users"
111
111
  route "resources :docs"
112
112
  route "resources :notes"
113
- route "resources :articles"
113
+ route "resources :comments"
114
+ route "resources :articles do resources :comments end"
114
115
  route "get '/jinda/document/:id' => 'jinda#document'"
115
116
  route "get '/notes/destroy/:id' => 'notes#destroy'"
116
117
  route "get '/notes/my/destroy/:id' => 'notes#destroy'"
117
118
  route "get '/docs/my/destroy' => 'docs#destroy'"
118
119
  route "get '/notes/my' => 'notes/my'"
119
120
  route "get '/docs/my' => 'docs/my'"
121
+ route "get '/articles/edit' => 'articles/edit'"
122
+ route "get '/articles/show' => 'articles/show'"
120
123
  route "get '/articles/my/destroy' => 'articles#destroy'"
121
- route "get '/articles/my' => 'articles/my'"
124
+ route "get '/articles/my' => 'articles#my'"
122
125
  route "get '/logout' => 'sessions#destroy', :as => 'logout'"
123
126
  route "get '/auth/failure' => 'sessions#destroy'"
124
127
  route "get '/auth/:provider/callback' => 'sessions#create'"
@@ -1,5 +1,4 @@
1
1
  class ApplicationController < ActionController::Base
2
- # https://www.cookieshq.co.uk/posts/easy-seo-metatags-with-rails-4#a-word-about-turbolinks
3
2
  before_action :prepare_meta_tags, if: -> { request.get? }
4
3
  # CSRF protection is turned on with the protect_from_forgery method.
5
4
  protect_from_forgery unless: -> { request.format.json? }
@@ -1,23 +1,30 @@
1
1
  class ArticlesController < ApplicationController
2
- before_action :load_article, only: [:show,]
3
- before_action :load_edit_article, only: [:edit, :destroy]
4
- before_action :load_comments, only: [:show]
2
+ before_action :load_articles, except: [:destroy]
3
+ before_action :load_my_articles, only: [:my]
4
+ before_action :load_article, only: [:destroy, :edit]
5
5
 
6
6
  def index
7
- @articles = Article.desc(:created_at).page(params[:page]).per(10)
7
+ # before_action
8
8
  end
9
9
 
10
- def show
10
+ def my
11
+ # before_action
12
+ end
13
+
14
+ def show
15
+ @article = Article.find(params[:article_id])
16
+ @comments = @article.comments.desc(:created_at).page(params[:page]).per(10)
11
17
  prepare_meta_tags(title: @article.title,
12
18
  description: @article.text,
13
19
  keywords: @article.keywords)
14
20
  end
15
21
 
16
22
  def edit
17
- @page_title = 'Member Login'
23
+ @page_title = 'Edit Article'
18
24
  end
19
25
 
20
26
  def create
27
+ # Use Jinda $xvars
21
28
  @article = Article.new(
22
29
  title: $xvars["form_article"]["title"],
23
30
  text: $xvars["form_article"]["text"],
@@ -27,51 +34,69 @@ class ArticlesController < ApplicationController
27
34
  @article.save!
28
35
  end
29
36
 
30
- def my
31
- @articles = Article.where(user_id: current_ma_user).desc(:created_at).page(params[:page]).per(10)
32
- @page_title = 'Member Login'
37
+ def update
38
+ @article = Article.find(params[:id])
39
+ @article.update(
40
+ title: params["article"]["title"],
41
+ text: params["article"]["text"],
42
+ keywords: params["article"]["keywords"],
43
+ body: params["article"]["body"]
44
+ )
45
+ redirect_to :action=> 'show', :article_id => @article.id
33
46
  end
34
47
 
35
- def update
36
- # $xvars["select_article"] and $xvars["edit_article"]
37
- # These are variables with params when called
38
- # They contain everything that we get their forms select_article and edit_article
39
-
40
- article_id = $xvars["select_article"] ? $xvars["select_article"]["title"] : $xvars["p"]["article_id"]
41
- @article = Article.find(article_id)
42
- @article.update(title: $xvars["edit_article"]["title"],
43
- text: $xvars["edit_article"]["text"],
44
- keywords: $xvars["edit_article"]["keywords"],
45
- body: $xvars["edit_article"]["body"]
48
+ def j_update
49
+ # Use Jinda $xvars
50
+ @article_id = $xvars["select_article"] ? $xvars["select_article"]["title"] : $xvars["p"]["article_id"]
51
+ @article = Article.find_by :id => @article_id
52
+ @article.update(title: $xvars["edit_article"]["article"]["title"],
53
+ text: $xvars["edit_article"]["article"]["text"],
54
+ keywords: $xvars["edit_article"]["article"]["keywords"],
55
+ body: $xvars["edit_article"]["article"]["body"]
46
56
  )
47
57
  end
48
58
 
49
59
  def destroy
50
- #
51
- # duplicated from jinda_controller
52
- # Expected to use in jinda)controller
53
- current_ma_user = User.where(:auth_token => cookies[:auth_token]).first if cookies[:auth_token]
54
-
55
- if Rails.env.test? #Temp solution until fix test of current_ma_user
56
- current_ma_user = $xvars["current_ma_user"]
57
- #current_ma_user = @article.user
58
- end
60
+ # Use Rails
61
+ # before_action
59
62
 
60
- if current_ma_user.role.upcase.split(',').include?("A") || current_ma_user == @article.user
63
+ if current_admin? || current_ma_user == @article.user
61
64
  @article.destroy
62
65
  end
63
66
 
64
- redirect_to :action=>'my'
67
+ action = (current_admin? ? 'index' : 'my')
68
+ redirect_to :action=> (current_admin? ? 'index' : 'my')
65
69
  end
66
70
 
67
71
  private
72
+
73
+ def current_admin?
74
+ if current_ma_user.role.upcase.split(',').include?("A")
75
+ return true
76
+ else
77
+ return false
78
+ end
79
+ end
68
80
 
69
- def load_edit_article
70
- @article = Article.find(params.require(:article_id))
81
+
82
+ def load_articles
83
+ @articles = Article.desc(:created_at).page(params[:page]).per(10)
71
84
  end
72
-
85
+
86
+ def load_my_articles
87
+ @my_articles = @articles.where(user: current_ma_user)
88
+ end
89
+
73
90
  def load_article
74
- @article = Article.find(params.permit(:id))
91
+ @article = Article.find(params[:article_id])
92
+ end
93
+
94
+ def article_params
95
+ params[:article_id]
96
+ end
97
+
98
+ def load_edit_article
99
+ @article = Article.find(params.require(:article).permit(:article_id))
75
100
  end
76
101
 
77
102
  def load_comments
@@ -1,17 +1,19 @@
1
1
  class CommentsController < ApplicationController
2
2
 
3
3
  def create
4
- # $xvars['p'] is the query parameters like params in rails guide:
5
- # private
6
- # def comment_params
7
- # params.require(:comment).permit(:commenter, :body)
8
- # end
9
- #
10
- @article = Article.find($xvars['p']['comment']['article_id'])
11
- @comment = @article.comments.new(
12
- body: $xvars['p']['comment']['body'],
13
- user_id: $xvars["user_id"])
4
+ @article = Article.find(article_params["article_id"])
5
+ @comment = @article.comments.new(comment_params)
14
6
  @comment.save!
7
+ redirect_to controller: 'articles', action: 'show', article_id: @article
15
8
  end
16
9
 
10
+ private
11
+
12
+ def article_params
13
+ params.require(:comment).permit(:article_id)
14
+ end
15
+
16
+ def comment_params
17
+ params.require(:comment).permit(:body, :article_id, :user_id)
18
+ end
17
19
  end
@@ -49,7 +49,7 @@
49
49
  <node CREATED="1275788317299" ID="ID_716276608" MODIFIED="1511159716471" TEXT="link: error_logs: /jinda/error_logs"/>
50
50
  <node CREATED="1275788317299" ID="ID_1570419198" MODIFIED="1587858894833" TEXT="link: notice_logs: /jinda/notice_logs"/>
51
51
  </node>
52
- <node CREATED="1589756777499" ID="ID_853155456" MODIFIED="1589772589662" TEXT="docs: Document">
52
+ <node CREATED="1589756777499" FOLDED="true" ID="ID_853155456" MODIFIED="1592785016438" TEXT="docs: Document">
53
53
  <node CREATED="1589757073388" ID="ID_1938238774" MODIFIED="1589772640862" TEXT="link: My Document: /docs/my">
54
54
  <node CREATED="1589757125861" ID="ID_521286668" MODIFIED="1589757136547" TEXT="role:m"/>
55
55
  </node>
@@ -87,7 +87,7 @@
87
87
  </node>
88
88
  </node>
89
89
  </node>
90
- <node CREATED="1493393619430" FOLDED="true" ID="ID_554831343" MODIFIED="1591392794806" TEXT="notes: Notes">
90
+ <node CREATED="1493393619430" ID="ID_554831343" MODIFIED="1592926786394" TEXT="notes: Notes">
91
91
  <node CREATED="1493489768542" ID="ID_737469676" MODIFIED="1589772615102" TEXT="link:My Notes: /notes/my">
92
92
  <node CREATED="1493490295677" ID="ID_514416082" MODIFIED="1493490302239" TEXT="role:m"/>
93
93
  </node>
@@ -151,7 +151,7 @@
151
151
  </node>
152
152
  </node>
153
153
  </node>
154
- <node CREATED="1493393619430" FOLDED="true" ID="ID_328863650" MODIFIED="1591392789585" TEXT="articles: Article">
154
+ <node CREATED="1493393619430" ID="ID_328863650" MODIFIED="1592785024002" TEXT="articles: Article">
155
155
  <node CREATED="1493419096527" ID="ID_1521905276" MODIFIED="1493478060121" TEXT="link: All Articles: /articles"/>
156
156
  <node CREATED="1493489768542" FOLDED="true" ID="ID_1376361427" MODIFIED="1589757167952" TEXT="link: My article: /articles/my">
157
157
  <node CREATED="1493490295677" ID="ID_628476988" MODIFIED="1493490302239" TEXT="role:m"/>
@@ -179,9 +179,14 @@
179
179
  <icon BUILTIN="attach"/>
180
180
  <node CREATED="1493479557266" ID="ID_1681993437" MODIFIED="1493479561055" TEXT="role:m"/>
181
181
  </node>
182
- <node CREATED="1493419735921" ID="ID_1575963748" MODIFIED="1493489477505" TEXT="update: Update Article">
182
+ <node CREATED="1493419735921" ID="ID_1575963748" MODIFIED="1593286858918" TEXT="j_update: Update Article">
183
183
  <icon BUILTIN="bookmark"/>
184
184
  </node>
185
+ <node CREATED="1591278861459" ID="ID_863187878" MODIFIED="1591319807025" TEXT="/articles/my">
186
+ <arrowlink DESTINATION="ID_863187878" ENDARROW="Default" ENDINCLINATION="0;0;" ID="Arrow_ID_604727235" STARTARROW="None" STARTINCLINATION="0;0;"/>
187
+ <linktarget COLOR="#b0b0b0" DESTINATION="ID_863187878" ENDARROW="Default" ENDINCLINATION="0;0;" ID="Arrow_ID_604727235" SOURCE="ID_863187878" STARTARROW="None" STARTINCLINATION="0;0;"/>
188
+ <icon BUILTIN="forward"/>
189
+ </node>
185
190
  </node>
186
191
  <node CREATED="1495246388313" ID="ID_1861034169" MODIFIED="1585001527103" TEXT="xedit_article: xEdit Article">
187
192
  <icon BUILTIN="button_cancel"/>
@@ -189,12 +194,12 @@
189
194
  <icon BUILTIN="attach"/>
190
195
  <node CREATED="1495246517185" ID="ID_1224073606" MODIFIED="1495246522964" TEXT="role:m"/>
191
196
  </node>
192
- <node CREATED="1495246466176" ID="ID_1635586443" MODIFIED="1495266959360" TEXT="update: Update Article">
197
+ <node CREATED="1495246466176" ID="ID_1635586443" MODIFIED="1593286876869" TEXT="j_update: Update Article">
193
198
  <icon BUILTIN="bookmark"/>
194
199
  </node>
195
200
  </node>
196
201
  </node>
197
- <node CREATED="1493664700564" FOLDED="true" ID="ID_704959130" MODIFIED="1591392798294" TEXT="comments: Comment">
202
+ <node CREATED="1493664700564" ID="ID_704959130" MODIFIED="1592950100226" TEXT="comments: Comment">
198
203
  <icon BUILTIN="button_cancel"/>
199
204
  <node CREATED="1493665155709" ID="ID_1973520751" MODIFIED="1591392666652" TEXT="new_comment: New Comment">
200
205
  <icon BUILTIN="button_cancel"/>
@@ -202,6 +207,11 @@
202
207
  <icon BUILTIN="bookmark"/>
203
208
  <node CREATED="1493665231940" ID="ID_1645532530" MODIFIED="1493665237018" TEXT="role:m"/>
204
209
  </node>
210
+ <node CREATED="1591278861459" ID="ID_170265872" MODIFIED="1591319807025" TEXT="/articles/my">
211
+ <arrowlink DESTINATION="ID_170265872" ENDARROW="Default" ENDINCLINATION="0;0;" ID="Arrow_ID_1468117" STARTARROW="None" STARTINCLINATION="0;0;"/>
212
+ <linktarget COLOR="#b0b0b0" DESTINATION="ID_170265872" ENDARROW="Default" ENDINCLINATION="0;0;" ID="Arrow_ID_1468117" SOURCE="ID_170265872" STARTARROW="None" STARTINCLINATION="0;0;"/>
213
+ <icon BUILTIN="forward"/>
214
+ </node>
205
215
  </node>
206
216
  <node CREATED="1494393494180" ID="ID_1101205873" MODIFIED="1495275996686" TEXT="role:m"/>
207
217
  </node>
@@ -0,0 +1,366 @@
1
+ <map version="1.0.1">
2
+ <!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net -->
3
+ <node CREATED="1273819432637" ID="ID_1098419600" MODIFIED="1334737006485" TEXT="Jinda">
4
+ <node CREATED="1273819462973" ID="ID_282419531" MODIFIED="1589756758387" POSITION="right" TEXT="services">
5
+ <node CREATED="1275756501221" FOLDED="true" ID="ID_1720745721" MODIFIED="1583097151076" TEXT="users:User">
6
+ <node CREATED="1278491598711" ID="ID_1662699954" MODIFIED="1494393920347" TEXT="role:m"/>
7
+ <node CREATED="1279700865182" ID="ID_1266797279" MODIFIED="1357798847781" TEXT="link:info: /users"/>
8
+ <node CREATED="1319015338880" ID="ID_189841353" MODIFIED="1528215866339" TEXT="link:pending tasks: /jinda/pending"/>
9
+ <node CREATED="1275905802131" ID="ID_154000410" MODIFIED="1355422418892" TEXT="user:edit">
10
+ <node CREATED="1275756515843" ID="ID_1108188320" MODIFIED="1330477833918" TEXT="enter_user:edit">
11
+ <icon BUILTIN="attach"/>
12
+ <node CREATED="1282816887988" ID="ID_1767357871" MODIFIED="1282817769412" TEXT="rule:login? &amp;&amp; own_xmain?"/>
13
+ </node>
14
+ <node CREATED="1275756530989" ID="ID_1221806432" MODIFIED="1282822205361" TEXT="update_user">
15
+ <icon BUILTIN="bookmark"/>
16
+ </node>
17
+ </node>
18
+ <node CREATED="1275756504750" ID="ID_1382277695" MODIFIED="1355422424108" TEXT="pwd:change password">
19
+ <node CREATED="1275756515843" ID="ID_1559014937" MODIFIED="1330477842311" TEXT="enter: edit">
20
+ <icon BUILTIN="attach"/>
21
+ <node CREATED="1282816887988" ID="ID_2948144" MODIFIED="1282817769412" TEXT="rule:login? &amp;&amp; own_xmain?"/>
22
+ </node>
23
+ <node CREATED="1275756530989" ID="ID_1566171053" MODIFIED="1275756553762" TEXT="change_password">
24
+ <icon BUILTIN="bookmark"/>
25
+ </node>
26
+ </node>
27
+ </node>
28
+ <node CREATED="1275752678377" ID="ID_1348489452" MODIFIED="1588883079396" TEXT="admins:Admin">
29
+ <node CREATED="1275752688167" ID="ID_229996461" MODIFIED="1275752690948" TEXT="role:a"/>
30
+ <node CREATED="1282722836614" ID="ID_1213363124" MODIFIED="1330477902602" TEXT="edit_role:edit user role">
31
+ <node CREATED="1282722862918" ID="ID_1190117882" MODIFIED="1330477922159" TEXT="select_user:select user">
32
+ <icon BUILTIN="attach"/>
33
+ <node CREATED="1282722901932" ID="ID_1859523490" MODIFIED="1282722903469" TEXT="role:a"/>
34
+ </node>
35
+ <node CREATED="1282722868801" ID="ID_1325872490" MODIFIED="1330477926538" TEXT="edit_role:edit role">
36
+ <icon BUILTIN="attach"/>
37
+ <node CREATED="1282722901932" ID="ID_1992100954" MODIFIED="1282722903469" TEXT="role:a"/>
38
+ </node>
39
+ <node CREATED="1282722907306" ID="ID_1709875397" MODIFIED="1282722922669" TEXT="update_role">
40
+ <icon BUILTIN="bookmark"/>
41
+ </node>
42
+ </node>
43
+ <node CREATED="1273913393454" ID="ID_1088166839" MODIFIED="1511159690490" TEXT="link: pending tasks: /jinda/pending"/>
44
+ <node CREATED="1275790679363" ID="ID_829325467" MODIFIED="1511159696044" TEXT="link: logs: /jinda/logs"/>
45
+ <node CREATED="1507573166973" ID="ID_351025910" MODIFIED="1511159700908" TEXT="link: docs: /jinda/doc"/>
46
+ </node>
47
+ <node CREATED="1273706796854" ID="ID_1003882979" MODIFIED="1588964401951" TEXT="devs: Developer">
48
+ <node CREATED="1275373154914" ID="ID_340725299" MODIFIED="1275373158632" TEXT="role:d"/>
49
+ <node CREATED="1275788317299" ID="ID_716276608" MODIFIED="1511159716471" TEXT="link: error_logs: /jinda/error_logs"/>
50
+ <node CREATED="1275788317299" ID="ID_1570419198" MODIFIED="1587858894833" TEXT="link: notice_logs: /jinda/notice_logs"/>
51
+ </node>
52
+ <node CREATED="1589756777499" FOLDED="true" ID="ID_853155456" MODIFIED="1592785016438" TEXT="docs: Document">
53
+ <node CREATED="1589757073388" ID="ID_1938238774" MODIFIED="1589772640862" TEXT="link: My Document: /docs/my">
54
+ <node CREATED="1589757125861" ID="ID_521286668" MODIFIED="1589757136547" TEXT="role:m"/>
55
+ </node>
56
+ <node CREATED="1589756879955" ID="ID_899042293" MODIFIED="1589910229085" TEXT="doc_new: New Document">
57
+ <node CREATED="1589756946117" ID="ID_1840278804" MODIFIED="1589910235469" TEXT="doc_form: Doc Form">
58
+ <icon BUILTIN="attach"/>
59
+ <node CREATED="1589757054618" ID="ID_642998203" MODIFIED="1589757059003" TEXT="role: m"/>
60
+ </node>
61
+ <node CREATED="1589757264764" ID="ID_1352102524" MODIFIED="1589772413612" TEXT="doc_update: Doc update">
62
+ <icon BUILTIN="bookmark"/>
63
+ </node>
64
+ </node>
65
+ <node CREATED="1493419562726" ID="ID_339628868" MODIFIED="1590424956484" TEXT="doc_edit: Edit Document">
66
+ <icon BUILTIN="button_cancel"/>
67
+ <node CREATED="1493419577933" ID="ID_801950372" MODIFIED="1590180699851" TEXT="doc_select: Select Document">
68
+ <icon BUILTIN="attach"/>
69
+ <node CREATED="1493479602815" ID="ID_761787946" MODIFIED="1493479606921" TEXT="role:m"/>
70
+ </node>
71
+ <node CREATED="1493419612720" ID="ID_1190499756" MODIFIED="1590180735204" TEXT="doc_edit: Edit Document">
72
+ <icon BUILTIN="attach"/>
73
+ <node CREATED="1493479557266" ID="ID_1216426484" MODIFIED="1493479561055" TEXT="role:m"/>
74
+ </node>
75
+ <node CREATED="1581400438157" ID="ID_447781815" MODIFIED="1590180242343" TEXT="doc_update: Doc_update">
76
+ <icon BUILTIN="bookmark"/>
77
+ </node>
78
+ </node>
79
+ <node CREATED="1495246388313" ID="ID_278169779" MODIFIED="1590180135106" TEXT="doc_xedit: Doc_hidden_menu">
80
+ <icon BUILTIN="button_cancel"/>
81
+ <node CREATED="1493419612720" ID="ID_541432768" MODIFIED="1590180160498" TEXT="doc_edit: Edit">
82
+ <icon BUILTIN="attach"/>
83
+ <node CREATED="1493479557266" ID="ID_1339913531" MODIFIED="1493479561055" TEXT="role:m"/>
84
+ </node>
85
+ <node CREATED="1581400438157" ID="ID_802199910" MODIFIED="1590180242343" TEXT="doc_update: Doc_update">
86
+ <icon BUILTIN="bookmark"/>
87
+ </node>
88
+ </node>
89
+ </node>
90
+ <node CREATED="1493393619430" ID="ID_554831343" MODIFIED="1592926786394" TEXT="notes: Notes">
91
+ <node CREATED="1493489768542" ID="ID_737469676" MODIFIED="1589772615102" TEXT="link:My Notes: /notes/my">
92
+ <node CREATED="1493490295677" ID="ID_514416082" MODIFIED="1493490302239" TEXT="role:m"/>
93
+ </node>
94
+ <node CREATED="1493419257021" ID="ID_553734932" MODIFIED="1591278856955" TEXT="new: New Note">
95
+ <node CREATED="1493419299004" ID="ID_723334321" MODIFIED="1581351169990" TEXT="new_note: New ">
96
+ <icon BUILTIN="attach"/>
97
+ <node CREATED="1493479075294" ID="ID_1009521360" MODIFIED="1493479079687" TEXT="role:m"/>
98
+ </node>
99
+ <node CREATED="1493419491125" ID="ID_1125779183" MODIFIED="1581180747700" TEXT="create: Create">
100
+ <icon BUILTIN="bookmark"/>
101
+ </node>
102
+ <node CREATED="1591278861459" ID="ID_985992723" MODIFIED="1591319329198" TEXT="/notes/my">
103
+ <arrowlink DESTINATION="ID_985992723" ENDARROW="Default" ENDINCLINATION="0;0;" ID="Arrow_ID_650435572" STARTARROW="None" STARTINCLINATION="0;0;"/>
104
+ <linktarget COLOR="#b0b0b0" DESTINATION="ID_985992723" ENDARROW="Default" ENDINCLINATION="0;0;" ID="Arrow_ID_650435572" SOURCE="ID_985992723" STARTARROW="None" STARTINCLINATION="0;0;"/>
105
+ <icon BUILTIN="forward"/>
106
+ </node>
107
+ </node>
108
+ <node CREATED="1493419562726" FOLDED="true" ID="ID_1241171950" MODIFIED="1591278847249" TEXT="edit: Edit">
109
+ <node CREATED="1493419577933" ID="ID_1790163920" MODIFIED="1581350888992" TEXT="select_note: Select">
110
+ <icon BUILTIN="attach"/>
111
+ <node CREATED="1493479602815" ID="ID_1289003986" MODIFIED="1493479606921" TEXT="role:m"/>
112
+ </node>
113
+ <node CREATED="1493419612720" ID="ID_938262436" MODIFIED="1581350996674" TEXT="edit_note: Edit">
114
+ <icon BUILTIN="attach"/>
115
+ <node CREATED="1493479557266" ID="ID_211108947" MODIFIED="1493479561055" TEXT="role:m"/>
116
+ </node>
117
+ <node CREATED="1493419735921" ID="ID_1581002301" MODIFIED="1581180869775" TEXT="update: Update">
118
+ <icon BUILTIN="bookmark"/>
119
+ </node>
120
+ </node>
121
+ <node CREATED="1495246388313" FOLDED="true" ID="ID_320521408" MODIFIED="1591278851391" STYLE="fork" TEXT="delete:Delete">
122
+ <edge COLOR="#808080" STYLE="bezier" WIDTH="thin"/>
123
+ <node CREATED="1493419577933" ID="ID_1631275659" MODIFIED="1581350942681" TEXT="select_note: Select">
124
+ <icon BUILTIN="attach"/>
125
+ <node CREATED="1493479602815" ID="ID_851238107" MODIFIED="1493479606921" TEXT="role:m"/>
126
+ </node>
127
+ <node CREATED="1495246466176" ID="ID_1347765598" MODIFIED="1581799929028" TEXT="delete: Delete">
128
+ <icon BUILTIN="bookmark"/>
129
+ </node>
130
+ </node>
131
+ <node CREATED="1581531446494" FOLDED="true" ID="ID_1325232876" MODIFIED="1591278853597" TEXT="mail: Mail">
132
+ <node CREATED="1493419577933" FOLDED="true" ID="ID_1817148049" MODIFIED="1581531563343" TEXT="select_note: Select">
133
+ <icon BUILTIN="attach"/>
134
+ <node CREATED="1493479602815" ID="ID_1650154281" MODIFIED="1493479606921" TEXT="role:m"/>
135
+ </node>
136
+ <node CREATED="1581531468872" ID="ID_379926448" MODIFIED="1581564690354" TEXT="display_mail: Dsiplay Mail">
137
+ <icon BUILTIN="attach"/>
138
+ </node>
139
+ <node CREATED="1581564346466" ID="ID_1981382192" MODIFIED="1581564388041" TEXT="mail: Mail">
140
+ <icon BUILTIN="bookmark"/>
141
+ </node>
142
+ </node>
143
+ <node CREATED="1495246388313" FOLDED="true" ID="ID_807216843" MODIFIED="1590180066630" TEXT="xedit: Future use">
144
+ <icon BUILTIN="button_cancel"/>
145
+ <node CREATED="1493419612720" ID="ID_6864095" MODIFIED="1584999031935" TEXT="edit_note: Edit">
146
+ <icon BUILTIN="attach"/>
147
+ <node CREATED="1493479557266" ID="ID_297597260" MODIFIED="1493479561055" TEXT="role:m"/>
148
+ </node>
149
+ <node CREATED="1581400438157" ID="ID_1206027492" MODIFIED="1581400464170" TEXT="update: Update">
150
+ <icon BUILTIN="bookmark"/>
151
+ </node>
152
+ </node>
153
+ </node>
154
+ <node CREATED="1493393619430" ID="ID_328863650" MODIFIED="1592785024002" TEXT="articles: Article">
155
+ <node CREATED="1493419096527" ID="ID_1521905276" MODIFIED="1493478060121" TEXT="link: All Articles: /articles"/>
156
+ <node CREATED="1493489768542" FOLDED="true" ID="ID_1376361427" MODIFIED="1589757167952" TEXT="link: My article: /articles/my">
157
+ <node CREATED="1493490295677" ID="ID_628476988" MODIFIED="1493490302239" TEXT="role:m"/>
158
+ </node>
159
+ <node CREATED="1493419257021" ID="ID_1355420049" MODIFIED="1588619429446" TEXT="new_article: New Article">
160
+ <node CREATED="1493419299004" ID="ID_1468250197" MODIFIED="1493419428686" TEXT="form_article: New Article">
161
+ <icon BUILTIN="attach"/>
162
+ <node CREATED="1493479075294" ID="ID_1145618514" MODIFIED="1493479079687" TEXT="role:m"/>
163
+ </node>
164
+ <node CREATED="1493419491125" ID="ID_1687683396" MODIFIED="1493483244848" TEXT="create: Create Article">
165
+ <icon BUILTIN="bookmark"/>
166
+ </node>
167
+ <node CREATED="1591278861459" ID="ID_657878492" MODIFIED="1591319807025" TEXT="/articles/my">
168
+ <arrowlink DESTINATION="ID_657878492" ENDARROW="Default" ENDINCLINATION="0;0;" ID="Arrow_ID_883618983" STARTARROW="None" STARTINCLINATION="0;0;"/>
169
+ <linktarget COLOR="#b0b0b0" DESTINATION="ID_657878492" ENDARROW="Default" ENDINCLINATION="0;0;" ID="Arrow_ID_883618983" SOURCE="ID_657878492" STARTARROW="None" STARTINCLINATION="0;0;"/>
170
+ <icon BUILTIN="forward"/>
171
+ </node>
172
+ </node>
173
+ <node CREATED="1493419562726" ID="ID_922854639" MODIFIED="1590180584955" TEXT="edit_article: Edit Article">
174
+ <node CREATED="1493419577933" ID="ID_938626803" MODIFIED="1538329139586" TEXT="select_article: Select Article">
175
+ <icon BUILTIN="attach"/>
176
+ <node CREATED="1493479602815" ID="ID_753056881" MODIFIED="1493479606921" TEXT="role:m"/>
177
+ </node>
178
+ <node CREATED="1493419612720" ID="ID_661682947" MODIFIED="1493524438941" TEXT="edit_article: Edit Article">
179
+ <icon BUILTIN="attach"/>
180
+ <node CREATED="1493479557266" ID="ID_1681993437" MODIFIED="1493479561055" TEXT="role:m"/>
181
+ </node>
182
+ <node CREATED="1493419735921" ID="ID_1575963748" MODIFIED="1593286858918" TEXT="j_update: Update Article">
183
+ <icon BUILTIN="bookmark"/>
184
+ </node>
185
+ <node CREATED="1591278861459" ID="ID_863187878" MODIFIED="1591319807025" TEXT="/articles/my">
186
+ <arrowlink DESTINATION="ID_863187878" ENDARROW="Default" ENDINCLINATION="0;0;" ID="Arrow_ID_604727235" STARTARROW="None" STARTINCLINATION="0;0;"/>
187
+ <linktarget COLOR="#b0b0b0" DESTINATION="ID_863187878" ENDARROW="Default" ENDINCLINATION="0;0;" ID="Arrow_ID_604727235" SOURCE="ID_863187878" STARTARROW="None" STARTINCLINATION="0;0;"/>
188
+ <icon BUILTIN="forward"/>
189
+ </node>
190
+ </node>
191
+ <node CREATED="1495246388313" ID="ID_1861034169" MODIFIED="1585001527103" TEXT="xedit_article: xEdit Article">
192
+ <icon BUILTIN="button_cancel"/>
193
+ <node CREATED="1495246432533" ID="ID_91386173" MODIFIED="1495267233398" TEXT="edit_article: Edit Article">
194
+ <icon BUILTIN="attach"/>
195
+ <node CREATED="1495246517185" ID="ID_1224073606" MODIFIED="1495246522964" TEXT="role:m"/>
196
+ </node>
197
+ <node CREATED="1495246466176" ID="ID_1635586443" MODIFIED="1593286876869" TEXT="j_update: Update Article">
198
+ <icon BUILTIN="bookmark"/>
199
+ </node>
200
+ </node>
201
+ </node>
202
+ <node CREATED="1493664700564" ID="ID_704959130" MODIFIED="1592950100226" TEXT="comments: Comment">
203
+ <icon BUILTIN="button_cancel"/>
204
+ <node CREATED="1493665155709" ID="ID_1973520751" MODIFIED="1591392666652" TEXT="new_comment: New Comment">
205
+ <icon BUILTIN="button_cancel"/>
206
+ <node CREATED="1493665192413" ID="ID_345629058" MODIFIED="1493665226422" TEXT="create">
207
+ <icon BUILTIN="bookmark"/>
208
+ <node CREATED="1493665231940" ID="ID_1645532530" MODIFIED="1493665237018" TEXT="role:m"/>
209
+ </node>
210
+ <node CREATED="1591278861459" ID="ID_170265872" MODIFIED="1591319807025" TEXT="/articles/my">
211
+ <arrowlink DESTINATION="ID_170265872" ENDARROW="Default" ENDINCLINATION="0;0;" ID="Arrow_ID_1468117" STARTARROW="None" STARTINCLINATION="0;0;"/>
212
+ <linktarget COLOR="#b0b0b0" DESTINATION="ID_170265872" ENDARROW="Default" ENDINCLINATION="0;0;" ID="Arrow_ID_1468117" SOURCE="ID_170265872" STARTARROW="None" STARTINCLINATION="0;0;"/>
213
+ <icon BUILTIN="forward"/>
214
+ </node>
215
+ </node>
216
+ <node CREATED="1494393494180" ID="ID_1101205873" MODIFIED="1495275996686" TEXT="role:m"/>
217
+ </node>
218
+ <node CREATED="1489875563330" FOLDED="true" ID="ID_1495015891" MODIFIED="1507248509212" TEXT="ctrs: ctrs&amp; Menu">
219
+ <node CREATED="1489875583646" ID="ID_1796125628" MODIFIED="1494393464288" TEXT="role:a"/>
220
+ <node CREATED="1275905802131" ID="ID_1960607342" MODIFIED="1489938927874" TEXT="vfolder1:Sub Menu 1">
221
+ <node CREATED="1275756515843" ID="ID_328242903" MODIFIED="1489939229748" TEXT="viewfile1: Title 1">
222
+ <icon BUILTIN="attach"/>
223
+ <node CREATED="1282816887988" ID="ID_1479413309" MODIFIED="1282817769412" TEXT="rule:login? &amp;&amp; own_xmain?"/>
224
+ </node>
225
+ <node CREATED="1275756515843" ID="ID_1316819449" MODIFIED="1490683859703" TEXT="viewfile2: Title 2">
226
+ <icon BUILTIN="attach"/>
227
+ <node CREATED="1282816887988" ID="ID_1510989172" MODIFIED="1282817769412" TEXT="rule:login? &amp;&amp; own_xmain?"/>
228
+ </node>
229
+ <node CREATED="1275756530989" ID="ID_171099141" MODIFIED="1489939276491" TEXT="update_viewfile1">
230
+ <icon BUILTIN="bookmark"/>
231
+ </node>
232
+ </node>
233
+ <node CREATED="1275756504750" ID="ID_914236141" MODIFIED="1489939000929" TEXT="vfolder2:Title 2">
234
+ <node CREATED="1275756515843" ID="ID_1222970183" MODIFIED="1489939293714" TEXT="viewfile2: Title 2">
235
+ <icon BUILTIN="attach"/>
236
+ <node CREATED="1282816887988" ID="ID_1312913420" MODIFIED="1282817769412" TEXT="rule:login? &amp;&amp; own_xmain?"/>
237
+ </node>
238
+ </node>
239
+ </node>
240
+ <node CREATED="1494172726642" ID="ID_925257043" MODIFIED="1494172755433" TEXT="sitemap: Sitemap">
241
+ <node CREATED="1494172758253" ID="ID_961056168" MODIFIED="1494172797972" TEXT="sitemap: Sitemap"/>
242
+ <node CREATED="1494393494180" ID="ID_242460166" MODIFIED="1494393504971" TEXT="role:a"/>
243
+ </node>
244
+ <node CREATED="1493393619430" FOLDED="true" ID="ID_35210833" MODIFIED="1591392800862" TEXT="api/v1/notes: Notes API ">
245
+ <node CREATED="1493489768542" ID="ID_1053900670" MODIFIED="1591074318558" TEXT="link:My Notes: /api/v1/notes/my">
246
+ <icon BUILTIN="button_cancel"/>
247
+ <node CREATED="1493490295677" ID="ID_1597553308" MODIFIED="1493490302239" TEXT="role:m"/>
248
+ </node>
249
+ <node CREATED="1493419257021" ID="ID_1182560700" MODIFIED="1581180635669" TEXT="new: New Note">
250
+ <node CREATED="1493419299004" ID="ID_840380967" MODIFIED="1581351169990" TEXT="new_note: New ">
251
+ <icon BUILTIN="attach"/>
252
+ <node CREATED="1493479075294" ID="ID_10690659" MODIFIED="1493479079687" TEXT="role:m"/>
253
+ </node>
254
+ <node CREATED="1493419491125" ID="ID_924027059" MODIFIED="1581180747700" TEXT="create: Create">
255
+ <icon BUILTIN="bookmark"/>
256
+ </node>
257
+ </node>
258
+ <node CREATED="1493419562726" ID="ID_963001770" MODIFIED="1581180788218" TEXT="edit: Edit">
259
+ <node CREATED="1493419612720" ID="ID_1362613316" MODIFIED="1581350996674" TEXT="edit_note: Edit">
260
+ <icon BUILTIN="attach"/>
261
+ <node CREATED="1493479557266" ID="ID_1838104057" MODIFIED="1493479561055" TEXT="role:m"/>
262
+ </node>
263
+ <node CREATED="1493419735921" ID="ID_1445882396" MODIFIED="1581180869775" TEXT="update: Update">
264
+ <icon BUILTIN="bookmark"/>
265
+ </node>
266
+ </node>
267
+ <node CREATED="1495246388313" ID="ID_918406528" MODIFIED="1581340759604" STYLE="fork" TEXT="delete:Delete">
268
+ <edge COLOR="#808080" STYLE="bezier" WIDTH="thin"/>
269
+ <node CREATED="1493419577933" ID="ID_809771470" MODIFIED="1581350942681" TEXT="select_note: Select">
270
+ <icon BUILTIN="attach"/>
271
+ <node CREATED="1493479602815" ID="ID_1160875526" MODIFIED="1493479606921" TEXT="role:m"/>
272
+ </node>
273
+ <node CREATED="1495246466176" ID="ID_506410154" MODIFIED="1581799929028" TEXT="delete: Delete">
274
+ <icon BUILTIN="bookmark"/>
275
+ </node>
276
+ </node>
277
+ </node>
278
+ </node>
279
+ <node CREATED="1273819465949" FOLDED="true" ID="ID_855471610" MODIFIED="1583097143651" POSITION="right" TEXT="roles">
280
+ <node CREATED="1273819847470" ID="ID_1681080231" MODIFIED="1330477307826" TEXT="m: member"/>
281
+ <node CREATED="1273819855875" ID="ID_1429503284" MODIFIED="1330477311102" TEXT="a: admin"/>
282
+ <node CREATED="1273819859775" ID="ID_568365839" MODIFIED="1330477315009" TEXT="d: developer"/>
283
+ </node>
284
+ <node CREATED="1273819456867" FOLDED="true" ID="ID_1677010054" MODIFIED="1591392810437" POSITION="left" TEXT="models">
285
+ <node CREATED="1292122118499" FOLDED="true" ID="ID_1957754752" MODIFIED="1493705885123" TEXT="person">
286
+ <node CREATED="1292122135809" ID="ID_1617970069" MODIFIED="1332878659106" TEXT="fname"/>
287
+ <node CREATED="1292122150362" ID="ID_1200135538" MODIFIED="1332878662388" TEXT="lname"/>
288
+ <node CREATED="1332876694150" ID="ID_1770958985" MODIFIED="1332876730552" TEXT="sex: integer">
289
+ <node CREATED="1332878665790" ID="ID_793089342" MODIFIED="1332878668499" TEXT="1: male"/>
290
+ <node CREATED="1332878669085" ID="ID_1796007763" MODIFIED="1332878673144" TEXT="2: female"/>
291
+ </node>
292
+ <node CREATED="1292123322429" ID="ID_1509464300" MODIFIED="1332878620176" TEXT="belongs_to :address">
293
+ <icon BUILTIN="edit"/>
294
+ </node>
295
+ <node CREATED="1292122156430" ID="ID_604231613" MODIFIED="1292122161324" TEXT="dob: date"/>
296
+ <node CREATED="1286576968143" ID="ID_936807610" MODIFIED="1332878681362" TEXT="phone"/>
297
+ <node CREATED="1290823140269" ID="ID_1957301629" MODIFIED="1332878684453" TEXT="photo"/>
298
+ </node>
299
+ <node CREATED="1292122236285" FOLDED="true" ID="ID_959987887" MODIFIED="1493768919147" TEXT="address">
300
+ <node CREATED="1292122254622" ID="ID_430517150" MODIFIED="1355422372241" TEXT="address_street"/>
301
+ <node CREATED="1355422373525" ID="ID_1797865138" MODIFIED="1355422378352" TEXT="city"/>
302
+ <node CREATED="1355422378959" ID="ID_1964490487" MODIFIED="1355422380765" TEXT="state"/>
303
+ <node CREATED="1355422381231" ID="ID_1226075540" MODIFIED="1355422382748" TEXT="zip"/>
304
+ <node CREATED="1332876680122" ID="ID_65427990" MODIFIED="1332876682148" TEXT="phone"/>
305
+ <node CREATED="1292243471343" ID="ID_1859608350" MODIFIED="1310195256623" TEXT="lat: float"/>
306
+ <node CREATED="1292243477436" ID="ID_48497260" MODIFIED="1310195262534" TEXT="lng: float"/>
307
+ </node>
308
+ <node CREATED="1493418879485" FOLDED="true" ID="ID_1995497233" MODIFIED="1583097163789" TEXT="article">
309
+ <node CREATED="1493418891110" ID="ID_364756011" MODIFIED="1493418905253" TEXT="title"/>
310
+ <node CREATED="1493418906868" ID="ID_1676483995" MODIFIED="1493418911919" TEXT="text"/>
311
+ <node CREATED="1493487131376" ID="ID_1334057464" MODIFIED="1538328284823" TEXT="belongs_to :user, :class_name =&gt; &quot;User&quot;">
312
+ <icon BUILTIN="edit"/>
313
+ </node>
314
+ <node CREATED="1493705838166" ID="ID_408271104" MODIFIED="1493705877062" TEXT="has_many :comments">
315
+ <icon BUILTIN="edit"/>
316
+ </node>
317
+ <node CREATED="1493718773517" ID="ID_944554146" MODIFIED="1493718808965" TEXT="validates :title, :text, :user_id, presence: true">
318
+ <icon BUILTIN="edit"/>
319
+ </node>
320
+ <node CREATED="1494181636998" ID="ID_229502630" MODIFIED="1494181660419" TEXT="body"/>
321
+ <node CREATED="1497913676275" ID="ID_404103076" MODIFIED="1497913685065" TEXT="keywords"/>
322
+ </node>
323
+ <node CREATED="1493418915637" FOLDED="true" ID="ID_429078131" MODIFIED="1583097162517" TEXT="comment">
324
+ <node CREATED="1493418939760" ID="ID_1251093062" MODIFIED="1493418943423" TEXT="body"/>
325
+ <node CREATED="1493418945686" ID="ID_911071644" MODIFIED="1493418986711" TEXT="belongs_to :article">
326
+ <icon BUILTIN="edit"/>
327
+ </node>
328
+ <node CREATED="1493643129947" ID="ID_588013696" MODIFIED="1493643146424" TEXT="belongs_to :user">
329
+ <icon BUILTIN="edit"/>
330
+ </node>
331
+ <node CREATED="1493718512191" ID="ID_173203253" MODIFIED="1493718583874" TEXT="validates :body, :user_id, :article_id, presence: true">
332
+ <icon BUILTIN="edit"/>
333
+ </node>
334
+ </node>
335
+ <node CREATED="1494040082403" FOLDED="true" ID="ID_864577403" MODIFIED="1583097161145" TEXT="picture">
336
+ <node CREATED="1494040091583" ID="ID_679208099" MODIFIED="1494040119098" TEXT="picture"/>
337
+ <node CREATED="1494040120208" ID="ID_1266154874" MODIFIED="1494040125130" TEXT="description"/>
338
+ <node CREATED="1493487131376" ID="ID_1422817360" MODIFIED="1493487186856" TEXT="belongs_to :user">
339
+ <icon BUILTIN="edit"/>
340
+ </node>
341
+ </node>
342
+ <node CREATED="1581177067029" FOLDED="true" ID="ID_1450593753" MODIFIED="1583089083450" TEXT="note">
343
+ <node CREATED="1581243923100" ID="ID_537548385" MODIFIED="1581243965554" TEXT="include Mongoid::Attributes::Dynamic">
344
+ <icon BUILTIN="edit"/>
345
+ </node>
346
+ <node CREATED="1581177848957" ID="ID_1611227370" MODIFIED="1581177857470" TEXT="title"/>
347
+ <node CREATED="1581177867775" ID="ID_88547965" MODIFIED="1581177883555" TEXT="body"/>
348
+ <node CREATED="1493643129947" ID="ID_1655403736" MODIFIED="1493643146424" TEXT="belongs_to :user">
349
+ <icon BUILTIN="edit"/>
350
+ </node>
351
+ <node CREATED="1581984419312" ID="ID_1934899110" MODIFIED="1581985586488" TEXT="before_validation :ensure_title_has_a_value ">
352
+ <icon BUILTIN="edit"/>
353
+ </node>
354
+ <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">
355
+ <icon BUILTIN="edit"/>
356
+ </node>
357
+ <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;} ">
358
+ <icon BUILTIN="edit"/>
359
+ </node>
360
+ <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;">
361
+ <icon BUILTIN="edit"/>
362
+ </node>
363
+ </node>
364
+ </node>
365
+ </node>
366
+ </map>