Support show/hide for second table
authorJoey Schulze <joey@infodrom.org>
Sat, 19 Jan 2013 23:03:46 +0000 (00:03 +0100)
committerJoey Schulze <joey@infodrom.org>
Sat, 19 Jan 2013 23:03:46 +0000 (00:03 +0100)
images/icons/minimise.gif [new file with mode: 0644]
lib/functions.js
lib/mask.php
style.css

diff --git a/images/icons/minimise.gif b/images/icons/minimise.gif
new file mode 100644 (file)
index 0000000..876a7d7
Binary files /dev/null and b/images/icons/minimise.gif differ
index 4081a8f..799ae99 100644 (file)
@@ -720,3 +720,36 @@ function edit_show()
     grid.sizeDivs();
     grid.resizeWindow();
 }
+
+function resize_grids()
+{
+    var div_grid = document.getElementById('div_grid');
+    var info = document.getElementById('info_'+second.tableId);
+    var height = RicoUtil.windowHeight() - (info.offsetTop - div_grid.offsetTop) - 60;
+    div_grid.style.height = height + 'px';
+    grid.resizeWindow();
+}
+
+var div_grid_height = '';
+function second_toggle()
+{
+    var div_grid = document.getElementById('div_grid');
+    var div_second = document.getElementById('second');
+    var toggle_icon = document.getElementById('icon_toggle');
+
+    if (div_second.style.display == 'none') {
+       div_grid.style.height = div_grid_height;
+       div_second.style.display = '';
+       grid.resizeWindow();
+       second.resizeWindow();
+       toggle_icon.style.display = 'none';
+    } else {
+       div_grid_height = div_grid.style.height;
+       div_second.style.display = 'none';
+
+       var height = RicoUtil.windowHeight() - div_grid.offsetTop - 10;
+       div_grid.style.height = height + 'px';
+       grid.resizeWindow();
+       toggle_icon.style.display = '';
+    }
+}
index bceb0a2..c906566 100644 (file)
@@ -31,9 +31,11 @@ function build_form($name, $mask)
   $jscode[] = "var form_check = {};";
 
   $ret[] = '<div class="form">';
+  $toggle = '<img src="images/icons/minimise.gif" title="Show second table" id="icon_toggle" onclick="second_toggle()" style="right: 13px; display: none"/>';
   $close = '<img src="lib/rico/images/close.gif" title="Close" onclick="edit_hide()" />';
   $edit_title = empty($mask['edit_title']) ? 'Datensatz bearbeiten' : $mask['edit_title'];
-  $ret[] = sprintf('<div class="ricoTitle" style="position: relative;" id="mask_edit_title" class="title"><strong>%s</strong>%s</div>', $edit_title, $close);
+  $ret[] = sprintf('<div class="ricoTitle" style="position: relative;" id="mask_edit_title" class="title"><strong>%s</strong>%s%s</div>',
+                  $edit_title, $toggle, $close);
   $ret[] = '<form id="form_edit">';
 
   $ret[] = '<input type="hidden" id="edit_id" name="id" value="">';
@@ -281,17 +283,30 @@ function build_mask($name, $mask)
   if (array_key_exists('list', $mask)) {
     $jscode[] = "Rico.acceptLanguage('de-de,de;q=0.8,en;q=0.5,en-us;q=0.3');";
     $jscode[] = "Rico.loadModule('Effect','Calendar','LiveGridForms','LiveGridAjax','LiveGridMenu');";
+
+    if (array_key_exists('second', $mask) && !array_key_exists('rows', $mask))
+      $mask['rows'] = "'parent'";
+
     list($grid,$js) = build_grid($name, $mask);
-    $jscode = array_merge($jscode, $js);
+    $grid = array_merge(array('<div id="div_grid">'), $grid, array('</div>'));
     if (array_key_exists('second', $mask)) {
       $mask['second']['prefetch'] = false;
 
-      list($second,$js) = build_grid($name, $mask['second'], 'second');
-      $jscode = array_merge($jscode, $js);
-      if (array_key_exists('title', $mask['second']))
-       $grid[] = sprintf('<h3 class="title2">%s</h3>', $mask['second']['title']);
-      $grid = array_merge($grid, $second);
+      list($second,$secondjs) = build_grid($name, $mask['second'], 'second');
+      $jscode = array_merge($jscode, $secondjs);
+
+      $grid[] = '<div id="second" class="second">';
+      $close = '<img src="images/icons/minimise.gif" title="Hide" onclick="second_toggle()" />';
+      $title = array_key_exists('title', $mask['second']) ? $mask['second']['title'] : '';
+      $grid[] = sprintf('<div style="position: relative;" id="second_title" class="ricoTitle title"><strong>%s</strong>%s</div>', $title, $close);
+
+      $grid = array_merge($grid, array('<div id="div_second">'), $second, array('</div>'));
+
+      $grid[] = '</div>';
     }
+    $jscode = array_merge($jscode, $js);
+    if ($mask['rows'] == "'parent'")
+      $jscode[] = 'Rico.onLoad(function() {resize_grids()});';
   } else
     $grid = array();
 
index 635b623..8e05e94 100644 (file)
--- a/style.css
+++ b/style.css
@@ -86,6 +86,7 @@ div.content {
        background: #e7f1f8;
 }
 
+div#second_title img,
 div#mask_edit_title img {
     cursor: pointer;
     position: absolute;