|
@@ -7,15 +7,19 @@ pod :: document ${current_node.getTruncatedLabel(40)} [#${current_node.node_id}
|
7
|
7
|
|
8
|
8
|
<%def name="node_treeview_for_set_parent_menu(node_id, node_list, indentation=-1)">
|
9
|
9
|
% if indentation==-1:
|
10
|
|
- <li><a href="${tg.url('/api/set_parent_node?node_id=%i&new_parent_id=0'%(current_node.node_id))}">${_('Home')}</a>
|
|
10
|
+ <li>
|
|
11
|
+ <a href="${tg.url('/api/set_parent_node?node_id=%i&new_parent_id=0'%(current_node.node_id))}">
|
|
12
|
+ <i class="fa fa-file-text-o"></i> ${_('Home')}
|
|
13
|
+ </a>
|
11
|
14
|
${node_treeview_for_set_parent_menu(node_id, node_list, 0)}
|
12
|
15
|
</li>
|
13
|
16
|
% else:
|
14
|
17
|
% if len(node_list)>0:
|
15
|
|
- <ul>
|
|
18
|
+ <ul style="list-style: none;">
|
16
|
19
|
% for new_parent_node in node_list:
|
17
|
20
|
<li>
|
18
|
|
- <a href="${tg.url('/api/set_parent_node?node_id=%i&new_parent_id=%i'%(node_id, new_parent_node.node_id))}">${new_parent_node.getTruncatedLabel(40-indentation*2)}</a>
|
|
21
|
+ <a href="${tg.url('/api/set_parent_node?node_id=%i&new_parent_id=%i'%(node_id, new_parent_node.node_id))}"><i class="fa fa-file-text-o"></i> ${new_parent_node.getTruncatedLabel(40-indentation*2)}
|
|
22
|
+ </a>
|
19
|
23
|
${node_treeview_for_set_parent_menu(node_id, new_parent_node.getStaticChildList(), indentation+1)}
|
20
|
24
|
</li>
|
21
|
25
|
% endfor
|
|
@@ -82,6 +86,20 @@ pod :: document ${current_node.getTruncatedLabel(40)} [#${current_node.node_id}
|
82
|
86
|
% endif
|
83
|
87
|
</%def>
|
84
|
88
|
|
|
89
|
+#######
|
|
90
|
+##
|
|
91
|
+## HERE COMES THE BREADCRUMB
|
|
92
|
+##
|
|
93
|
+ <div class="row">
|
|
94
|
+<ul class="breadcrumb span12">
|
|
95
|
+ <li><span class="divider"> / Documents /</span></li>
|
|
96
|
+ % for breadcrumb_node in current_node.getBreadCrumbNodes():
|
|
97
|
+ <li><a href="${tg.url('/document/%s'%(breadcrumb_node.node_id))}">${breadcrumb_node.getTruncatedLabel(30)}</a> <span class="divider">/</span></li>
|
|
98
|
+ % endfor
|
|
99
|
+ <li class="active">${current_node.data_label}</li>
|
|
100
|
+</ul>
|
|
101
|
+ </div>
|
|
102
|
+
|
85
|
103
|
<div class="row">
|
86
|
104
|
<div id='application-left-panel' class="span3">
|
87
|
105
|
<div>
|
|
@@ -89,107 +107,203 @@ pod :: document ${current_node.getTruncatedLabel(40)} [#${current_node.node_id}
|
89
|
107
|
</div>
|
90
|
108
|
</div>
|
91
|
109
|
<div id='application-main-panel' class="span9">
|
92
|
|
- % if current_node.parent_id!=None and current_node.parent_id!=0:
|
93
|
|
- <div class="btn-group">
|
94
|
|
- <a class="btn " href="${tg.url('/document/%i'%current_node.parent_id)}" title="${_("Go to parent document")}"><i class="fa fa-hand-o-left"></i></a>
|
95
|
|
- </div>
|
96
|
|
- % endif
|
97
|
|
- <div class="btn-group">
|
98
|
|
- <button class="btn" data-toggle="dropdown" href="#">${_("Change status")}</button>
|
99
|
|
- <a class="btn dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>
|
100
|
|
- <ul class="dropdown-menu">
|
101
|
|
- % for node_status in node_status_list:
|
102
|
|
- % if node_status.status_id==current_node.getStatus().status_id:
|
103
|
|
- <li title="${h.getExplanationAboutStatus(node_status.status_id, current_node.getStatus().status_id)}">
|
104
|
|
- <a class="${node_status.css}" href="#" style="color: #999;">
|
105
|
|
- <i class="${node_status.icon_id}"></i> ${node_status.label}
|
106
|
|
- </a>
|
107
|
|
- </li>
|
108
|
|
- % else:
|
109
|
|
- <li title="${h.getExplanationAboutStatus(node_status.status_id, current_node.getStatus().status_id)}">
|
110
|
|
- <a class="${node_status.css}" href="${tg.url('/api/edit_status?node_id=%i&node_status=%s'%(current_node.node_id, node_status.status_id))}">
|
111
|
|
- <i class="${node_status.icon_id}"></i> ${node_status.label}
|
112
|
|
- </a>
|
113
|
|
- </li>
|
114
|
|
- % endif
|
115
|
|
- % endfor
|
116
|
|
- </ul>
|
117
|
|
- </div>
|
118
|
|
- <div class="btn-group">
|
119
|
|
- ${POD.EditButton('current-document-content-edit-button', True)}
|
120
|
|
- <a class="btn" href="#" data-toggle="dropdown"><i class="icon-g-move"></i> ${_('Move to')} <span class="caret"></span></a>
|
121
|
|
- <ul class="dropdown-menu">
|
122
|
|
- ${node_treeview_for_set_parent_menu(current_node.node_id, root_node_list)}
|
123
|
|
- </ul>
|
124
|
|
-
|
125
|
|
- <a href='${tg.url('/api/edit_status?node_id=%i&node_status=%s'%(current_node.node_id, 'deleted'))}' id='current-document-force-delete-button' class="btn" onclick="return confirm('${_('Delete current document?')}');"><i class="fa fa-trash-o"></i> ${_('Delete')}</a>
|
126
|
|
-
|
127
|
|
- </div>
|
128
|
110
|
|
129
|
111
|
<div class="row">
|
130
|
112
|
<div id='application-document-panel' class="span5">
|
131
|
|
- <p>
|
132
|
|
- <div id='current-document-content' class="">
|
133
|
|
- <h3 id="current-document-title">#${current_node.node_id} - ${current_node.data_label}
|
134
|
|
- <span class="label ${current_node.getStatus().css}" href="#">${current_node.getStatus().label}</a>
|
135
|
|
-
|
136
|
|
- </h3>
|
137
|
|
- ${current_node.getContentWithTags()|n}
|
|
113
|
+ <div id='current-document-content' class="">
|
|
114
|
+######
|
|
115
|
+##
|
|
116
|
+## CURRENT DOCUMENT TOOLBAR - START
|
|
117
|
+##
|
|
118
|
+ <div id="current-document-toobar">
|
|
119
|
+ <div class="btn-group">
|
|
120
|
+ % if current_node.parent_id!=None and current_node.parent_id!=0:
|
|
121
|
+ ${POD.EditButton('current-document-content-edit-button', True)}
|
|
122
|
+ % endif
|
|
123
|
+ ## </div>
|
|
124
|
+ ## <div class="btn-group">
|
|
125
|
+ <button class="btn btn-small" data-toggle="dropdown" href="#">
|
|
126
|
+ <i class="fa fa-signal"></i>
|
|
127
|
+ ${_("Change status")}
|
|
128
|
+ </button>
|
|
129
|
+ <a class="btn btn-small dropdown-toggle" data-toggle="dropdown" href="#">
|
|
130
|
+ <span class="caret"></span>
|
|
131
|
+ </a>
|
|
132
|
+ <ul class="dropdown-menu">
|
|
133
|
+ % for node_status in node_status_list:
|
|
134
|
+ % if node_status.status_id==current_node.getStatus().status_id:
|
|
135
|
+ <li title="${h.getExplanationAboutStatus(node_status.status_id, current_node.getStatus().status_id)}">
|
|
136
|
+ <a class="${node_status.css}" href="#" style="color: #999;">
|
|
137
|
+ <i class="${node_status.icon_id}"></i> ${node_status.label}
|
|
138
|
+ </a>
|
|
139
|
+ </li>
|
|
140
|
+ % else:
|
|
141
|
+ <li title="${h.getExplanationAboutStatus(node_status.status_id, current_node.getStatus().status_id)}">
|
|
142
|
+ <a class="${node_status.css}" href="${tg.url('/api/edit_status?node_id=%i&node_status=%s'%(current_node.node_id, node_status.status_id))}">
|
|
143
|
+ <i class="${node_status.icon_id}"></i> ${node_status.label}
|
|
144
|
+ </a>
|
|
145
|
+ </li>
|
|
146
|
+ % endif
|
|
147
|
+ % endfor
|
|
148
|
+ </ul>
|
|
149
|
+ </div>
|
|
150
|
+ <div class="btn-group">
|
|
151
|
+ <button class="btn btn-small btn-success" data-toggle="dropdown" href="#">
|
|
152
|
+ <i class="fa fa-plus"></i> ${_('Add')}
|
|
153
|
+ </button>
|
|
154
|
+ <a class="btn btn-small dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>
|
|
155
|
+ <ul class="dropdown-menu">
|
|
156
|
+
|
|
157
|
+ <li>
|
|
158
|
+ <div class="btn-success strong" ><strong><i class="fa fa-magic"></i> Add New...</strong><br/></div>
|
|
159
|
+ <div class="pod-grey"><i>create a totally new item...</i></div>
|
|
160
|
+ </li>
|
|
161
|
+
|
|
162
|
+ <li><a><i class="fa fa-file-text-o"></i> Document</a></li>
|
|
163
|
+ <li><a><i class="fa fa-paperclip"></i> File</a></li>
|
|
164
|
+ <li><a><i class="fa fa-calendar"></i> Event</a></li>
|
|
165
|
+ <li><a><i class="fa fa-user"></i> Contact</a></li>
|
|
166
|
+ <li><a><i class="fa fa-comments-o"></i> Comment</a></li>
|
|
167
|
+
|
|
168
|
+ <li class="divider" role="presentation"></li>
|
|
169
|
+
|
|
170
|
+ <li>
|
|
171
|
+ <div class="btn-warning strong" ><strong><i class="fa fa-link"></i> Add Existing...</strong><br/></div>
|
|
172
|
+ <div class="pod-grey"><i>link to an existing item...</i></div>
|
|
173
|
+ </li>
|
|
174
|
+ <li><a><i class="fa fa-file-text-o"></i> Document</a></li>
|
|
175
|
+ <li><a><i class="fa fa-paperclip"></i> File</a></li>
|
|
176
|
+ <li><a><i class="fa fa-calendar"></i> Event</a></li>
|
|
177
|
+ <li><a><i class="fa fa-user"></i> Contact</a></li>
|
|
178
|
+ <li><a><i class="fa fa-comments-o"></i> Comment</a></li>
|
|
179
|
+
|
|
180
|
+ </ul>
|
|
181
|
+ </div>
|
|
182
|
+ <div class="btn-group ">
|
|
183
|
+ <a
|
|
184
|
+ class="btn btn-small btn-warning"
|
|
185
|
+ href="#"
|
|
186
|
+ data-toggle="dropdown"
|
|
187
|
+ title="${_('Move to')}"
|
|
188
|
+ ><i class="fa fa-arrows"></i></a>
|
|
189
|
+ <ul class="dropdown-menu">
|
|
190
|
+ <li >
|
|
191
|
+ <div class="btn-warning strong" ><strong><i class="fa fa-magic"></i> ${_("Move the document...")}</strong><br/></div>
|
|
192
|
+ <div class="pod-grey"><i>move the document to...</i></div>
|
|
193
|
+ </li>
|
|
194
|
+ ${node_treeview_for_set_parent_menu(current_node.node_id, root_node_list)}
|
|
195
|
+ </ul>
|
|
196
|
+ <a
|
|
197
|
+ class="btn btn-small btn-danger"
|
|
198
|
+ href='${tg.url('/api/edit_status?node_id=%i&node_status=%s'%(current_node.node_id, 'deleted'))}'
|
|
199
|
+ id='current-document-force-delete-button' onclick="return confirm('${_('Delete current document?')}');"
|
|
200
|
+ title="${_('Delete')}"
|
|
201
|
+ ><i class="fa fa-trash-o"></i></a>
|
|
202
|
+ </div>
|
|
203
|
+ </div>
|
|
204
|
+##
|
|
205
|
+## CURRENT DOCUMENT TOOLBAR - END
|
|
206
|
+##
|
|
207
|
+######
|
|
208
|
+
|
|
209
|
+######
|
|
210
|
+##
|
|
211
|
+## CURRENT DOCUMENT CONTENT - START
|
|
212
|
+##
|
|
213
|
+ <h3 id="current-document-title">#${current_node.node_id} - ${current_node.data_label}
|
|
214
|
+ <span class="label ${current_node.getStatus().css}" href="#">${current_node.getStatus().label}</a>
|
|
215
|
+ </h3>
|
|
216
|
+ % if len(keywords)>0 and keywords!='':
|
|
217
|
+ ${current_node.getContentWithHighlightedKeywords(keywords.split(), current_node.getContentWithTags())|n}
|
|
218
|
+ % else:
|
|
219
|
+ ${current_node.getContentWithTags()|n}
|
|
220
|
+ % endif
|
|
221
|
+ </div>
|
|
222
|
+ <form style='display: none;' id="current-document-content-edit-form" method='post' action='${tg.url('/api/edit_label_and_content')}'>
|
|
223
|
+ <div>
|
|
224
|
+ ${POD.CancelButton('current-document-content-edit-cancel-button-top', True)}
|
|
225
|
+ ${POD.SaveButton('current-document-content-edit-save-button-top', True)}
|
138
|
226
|
</div>
|
139
|
|
- <form style='display: none;' id="current-document-content-edit-form" method='post' action='${tg.url('/api/edit_label_and_content')}'>
|
|
227
|
+ <div style="padding: 0.5em 0 0 0">
|
140
|
228
|
<input type='hidden' name='node_id' value='${current_node.node_id}'/>
|
141
|
229
|
<input type="hidden" name='data_content' id="current_node_textarea" />
|
142
|
230
|
<input type='text' name='data_label' value='${current_node.data_label}' class="span4" placeholder="document title" />
|
|
231
|
+ </div>
|
|
232
|
+ <div>
|
143
|
233
|
${POD.RichTextEditor('current_node_textarea_wysiwyg', current_node.data_content)}
|
|
234
|
+ </div>
|
|
235
|
+ <div class="pull-right">
|
144
|
236
|
${POD.CancelButton('current-document-content-edit-cancel-button', True)}
|
145
|
237
|
${POD.SaveButton('current-document-content-edit-save-button', True)}
|
146
|
|
-
|
147
|
|
-
|
148
|
|
- </form>
|
149
|
|
- </p>
|
|
238
|
+ </div>
|
|
239
|
+ </form>
|
150
|
240
|
</div>
|
151
|
241
|
## FIXME - D.A - 2013-11-07 - The following div should be span4 instead of span3 but some bug make it impossible
|
152
|
242
|
<div id='application-metadata-panel' class="span4">
|
153
|
243
|
<div class="tabbable">
|
154
|
244
|
<ul class="nav nav-tabs">
|
155
|
|
- ## FIXME - D.A. - 2013-11-07 - TO REMOVE OR TO REACTIVATE <li class="active"><a href="#tags" data-toggle="tab" title="${_('Tags')}"><i class='icon-g-tags'></i></a></li>
|
156
|
|
- <li class="active"><a href="#events" data-toggle="tab" title="History"><i class="pod-dark-grey fa fa-calendar"></i>${POD.ItemNb(current_node.getEvents())}</a></li>
|
157
|
|
- <li><a href="#contacts" data-toggle="tab" title="Contacts"><i class="pod-dark-grey fa fa-user"></i>${POD.ItemNb(current_node.getContacts())}</a></li>
|
158
|
|
- <li><a href="#comments" data-toggle="tab" title="Comments"><i class="pod-dark-grey fa fa-comments-o"></i>${POD.ItemNb(current_node.getComments())}</a></li>
|
159
|
|
- <li><a href="#files" data-toggle="tab" title="Files"><i class="pod-dark-grey fa fa-file-text-o"></i>${POD.ItemNb(current_node.getFiles())}</a></li>
|
|
245
|
+ <li><a href="#subdocuments" data-toggle="tab" title="${_('Subdocuments')}"><i class='pod-dark-grey fa fa-file-text-o'></i>
|
|
246
|
+
|
|
247
|
+ ${POD.ItemNb(current_node.getChildren())}</a></li>
|
|
248
|
+
|
|
249
|
+ <li class="active"><a href="#events" data-toggle="tab" title="${_('Calendar')}"><i class="pod-dark-grey fa fa-calendar"></i>${POD.ItemNb(current_node.getEvents())}</a></li>
|
|
250
|
+ <li><a href="#contacts" data-toggle="tab" title="${_('Address book')}"><i class="pod-dark-grey fa fa-user"></i>${POD.ItemNb(current_node.getContacts())}</a></li>
|
|
251
|
+ <li><a href="#comments" data-toggle="tab" title="${_('Comment thread')}"><i class="pod-dark-grey fa fa-comments-o"></i>${POD.ItemNb(current_node.getComments())}</a></li>
|
|
252
|
+ <li><a href="#files" data-toggle="tab" title="${_('Attachments')}"><i class="pod-dark-grey fa fa-paperclip"></i>${POD.ItemNb(current_node.getFiles())}</a></li>
|
|
253
|
+
|
|
254
|
+ <li class="pull-right"><a href="#accessmanagement" data-toggle="tab" title="${_('Access Management')}"><i class="pod-dark-grey fa fa-key"></i>${POD.ItemNb(current_node.getFiles())}</a></li>
|
|
255
|
+
|
160
|
256
|
</ul>
|
161
|
257
|
<div class="tab-content">
|
162
|
258
|
################################
|
163
|
259
|
##
|
164
|
|
- ## PANEL SHOWING LIST OF TAGS
|
|
260
|
+ ## PANEL SHOWING LIST OF SUB DOCUMENTS
|
165
|
261
|
##
|
166
|
262
|
################################
|
167
|
|
- <!-- DEBUG - D.A. - 2013-11-07 - Not using tags for th moment
|
168
|
|
- <div class="tab-pane" id="tags">
|
169
|
|
- <div class="well">
|
170
|
|
- <p>
|
171
|
|
- <i>
|
172
|
|
- ${_('Tags are automatically extracted from document content:')}
|
173
|
|
- <ul>
|
174
|
|
- <li>${_('<code>@visible_keyword</code> is a visible keyword generating a tag.')|n}</li>
|
175
|
|
- <li>
|
176
|
|
- ${_('<code>@invisible_keyword</code> is an <u>invisible</u> keyword generating a tag.')|n}</li>
|
177
|
|
- </ul>
|
178
|
|
- </i>
|
179
|
|
- </p>
|
180
|
|
- % for tag in current_node.getTagList():
|
181
|
|
- ${POD.Badge(tag)}
|
|
263
|
+ <!-- DEBUG - D.A. - 2013-11-07 - Not using tags for th moment -->
|
|
264
|
+ <div class="tab-pane" id="subdocuments">
|
|
265
|
+ % if len(current_node.getChildren())<=0:
|
|
266
|
+ <p class="pod-grey">
|
|
267
|
+ ${_("There is currently no child documents.")}<br/>
|
|
268
|
+ </p>
|
|
269
|
+ <p>
|
|
270
|
+ <a class="btn btn-success btn-small" href="${tg.url('/api/create_document?parent_id=%i'%current_node.node_id)}">
|
|
271
|
+ <i class="fa fa-plus"></i> ${_("Add one")}
|
|
272
|
+ </a>
|
|
273
|
+ </p>
|
|
274
|
+ % else:
|
|
275
|
+ <p>
|
|
276
|
+ <a class="btn btn-success btn-small" href="${tg.url('/api/create_document?parent_id=%i'%current_node.node_id)}">
|
|
277
|
+ <i class="fa fa-plus"></i> ${_("Add new document")}
|
|
278
|
+ </a>
|
|
279
|
+ </p>
|
|
280
|
+
|
|
281
|
+ <div>
|
|
282
|
+ % for subnode in current_node.getChildren():
|
|
283
|
+ <p style="list-style-type:none;">
|
|
284
|
+ <i class="fa-fw ${subnode.getIconClass()}"></i>
|
|
285
|
+ <a href="${tg.url('/document/%i'%subnode.node_id)}">
|
|
286
|
+ ${subnode.data_label}
|
|
287
|
+ </a>
|
|
288
|
+ </p>
|
182
|
289
|
% endfor
|
183
|
290
|
</div>
|
|
291
|
+ % endif
|
184
|
292
|
</div>
|
185
|
|
- -->
|
|
293
|
+
|
186
|
294
|
################################
|
187
|
295
|
##
|
188
|
296
|
## PANEL SHOWING LIST OF EVENTS
|
189
|
297
|
##
|
190
|
298
|
################################
|
191
|
299
|
<div class="tab-pane active" id="events">
|
192
|
|
- ${POD.AddButton('current-document-add-event-button', True, _(' Add event'))}
|
|
300
|
+ % if len(current_node.getEvents())<=0:
|
|
301
|
+ <p class="pod-grey">${_("The calendar is empty.")}<br/></p>
|
|
302
|
+ <p>${POD.AddButton('current-document-add-event-button', True, _(' Add first event'))}</p>
|
|
303
|
+ % else:
|
|
304
|
+ <p>${POD.AddButton('current-document-add-event-button', True, _(' Add an event'))}</p>
|
|
305
|
+ % endif
|
|
306
|
+
|
193
|
307
|
<form style='display: none;' id='current-document-add-event-form' action='${tg.url('/api/create_event')}' method='post' class="well">
|
194
|
308
|
<input type="hidden" name='parent_id' value='${current_node.node_id}'/>
|
195
|
309
|
<fieldset>
|
|
@@ -225,9 +339,7 @@ pod :: document ${current_node.getTruncatedLabel(40)} [#${current_node.node_id}
|
225
|
339
|
</fieldset>
|
226
|
340
|
</form>
|
227
|
341
|
|
228
|
|
- % if len(current_node.getEvents())<=0:
|
229
|
|
- <p><i>${_('No history for the moment.')}</i></p>
|
230
|
|
- % else:
|
|
342
|
+ % if len(current_node.getEvents())>0:
|
231
|
343
|
<table class="table table-striped table-hover table-condensed">
|
232
|
344
|
<thead>
|
233
|
345
|
<tr>
|
|
@@ -261,9 +373,14 @@ pod :: document ${current_node.getTruncatedLabel(40)} [#${current_node.node_id}
|
261
|
373
|
##
|
262
|
374
|
##############################
|
263
|
375
|
<div class="tab-pane" id="contacts">
|
264
|
|
-
|
|
376
|
+ % if len(current_node.getContacts())<=0:
|
|
377
|
+ <p class="pod-grey">${_("The address book is empty.")}<br/></p>
|
|
378
|
+ <p>${POD.AddButton('current-document-add-contact-button', True, _(' Add first contact'), True)}</p>
|
|
379
|
+ % else:
|
|
380
|
+ <p>${POD.AddButton('current-document-add-contact-button', True, _(' Add a contact'))}</p>
|
|
381
|
+ % endif
|
|
382
|
+
|
265
|
383
|
<!-- ADD CONTACT FORM -->
|
266
|
|
- ${POD.AddButton('current-document-add-contact-button', True, _(' Add contact'))}
|
267
|
384
|
<form style='display: none;' id='current-document-add-contact-form' action='${tg.url('/api/create_contact')}' method='post' class="well">
|
268
|
385
|
<input type="hidden" name='parent_id' value='${current_node.node_id}'/>
|
269
|
386
|
<fieldset>
|
|
@@ -306,8 +423,14 @@ pod :: document ${current_node.getTruncatedLabel(40)} [#${current_node.node_id}
|
306
|
423
|
##
|
307
|
424
|
################################
|
308
|
425
|
<div class="tab-pane" id="comments">
|
|
426
|
+ % if len(current_node.getComments())<=0:
|
|
427
|
+ <p class="pod-grey">${_("The comment thread is empty.")}<br/></p>
|
|
428
|
+ <p>${POD.AddButton('current-document-add-comment-button', True, _('Add first comment'), True)}</p>
|
|
429
|
+ % else:
|
|
430
|
+ <p>${POD.AddButton('current-document-add-comment-button', True, _('Add a comment'))}</p>
|
|
431
|
+ % endif
|
|
432
|
+
|
309
|
433
|
<!-- ADD COMMENT FORM -->
|
310
|
|
- ${POD.AddButton('current-document-add-comment-button', True, _(' Add comment'))}
|
311
|
434
|
<form style='display: none;' id='current-document-add-comment-form' action='${tg.url('/api/create_comment')}' method='post' class="well">
|
312
|
435
|
<input type="hidden" name='parent_id' value='${current_node.node_id}'/>
|
313
|
436
|
<fieldset>
|
|
@@ -327,9 +450,7 @@ pod :: document ${current_node.getTruncatedLabel(40)} [#${current_node.node_id}
|
327
|
450
|
</form>
|
328
|
451
|
|
329
|
452
|
<!-- LIST OF COMMENTS -->
|
330
|
|
- % if len(current_node.getComments())<=0:
|
331
|
|
- <p><i>${_('No comments.')}</i></p>
|
332
|
|
- % else:
|
|
453
|
+ % if len(current_node.getComments())>0:
|
333
|
454
|
<table class="table table-striped table-hover table-condensed">
|
334
|
455
|
% for comment in current_node.getComments():
|
335
|
456
|
<tr title="Last updated: ${comment.updated_at}">
|
|
@@ -354,8 +475,14 @@ pod :: document ${current_node.getTruncatedLabel(40)} [#${current_node.node_id}
|
354
|
475
|
##
|
355
|
476
|
################################
|
356
|
477
|
<div class="tab-pane" id="files">
|
|
478
|
+ % if len(current_node.getFiles())<=0:
|
|
479
|
+ <p class="pod-grey">${_("There is currently no attachment.")}<br/></p>
|
|
480
|
+ <p>${POD.AddButton('current-document-add-file-button', True, _(' Attach first file'))}</p>
|
|
481
|
+ % else:
|
|
482
|
+ <p>${POD.AddButton('current-document-add-file-button', True, _(' Attach a file'))}</p>
|
|
483
|
+ % endif
|
|
484
|
+
|
357
|
485
|
<!-- ADD FILE FORM -->
|
358
|
|
- ${POD.AddButton('current-document-add-file-button', True, _(' Add file'))}
|
359
|
486
|
<form style='display: none;' id='current-document-add-file-form' enctype="multipart/form-data" action='${tg.url('/api/create_file')}' method='post' class="well">
|
360
|
487
|
<input type="hidden" name='parent_id' value='${current_node.node_id}'/>
|
361
|
488
|
<fieldset>
|
|
@@ -378,35 +505,42 @@ pod :: document ${current_node.getTruncatedLabel(40)} [#${current_node.node_id}
|
378
|
505
|
</form>
|
379
|
506
|
|
380
|
507
|
<!-- LIST OF FILES -->
|
381
|
|
- % if len(current_node.getFiles())<=0:
|
382
|
|
- <p><i>${_('No files.')}</i></p>
|
383
|
|
- % else:
|
384
|
|
- <table class="table table-striped table-hover table-condensed">
|
|
508
|
+ <div>
|
|
509
|
+ % if len(current_node.getFiles())>0:
|
385
|
510
|
% for current_file in current_node.getFiles():
|
386
|
|
- <tr title="Last updated: ${current_file.updated_at}">
|
387
|
|
- <td>
|
388
|
|
- <a href="${tg.url('/api/get_file_content/%s'%(current_file.node_id))}" title="${_("Download file")}">
|
389
|
|
- <i class="fa fa-2x fa-file-text-o"></i>
|
390
|
|
- </a>
|
391
|
|
- ## FIXME - SHOW THUMBNAIL WHEN IT WILL BE OK<img src="${tg.url('/api/get_file_content_thumbnail/%s'%(current_file.node_id))}" class="img-polaroid">
|
392
|
|
- </td>
|
393
|
|
- <td>
|
394
|
|
- <b>${current_file.data_label}</b>
|
395
|
|
- <a class="pull-right" href="${tg.url('/api/get_file_content/%s'%(current_file.node_id))}" title="${_("Download file")}">
|
396
|
|
- <i class="fa fa-download"></i>
|
397
|
|
- </a>
|
398
|
|
- <a class="pull-right" href="${tg.url('/document/%i'%current_file.node_id)}" title="${_("Edit title or comment")}"><i class="fa fa-edit"></i></a>
|
399
|
|
-
|
400
|
|
- <br/>
|
401
|
|
- <p>
|
402
|
|
- ${current_file.data_content|n}
|
403
|
|
- </p>
|
404
|
|
- </td>
|
405
|
|
- </tr>
|
|
511
|
+ <p style="list-style-type:none; margin-bottom: 0.5em;">
|
|
512
|
+ <i class="fa fa-paperclip"></i>
|
|
513
|
+ <a
|
|
514
|
+ href="${tg.url('/document/%i'%current_file.node_id)}"
|
|
515
|
+ title="${_('View the attachment')}: ${current_file.data_label}"
|
|
516
|
+ >
|
|
517
|
+ ${current_file.getTruncatedLabel(50)}
|
|
518
|
+ </a>
|
|
519
|
+ <a
|
|
520
|
+ class="pull-right"
|
|
521
|
+ href="${tg.url('/api/get_file_content/%s'%(current_file.node_id))}"
|
|
522
|
+ title="${_('View the attachment')}"
|
|
523
|
+ >
|
|
524
|
+ <i class="fa fa-download"></i>
|
|
525
|
+ </a>
|
|
526
|
+ </p>
|
406
|
527
|
% endfor
|
407
|
|
- </table>
|
408
|
528
|
% endif
|
|
529
|
+ </div>
|
409
|
530
|
</div>
|
|
531
|
+
|
|
532
|
+
|
|
533
|
+ ################################
|
|
534
|
+ ##
|
|
535
|
+ ## PANEL SHOWING ACCESS MANAGEMENT
|
|
536
|
+ ##
|
|
537
|
+ ################################
|
|
538
|
+ <div class="tab-pane" id="accessmanagement">
|
|
539
|
+ blabla
|
|
540
|
+ </div>
|
|
541
|
+
|
|
542
|
+
|
|
543
|
+
|
410
|
544
|
</div>
|
411
|
545
|
</div>
|
412
|
546
|
</div>
|