|
@@ -13,7 +13,7 @@
|
13
|
13
|
% for new_parent_node in node_list:
|
14
|
14
|
<li>
|
15
|
15
|
<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>
|
16
|
|
- ${node_treeview_for_set_parent_menu(node_id, new_parent_node.getChildren(), indentation+1)}
|
|
16
|
+ ${node_treeview_for_set_parent_menu(node_id, new_parent_node.getStaticChildList(), indentation+1)}
|
17
|
17
|
</li>
|
18
|
18
|
% endfor
|
19
|
19
|
</ul>
|
|
@@ -36,12 +36,13 @@
|
36
|
36
|
% else:
|
37
|
37
|
% if len(node_list)>0:
|
38
|
38
|
% for node in node_list:
|
39
|
|
- <div class="pod-toolbar-parent ${'pod-status-active' if node.node_id==current_node.node_id else ''}" style="padding-left: ${(indentation+2)*0.5}em; position: relative;">
|
|
39
|
+ <div id='pod-menu-item-${node.node_id}' class="pod-toolbar-parent ${'pod-status-active' if node.node_id==current_node.node_id else ''}" style="padding-left: ${(indentation+2)*0.5}em; position: relative;">
|
|
40
|
+ <a class="toggle-child-menu-items"><i class='${node.getIconClass()}'></i></a>
|
40
|
41
|
<a href="${tg.url('/document/%s'%(node.node_id))}" title="${node.data_label}">
|
41
|
42
|
% if node.getStatus().status_family=='closed' or node.getStatus().status_family=='invisible':
|
42
|
43
|
<strike>
|
43
|
44
|
% endif
|
44
|
|
- <i class='${node.getIconClass()}'></i> ${node.getTruncatedLabel(32-0.8*(indentation+1))}
|
|
45
|
+ ${node.getTruncatedLabel(32-0.8*(indentation+1))}
|
45
|
46
|
% if node.getStatus().status_family=='closed' or node.getStatus().status_family=='invisible':
|
46
|
47
|
</strike>
|
47
|
48
|
% endif
|
|
@@ -55,7 +56,7 @@
|
55
|
56
|
<i class='${node.getStatus().icon}'></i>
|
56
|
57
|
</div>
|
57
|
58
|
</div>
|
58
|
|
- ${node_treeview(node.getChildren(), indentation+1)}
|
|
59
|
+ <div id="pod-menu-item-${node.node_id}-children">${node_treeview(node.getStaticChildList(), indentation+1)}</div>
|
59
|
60
|
% endfor
|
60
|
61
|
% endif
|
61
|
62
|
% endif
|
|
@@ -109,7 +110,8 @@ POD :: ${current_node.getTruncatedLabel(40)} [${current_node.getStatus().label}]
|
109
|
110
|
${POD.EditButton('current-document-content-edit-button', True)}
|
110
|
111
|
<a class="btn" href="#" data-toggle="dropdown"><i class="icon-g-move"></i> ${_('Move to')} <span class="caret"></span></a>
|
111
|
112
|
<ul class="dropdown-menu">
|
112
|
|
- ${node_treeview_for_set_parent_menu(current_node.node_id, root_node_list)}
|
|
113
|
+ AGAGA
|
|
114
|
+ {node_treeview_for_set_parent_menu(current_node.node_id, root_node_list)}
|
113
|
115
|
</ul>
|
114
|
116
|
|
115
|
117
|
|
|
@@ -145,16 +147,18 @@ POD :: ${current_node.getTruncatedLabel(40)} [${current_node.getStatus().label}]
|
145
|
147
|
<div class="span4">
|
146
|
148
|
<div class="tabbable">
|
147
|
149
|
<ul class="nav nav-tabs">
|
148
|
|
- <li class=""><a href="#tags" data-toggle="tab" title="${_('Tags')}"><i class='icon-g-tags'></i></a></li>
|
149
|
|
- <li class="active">
|
150
|
|
- <a href="#events" data-toggle="tab" title="History"><i class="icon-g-history"></i></a>
|
151
|
|
- </li>
|
152
|
|
- <li><a href="#contacts" data-toggle="tab" title="Contacts"><i class="icon-g-phone""></i> </a></li>
|
|
150
|
+ <li class="active"><a href="#tags" data-toggle="tab" title="${_('Tags')}"><i class='icon-g-tags'></i></a></li>
|
|
151
|
+ <li><a href="#events" data-toggle="tab" title="History"><i class="icon-g-history"></i></a></li>
|
|
152
|
+ <li><a href="#contacts" data-toggle="tab" title="Contacts"><i class="icon-g-user""></i> </a></li>
|
153
|
153
|
<li><a href="#comments" data-toggle="tab" title="Comments"><i class="icon-g-comments"></i> </a></li>
|
154
|
154
|
<li><a href="#files" data-toggle="tab" title="Files"><i class="icon-g-attach"></i> </a></li>
|
155
|
|
- <li><a href="#contacts" data-toggle="tab" title="Users"><i class="icon-g-user""></i> </a></li>
|
156
|
155
|
</ul>
|
157
|
156
|
<div class="tab-content">
|
|
157
|
+ ################################
|
|
158
|
+ ##
|
|
159
|
+ ## PANEL SHOWING LIST OF TAGS
|
|
160
|
+ ##
|
|
161
|
+ ################################
|
158
|
162
|
<div class="tab-pane" id="tags">
|
159
|
163
|
<div class="well">
|
160
|
164
|
<p>
|
|
@@ -172,42 +176,46 @@ POD :: ${current_node.getTruncatedLabel(40)} [${current_node.getStatus().label}]
|
172
|
176
|
% endfor
|
173
|
177
|
</div>
|
174
|
178
|
</div>
|
|
179
|
+ ################################
|
|
180
|
+ ##
|
|
181
|
+ ## PANEL SHOWING LIST OF EVENTS
|
|
182
|
+ ##
|
|
183
|
+ ################################
|
175
|
184
|
<div class="tab-pane active" id="events">
|
176
|
|
-
|
177
|
|
-${POD.AddButton('current-document-add-event-button', True, _(' Add event'))}
|
178
|
|
-<form style='display: none;' id='current-document-add-event-form' action='${tg.url('/api/create_event')}' method='post' class="well">
|
179
|
|
- <input type="hidden" name='parent_id' value='${current_node.node_id}'/>
|
180
|
|
- <fieldset>
|
181
|
|
- <legend>Add an event</legend>
|
182
|
|
- <label>
|
183
|
|
- <input type="text" name='data_label' placeholder="Event"/>
|
184
|
|
- </label>
|
185
|
|
- <label>
|
186
|
|
- <div class="datetime-picker-input-div input-append date">
|
187
|
|
- <input name='data_datetime' data-format="dd/MM/yyyy hh:mm" type="text" placeholder="date and time"/>
|
188
|
|
- <span class="add-on"><i data-time-icon="icon-g-clock" data-date-icon="icon-g-calendar"></i></span>
|
189
|
|
- </div>
|
190
|
|
- </label>
|
191
|
|
- <label>
|
192
|
|
- <div>
|
193
|
|
- <textarea id="add_event_data_content_textarea" name='data_content' spellcheck="false" wrap="off" autofocus placeholder="${_('detail...')}"></textarea>
|
194
|
|
- </div>
|
195
|
|
- </label>
|
196
|
|
- <label class="checkbox">
|
197
|
|
- <input disabled name='add_reminder' type="checkbox"> add a reminder
|
198
|
|
- </label>
|
199
|
|
- <label>
|
200
|
|
- <div class="datetime-picker-input-div input-append date">
|
201
|
|
- <input disabled name='data_reminder_datetime' data-format="dd/MM/yyyy hh:mm" type="text" placeholder="date and time"/>
|
202
|
|
- <span class="add-on"><i data-time-icon="icon-g-clock" data-date-icon="icon-g-calendar"></i></span>
|
203
|
|
- </div>
|
204
|
|
- </label>
|
|
185
|
+ ${POD.AddButton('current-document-add-event-button', True, _(' Add event'))}
|
|
186
|
+ <form style='display: none;' id='current-document-add-event-form' action='${tg.url('/api/create_event')}' method='post' class="well">
|
|
187
|
+ <input type="hidden" name='parent_id' value='${current_node.node_id}'/>
|
|
188
|
+ <fieldset>
|
|
189
|
+ <legend>Add an event</legend>
|
|
190
|
+ <label>
|
|
191
|
+ <input type="text" name='data_label' placeholder="Event"/>
|
|
192
|
+ </label>
|
|
193
|
+ <label>
|
|
194
|
+ <div class="datetime-picker-input-div input-append date">
|
|
195
|
+ <input name='data_datetime' data-format="dd/MM/yyyy hh:mm" type="text" placeholder="date and time"/>
|
|
196
|
+ <span class="add-on"><i data-time-icon="icon-g-clock" data-date-icon="icon-g-calendar"></i></span>
|
|
197
|
+ </div>
|
|
198
|
+ </label>
|
|
199
|
+ <label>
|
|
200
|
+ <div>
|
|
201
|
+ <textarea id="add_event_data_content_textarea" name='data_content' spellcheck="false" wrap="off" autofocus placeholder="${_('detail...')}"></textarea>
|
|
202
|
+ </div>
|
|
203
|
+ </label>
|
|
204
|
+ <label class="checkbox">
|
|
205
|
+ <input disabled name='add_reminder' type="checkbox"> add a reminder
|
|
206
|
+ </label>
|
|
207
|
+ <label>
|
|
208
|
+ <div class="datetime-picker-input-div input-append date">
|
|
209
|
+ <input disabled name='data_reminder_datetime' data-format="dd/MM/yyyy hh:mm" type="text" placeholder="date and time"/>
|
|
210
|
+ <span class="add-on"><i data-time-icon="icon-g-clock" data-date-icon="icon-g-calendar"></i></span>
|
|
211
|
+ </div>
|
|
212
|
+ </label>
|
205
|
213
|
|
206
|
214
|
|
207
|
|
- ${POD.CancelButton('current-document-add-event-cancel-button', True)}
|
208
|
|
- ${POD.SaveButton('current-document-add-event-save-button', True)}
|
209
|
|
- </fieldset>
|
210
|
|
-</form>
|
|
215
|
+ ${POD.CancelButton('current-document-add-event-cancel-button', True)}
|
|
216
|
+ ${POD.SaveButton('current-document-add-event-save-button', True)}
|
|
217
|
+ </fieldset>
|
|
218
|
+ </form>
|
211
|
219
|
|
212
|
220
|
% if len(current_node.getEvents())<=0:
|
213
|
221
|
<p><i>${_('No history for the moment.')}</i></p>
|
|
@@ -235,6 +243,11 @@ ${POD.AddButton('current-document-add-event-button', True, _(' Add event'))}
|
235
|
243
|
</table>
|
236
|
244
|
% endif
|
237
|
245
|
</div>
|
|
246
|
+ ##############################
|
|
247
|
+ ##
|
|
248
|
+ ## PANEL SHOWING LIST OF CONTACTS
|
|
249
|
+ ##
|
|
250
|
+ ##############################
|
238
|
251
|
<div class="tab-pane" id="contacts">
|
239
|
252
|
|
240
|
253
|
<!-- ADD CONTACT FORM -->
|
|
@@ -242,7 +255,7 @@ ${POD.AddButton('current-document-add-event-button', True, _(' Add event'))}
|
242
|
255
|
<form style='display: none;' id='current-document-add-contact-form' action='${tg.url('/api/create_contact')}' method='post' class="well">
|
243
|
256
|
<input type="hidden" name='parent_id' value='${current_node.node_id}'/>
|
244
|
257
|
<fieldset>
|
245
|
|
- <legend>Add an event</legend>
|
|
258
|
+ <legend>${_('Add a contact')}</legend>
|
246
|
259
|
<label>
|
247
|
260
|
<input type="text" name='data_label' placeholder="Title"/>
|
248
|
261
|
</label>
|
|
@@ -266,9 +279,103 @@ ${POD.AddButton('current-document-add-event-button', True, _(' Add event'))}
|
266
|
279
|
</div>
|
267
|
280
|
</div>
|
268
|
281
|
% endfor
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+ </div>
|
|
285
|
+ ################################
|
|
286
|
+ ##
|
|
287
|
+ ## PANEL SHOWING LIST OF COMMENTS
|
|
288
|
+ ##
|
|
289
|
+ ################################
|
|
290
|
+ <div class="tab-pane" id="comments">
|
|
291
|
+ <!-- ADD COMMENT FORM -->
|
|
292
|
+ ${POD.AddButton('current-document-add-comment-button', True, _(' Add comment'))}
|
|
293
|
+ <form style='display: none;' id='current-document-add-comment-form' action='${tg.url('/api/create_comment')}' method='post' class="well">
|
|
294
|
+ <input type="hidden" name='parent_id' value='${current_node.node_id}'/>
|
|
295
|
+ <fieldset>
|
|
296
|
+ <legend>${_('Add a comment')}</legend>
|
|
297
|
+ <label>
|
|
298
|
+ <input type="text" name='data_label' placeholder="Title"/>
|
|
299
|
+ </label>
|
|
300
|
+ <label>
|
|
301
|
+ <div>
|
|
302
|
+ <textarea id="add_comment_data_content_textarea" name='data_content' spellcheck="false" wrap="off" autofocus placeholder="${_('comment...')}"></textarea>
|
|
303
|
+ </div>
|
|
304
|
+ </label>
|
|
305
|
+ ${POD.CancelButton('current-document-add-comment-cancel-button', True)}
|
|
306
|
+ ${POD.SaveButton('current-document-add-comment-save-button', True)}
|
|
307
|
+ </fieldset>
|
|
308
|
+ </form>
|
|
309
|
+
|
|
310
|
+ <!-- LIST OF COMMENTS -->
|
|
311
|
+ % if len(current_node.getComments())<=0:
|
|
312
|
+ <p><i>${_('No comments.')}</i></p>
|
|
313
|
+ % else:
|
|
314
|
+ <table class="table table-striped table-hover table-condensed">
|
|
315
|
+ % for comment in current_node.getComments():
|
|
316
|
+ <tr title="Last updated: ${event.updated_at}">
|
|
317
|
+ <td>
|
|
318
|
+ <b>${comment.data_label}</b><br/>
|
|
319
|
+ <i>commented by comment.author the ${comment.getFormattedDate(comment.updated_at)} at ${comment.getFormattedTime(comment.updated_at)}</i></br>
|
|
320
|
+ <p>
|
|
321
|
+ ${comment.data_content|n}
|
|
322
|
+ </p>
|
|
323
|
+ </td>
|
|
324
|
+ </tr>
|
|
325
|
+ % endfor
|
|
326
|
+ </table>
|
|
327
|
+ % endif
|
|
328
|
+ </div>
|
|
329
|
+ ################################
|
|
330
|
+ ##
|
|
331
|
+ ## PANEL SHOWING LIST OF FILES
|
|
332
|
+ ##
|
|
333
|
+ ################################
|
|
334
|
+ <div class="tab-pane" id="files">
|
|
335
|
+ <!-- ADD FILE FORM -->
|
|
336
|
+ ${POD.AddButton('current-document-add-file-button', True, _(' Add file'))}
|
|
337
|
+ <form style='display: none;' id='current-document-add-file-form' enctype="multipart/form-data" action='${tg.url('/api/create_file')}' method='post' class="well">
|
|
338
|
+ <input type="hidden" name='parent_id' value='${current_node.node_id}'/>
|
|
339
|
+ <fieldset>
|
|
340
|
+ <legend>${_('Add a file')}</legend>
|
|
341
|
+ <label>
|
|
342
|
+ <input type="text" name='data_label' placeholder="Title"/>
|
|
343
|
+ </label>
|
|
344
|
+ <label>
|
|
345
|
+ <input type="file" name='data_file' placeholder="choose a file..."/>
|
|
346
|
+ </label>
|
|
347
|
+ <label>
|
|
348
|
+ <div>
|
|
349
|
+ <textarea id="add_file_data_content_textarea" name='data_content' spellcheck="false" wrap="off" autofocus placeholder="${_('comment...')}"></textarea>
|
|
350
|
+ </div>
|
|
351
|
+ </label>
|
|
352
|
+ ${POD.CancelButton('current-document-add-file-cancel-button', True)}
|
|
353
|
+ ${POD.SaveButton('current-document-add-file-save-button', True)}
|
|
354
|
+ </fieldset>
|
|
355
|
+ </form>
|
|
356
|
+
|
|
357
|
+ <!-- LIST OF FILES -->
|
|
358
|
+ % if len(current_node.getFiles())<=0:
|
|
359
|
+ <p><i>${_('No files.')}</i></p>
|
|
360
|
+ % else:
|
|
361
|
+ <table class="table table-striped table-hover table-condensed">
|
|
362
|
+ % for current_file in current_node.getFiles():
|
|
363
|
+ <tr title="Last updated: ${event.updated_at}">
|
|
364
|
+ <td>
|
|
365
|
+ <img src="${tg.url('/api/get_file_content_thumbnail/%s'%(current_file.node_id))}" class="img-polaroid">
|
|
366
|
+ </td>
|
|
367
|
+ <td>
|
|
368
|
+ <b>${current_file.data_label}</b><br/>
|
|
369
|
+ <i>commented by comment.author the ${current_file.getFormattedDate(comment.updated_at)} at ${current_file.getFormattedTime(comment.updated_at)}</i></br>
|
|
370
|
+ <p>
|
|
371
|
+ ${current_file.data_content|n}
|
|
372
|
+ </p>
|
|
373
|
+ </td>
|
|
374
|
+ </tr>
|
|
375
|
+ % endfor
|
|
376
|
+ </table>
|
|
377
|
+ % endif
|
269
|
378
|
</div>
|
270
|
|
- <div class="tab-pane" id="comments">${current_node.data_content|n}</div>
|
271
|
|
- <div class="tab-pane" id="files">Files</div>
|
272
|
379
|
</div>
|
273
|
380
|
</div>
|
274
|
381
|
</div>
|