Browse Source

allow 3 view modes

damien 11 years ago
parent
commit
03f938eead
2 changed files with 111 additions and 10 deletions
  1. 9 9
      pboard/pboard/templates/document.mak
  2. 102 1
      pboard/pboard/templates/master.mak

+ 9 - 9
pboard/pboard/templates/document.mak View File

@@ -23,16 +23,17 @@
23 23
 
24 24
 <%def name="node_treeview(node_list, indentation=-1)">
25 25
   % if indentation==-1:
26
-    <div class="pod-toolbar-parent" style="padding-left: 0.5em; position: relative;">
26
+    <div id='pod-menu-item-0' class="pod-toolbar-parent" style="padding-left: 0.5em; position: relative;">
27
+      <a class="toggle-child-menu-items"><i class='icon-g-folder-open'></i></a>
27 28
       <a href="?node=0" title="${_('Root')}">
28
-        <i class='icon-g-folder-open'></i>
29 29
         ${_('Root')}
30 30
       </a>
31 31
       <div class="pod-toolbar">
32 32
         <a href="${tg.url('/api/create_document?parent_id=0')}" title="${_('Add child document')}"><i class="icon-g-circle-plus"></i></a>
33 33
       </div>
34 34
     </div>
35
-    ${node_treeview(node_list, 0)}
35
+    <div id="pod-menu-item-0-children">${node_treeview(node_list, 0)}</div>
36
+    
36 37
   % else:
37 38
     % if len(node_list)>0:
38 39
       % for node in node_list:
@@ -83,12 +84,12 @@ POD :: ${current_node.getTruncatedLabel(40)} [${current_node.getStatus().label}]
83 84
 </%def>
84 85
 
85 86
   <div class="row">
86
-    <div class="span3">
87
+    <div id='application-left-panel' class="span3">
87 88
       <div>
88 89
         ${node_treeview(root_node_list)}
89 90
       </div>
90 91
     </div>
91
-    <div class="span9">
92
+    <div id='application-main-panel' class="span9">
92 93
         
93 94
         
94 95
         
@@ -110,8 +111,7 @@ POD :: ${current_node.getTruncatedLabel(40)} [${current_node.getStatus().label}]
110 111
         ${POD.EditButton('current-document-content-edit-button', True)}
111 112
         <a class="btn" href="#" data-toggle="dropdown"><i class="icon-g-move"></i> ${_('Move to')} <span class="caret"></span></a>
112 113
         <ul class="dropdown-menu">
113
-          AGAGA
114
-          {node_treeview_for_set_parent_menu(current_node.node_id, root_node_list)}
114
+          ${node_treeview_for_set_parent_menu(current_node.node_id, root_node_list)}
115 115
         </ul>
116 116
 
117 117
 
@@ -129,7 +129,7 @@ POD :: ${current_node.getTruncatedLabel(40)} [${current_node.getStatus().label}]
129 129
           </div>
130 130
         </form>
131 131
       </div>
132
-      <div class="span5">
132
+      <div id='application-document-panel' class="span5">
133 133
       <p>
134 134
         <div id='current-document-content' class="">
135 135
           ${current_node.getContentWithTags()|n}
@@ -144,7 +144,7 @@ POD :: ${current_node.getTruncatedLabel(40)} [${current_node.getStatus().label}]
144 144
         </form>
145 145
       </p>
146 146
     </div>
147
-    <div class="span4">
147
+    <div id='application-metadata-panel' class="span4">
148 148
       <div class="tabbable">
149 149
         <ul class="nav nav-tabs">
150 150
             <li class="active"><a href="#tags" data-toggle="tab" title="${_('Tags')}"><i class='icon-g-tags'></i></a></li>

+ 102 - 1
pboard/pboard/templates/master.mak View File

@@ -324,6 +324,13 @@ tr:Hover td div.pod-toolbar {
324 324
                     window.location.hash = e.target.hash.replace("#", "#" + prefix);
325 325
                 });
326 326
 
327
+              
328
+                #################################
329
+                ##
330
+                ## Show/hide behavior
331
+                ## for the main menu
332
+                ##
333
+                ##
327 334
                 $('a.toggle-child-menu-items').on('click', function (e) {
328 335
                   parent_id    = $(this).parent().attr('id');
329 336
                   child        = $('#'+parent_id+'-children');
@@ -339,7 +346,97 @@ tr:Hover td div.pod-toolbar {
339 346
                     togglebutton.addClass('icon-g-folder-plus');
340 347
                     console.log("class is: "+togglebutton.attr('class'));
341 348
                   }
349
+                });
350
+
351
+                #################################
352
+                ##
353
+                ## large / small view of the document
354
+                ## (toggle visibility of the left panel)
355
+                ##
356
+                ##
357
+                $('a#view-size-toggle-button-small').on('click', function (e) {
358
+                  console.log("Toggle view mode");
359
+                  $('#view-size-toggle-button-small').css('display', 'none');
360
+                  $('#view-size-toggle-button-medium').css('display', 'block');
361
+                  $('#view-size-toggle-button-large').css('display', 'none');
362
+              
363
+                  left_panel_id     = '#application-left-panel'; // is span3 by default (to be hidden in fullscreen mode)
364
+                  main_panel_id     = '#application-main-panel'; // is span9 by default (to be 12 in fullscreen mode)
365
+                  docu_panel_id     = '#application-document-panel'; // is span5 by default (to be span8 in fullscreen mode)
366
+                  metadata_panel_id = '#application-metadata-panel';
367
+                  
368
+                  left_panel = $(left_panel_id);
369
+                  main_panel = $(main_panel_id);
370
+                  docu_panel = $(docu_panel_id);
371
+                  metadata_panel = $(metadata_panel_id);
372
+
373
+                  console.log("Toggle from small (default) to medium (no left tab)");
374
+                  left_panel.css('display', 'block');
375
+                  metadata_panel.css('display', 'block');
376
+                  main_panel.removeClass('span9');
377
+                  main_panel.removeClass('span12');
378
+                  main_panel.addClass('span9');
379
+                  
380
+                  docu_panel.removeClass('span5');
381
+                  docu_panel.removeClass('span8');
382
+                  docu_panel.removeClass('span12');
383
+                  docu_panel.addClass('span5');
384
+                });
385
+
386
+                $('a#view-size-toggle-button-medium').on('click', function (e) {
387
+                  console.log("Toggle view mode to: MEDIUM");
388
+                  $('#view-size-toggle-button-small').css('display', 'none');
389
+                  $('#view-size-toggle-button-medium').css('display', 'none');
390
+                  $('#view-size-toggle-button-large').css('display', 'block');
391
+
392
+                  left_panel_id     = '#application-left-panel'; // is span3 by default (to be hidden in fullscreen mode)
393
+                  main_panel_id     = '#application-main-panel'; // is span9 by default (to be 12 in fullscreen mode)
394
+                  docu_panel_id     = '#application-document-panel'; // is span5 by default (to be span8 in fullscreen mode)
395
+                  metadata_panel_id = '#application-metadata-panel';
396
+                  
397
+                  left_panel = $(left_panel_id);
398
+                  main_panel = $(main_panel_id);
399
+                  docu_panel = $(docu_panel_id);
400
+                  metadata_panel = $(metadata_panel_id);
401
+
402
+                  left_panel.css('display', 'none');
403
+                  metadata_panel.css('display', 'block');
404
+                  
405
+                  main_panel.removeClass('span12');
406
+                  main_panel.addClass('span9');
407
+                  
408
+                  docu_panel.removeClass('span5');
409
+                  docu_panel.removeClass('span12');
410
+                  docu_panel.addClass('span8');
411
+
412
+                });
413
+
414
+                $('a#view-size-toggle-button-large').on('click', function (e) {
415
+                  console.log("Toggle view mode to: LARGE");
416
+                  $('#view-size-toggle-button-small').css('display', 'block');
417
+                  $('#view-size-toggle-button-medium').css('display', 'none');
418
+                  $('#view-size-toggle-button-large').css('display', 'none');
419
+
420
+                  left_panel_id     = '#application-left-panel'; // is span3 by default (to be hidden in fullscreen mode)
421
+                  main_panel_id     = '#application-main-panel'; // is span9 by default (to be 12 in fullscreen mode)
422
+                  docu_panel_id     = '#application-document-panel'; // is span5 by default (to be span8 in fullscreen mode)
423
+                  metadata_panel_id = '#application-metadata-panel';
424
+                  
425
+                  left_panel = $(left_panel_id);
426
+                  main_panel = $(main_panel_id);
427
+                  docu_panel = $(docu_panel_id);
428
+                  metadata_panel = $(metadata_panel_id);
429
+
430
+                  left_panel.css('display', 'none');
431
+                  metadata_panel.css('display', 'none');
342 432
                   
433
+                  main_panel.removeClass('span9');
434
+                  main_panel.addClass('span12');
435
+                  
436
+                  docu_panel.removeClass('span5');
437
+                  docu_panel.removeClass('span8');
438
+                  docu_panel.addClass('span12');
439
+
343 440
                 });
344 441
               });
345 442
 
@@ -380,7 +477,11 @@ tr:Hover td div.pod-toolbar {
380 477
         <div class="nav-collapse">
381 478
           <ul class="nav">
382 479
             <li class="active"><a href="${tg.url('/dashboard')}"><i class="icon-home icon-white"></i> Dashboard</a></li>
383
-            <li><a>Link</a></li>
480
+            <li>
481
+              <a title="${_('Toggle view mode: narrow')}" id='view-size-toggle-button-small' style="display: none;"><i class='icon-g-eye-open'></i> ${_('View mode')}</a>
482
+              <a title="${_('Toggle view mode: medium')}" id='view-size-toggle-button-medium'><i class='icon-g-eye-open'></i> ${_('View mode')}</a>
483
+              <a title="${_('Toggle view mode: large')}" id='view-size-toggle-button-large' style="display: none;"><i class='icon-g-eye-open'></i> ${_('View mode')}</a>
484
+            </li>
384 485
             <li><a href="#">Link</a></li>
385 486
 
386 487
           % if request.identity: