fmsystem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fmsystem-commits] [14503] more on new portico-layout


From: Sigurd Nes
Subject: [Fmsystem-commits] [14503] more on new portico-layout
Date: Sun, 29 Nov 2015 14:52:41 +0000

Revision: 14503
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=14503
Author:   sigurdne
Date:     2015-11-29 14:52:40 +0000 (Sun, 29 Nov 2015)
Log Message:
-----------
more on new portico-layout

Modified Paths:
--------------
    branches/dev-syncromind/phpgwapi/inc/class.menu.inc.php
    branches/dev-syncromind/phpgwapi/templates/portico/head.inc.php
    branches/dev-syncromind/phpgwapi/templates/portico/js/ajax_jsmenu.js
    branches/dev-syncromind/phpgwapi/templates/portico/js/base.js
    branches/dev-syncromind/phpgwapi/templates/portico/navbar.inc.php
    branches/dev-syncromind/phpgwapi/templates/portico/navbar.tpl

Modified: branches/dev-syncromind/phpgwapi/inc/class.menu.inc.php
===================================================================
--- branches/dev-syncromind/phpgwapi/inc/class.menu.inc.php     2015-11-28 
19:12:03 UTC (rev 14502)
+++ branches/dev-syncromind/phpgwapi/inc/class.menu.inc.php     2015-11-29 
14:52:40 UTC (rev 14503)
@@ -370,9 +370,37 @@
                        return $menu;
                }
 
+               public function get_top_level_menu_ajax()
+               {
+                       $navbar = $this->get('navbar');
+                       $exclude = array('logout', 'about', 'preferences');
+                       $top_level_menu = array();
+                       foreach ( $navbar as $app => $app_data )
+                       {
+                               if ( in_array($app, $exclude) )
+                               {
+                                       continue;
+                               }
+
+                               $top_level_menu[] = array
+                               (
+                                       'app'   => $app,
+                                       'text' => $app_data['text'],
+                                       'url'   => str_replace('&','&', 
$app_data['url']),
+                                       'children'      => true
+                               );
+
+                       }
+                       
+                       return $top_level_menu;
+               }
                public function get_local_menu_ajax()
                {
                        $node           = phpgw::get_var('node');
+                       if($node == 'top_level')
+                       {
+                               return $this->get_top_level_menu_ajax();
+                       }
 
                        $selection = explode('|',$node);
                        $app = $selection[0];
@@ -400,8 +428,10 @@
                                                        {
                                                                $menu[] = array
                                                                (
+                                                                       'app'   
        => 'admin',
                                                                        'key'   
        => $_app,
                                                                        
'is_leaf'       => count($navigation[$_app]) > 1 ? false : true,
+                                                                       
'children'      => count($navigation[$_app]) > 1 ? true : false,
                                                                        'text'  
        => $GLOBALS['phpgw']->translation->translate($_app, array(), true),
                                                                        'url'   
        => $GLOBALS['phpgw']->link('/index.php',
                                                                                
                        array('menuaction' => 'admin.uiconfig.index', 'appname' 
=> $_app))
@@ -462,8 +492,6 @@
                                $menu[$i] = $vals;
                                $menu[$i]['app'] = $app;
                                $menu[$i]['key'] = $key;
-                               $menu[$i]['is_leaf'] = true;
-                               $menu[$i]['children'] = false;
                                if(isset($menu[$i]['children']))
                                {
                                        $menu[$i]['is_leaf'] = false;
@@ -471,6 +499,11 @@
 
 //                                     unset($menu[$i]['children']);
                                }
+                               else
+                               {
+                                       $menu[$i]['is_leaf'] = true;
+                                       $menu[$i]['children'] = false;
+                               }
                                $i++;
                        }
 

Modified: branches/dev-syncromind/phpgwapi/templates/portico/head.inc.php
===================================================================
--- branches/dev-syncromind/phpgwapi/templates/portico/head.inc.php     
2015-11-28 19:12:03 UTC (rev 14502)
+++ branches/dev-syncromind/phpgwapi/templates/portico/head.inc.php     
2015-11-29 14:52:40 UTC (rev 14503)
@@ -32,7 +32,6 @@
 
        if( !isset($GLOBALS['phpgw_info']['flags']['noframework']) )
        {
-               phpgwapi_yui::load_widget('layout');
                $javascripts[] = "/phpgwapi/templates/portico/js/base.js";
        }
 
@@ -40,7 +39,7 @@
        {
                phpgwapi_jquery::load_widget('treeview');
 
-               
$GLOBALS['phpgw_info']['user']['preferences']['common']['sidecontent'] = 
'jsmenu';//ajax_menu|jsmenu
+               
$GLOBALS['phpgw_info']['user']['preferences']['common']['sidecontent'] = 
'ajax_menu';//ajax_menu|jsmenu
                if 
(isset($GLOBALS['phpgw_info']['user']['preferences']['common']['sidecontent']) 
&& $GLOBALS['phpgw_info']['user']['preferences']['common']['sidecontent'] == 
'ajax_menu')
                {
                        $javascripts[] = 
"/phpgwapi/templates/portico/js/ajax_jsmenu.js";

Modified: branches/dev-syncromind/phpgwapi/templates/portico/js/ajax_jsmenu.js
===================================================================
--- branches/dev-syncromind/phpgwapi/templates/portico/js/ajax_jsmenu.js        
2015-11-28 19:12:03 UTC (rev 14502)
+++ branches/dev-syncromind/phpgwapi/templates/portico/js/ajax_jsmenu.js        
2015-11-29 14:52:40 UTC (rev 14503)
@@ -5,16 +5,22 @@
                        'data': {
                                'url': function (node) {
 
-                                       console.log(node);
+//                                     console.log(node);
 
                                        var oArgs = {};
                                        if(node.id === '#')
                                        {
-                                               oArgs 
={menuaction:'phpgwapi.menu.get_local_menu_ajax',node:'property'};
+                                               oArgs 
={menuaction:'phpgwapi.menu.get_local_menu_ajax',node:'top_level'};
                                        }
                                        else
                                        {
-                                               var app = node.original.app + 
'|' + node.original.key;
+                                               
+                                               var app = node.original.app;
+                                               if(typeof(node.original.key) 
!== 'undefined')
+                                               {
+                                                       app += '|' + 
node.original.key;
+                                               }
+
                                                oArgs 
={menuaction:'phpgwapi.menu.get_local_menu_ajax',node: app};
                                        }
 
@@ -24,11 +30,27 @@
                                        return {'id': node.id};
                                }
                        }
-               }
+               },
+               plugins: ["state", "search"]
+
        });
 
        var to = false;
 
+       $('#navbar_search').hide();
+
+       $('#collapseNavbar').on('click', function () {
+                       $(this).attr('href', 'javascript:;');
+                       $('#navbar').jstree('close_all');
+                       $('#navbar_search').hide();
+               })
+
+       $('#expandNavbar').on('click', function () {
+               $(this).attr('href', 'javascript:;');
+               $('#navbar').jstree('open_all');
+               $('#navbar_search').show();
+       });
+       
        $('#navbar_search').keyup(function () {
                if (to) {
                        clearTimeout(to);
@@ -38,16 +60,15 @@
                        $('#navbar').jstree(true).search(v);
                }, 250);
        });
+
+
        $('#navbar').bind('select_node.jstree', function (e, data) {
                if (typeof (data.event) == 'undefined')
                {
                        return false;
                }
-               //              var treeInst = $('#treeDiv1').jstree(true);
-               //              treeInst.save_state();
                setTimeout(function () {
-                       update_content(data.node.a_attr.href);
-                       //window.location.href = data.node.a_attr.href;
+                       window.location.href = data.node.original.url;
                }, 100);
 
        });

Modified: branches/dev-syncromind/phpgwapi/templates/portico/js/base.js
===================================================================
--- branches/dev-syncromind/phpgwapi/templates/portico/js/base.js       
2015-11-28 19:12:03 UTC (rev 14502)
+++ branches/dev-syncromind/phpgwapi/templates/portico/js/base.js       
2015-11-29 14:52:40 UTC (rev 14503)
@@ -26,22 +26,19 @@
                ,       south: {
                        maxSize:                                200
                ,       spacing_closed:                 0                       
// HIDE resizer & toggler when 'closed'
+               ,       spacing_open:                   0
                ,       slidable:                               false           
// REFERENCE - cannot slide if spacing_closed = 0
                ,       initClosed:                             false
+               ,       resizable:                              false
                        }
 
                });
 
-               $('#collapseNavbar').on('click', function () {
-                       $(this).attr('href', 'javascript:;');
-                       $('#navbar').jstree('close_all');
-               })
 
-               $('#expandNavbar').on('click', function () {
-                       $(this).attr('href', 'javascript:;');
-                       $('#navbar').jstree('open_all');
-               });
-
+               /**
+                * Experimental : requires live update of js and css
+                * @param {type} requestUrl
+                */
                update_content = function(requestUrl)
                {
 

Modified: branches/dev-syncromind/phpgwapi/templates/portico/navbar.inc.php
===================================================================
--- branches/dev-syncromind/phpgwapi/templates/portico/navbar.inc.php   
2015-11-28 19:12:03 UTC (rev 14502)
+++ branches/dev-syncromind/phpgwapi/templates/portico/navbar.inc.php   
2015-11-29 14:52:40 UTC (rev 14503)
@@ -112,56 +112,10 @@
                        }
                }
 
-               if 
(isset($GLOBALS['phpgw_info']['user']['preferences']['common']['sidecontent']) 
&& $GLOBALS['phpgw_info']['user']['preferences']['common']['sidecontent'] == 
'ajax_menu')
+               if 
(isset($GLOBALS['phpgw_info']['user']['preferences']['common']['sidecontent']) 
&& $GLOBALS['phpgw_info']['user']['preferences']['common']['sidecontent'] == 
'jsmenu'
+                       && !phpgwapi_cache::session_get('navbar', 'compiled') 
== true
+               )
                {
-                       $exclude = array('logout', 'about', 'preferences');
-                       $i = 1;
-                       foreach ( $navbar as $app => $app_data )
-                       {
-                               if ( in_array($app, $exclude) )
-                               {
-                                       continue;
-                               }
-
-                               $applications[] = array
-                               (
-                                       'value'=> array
-                                       (
-                                               'id'    => $i,
-                                               'app'   => $app,
-                                               'label' => $app_data['text'],
-                                               'href'  => 
str_replace('&','&', $app_data['url']),
-                                       ),
-                                       'children'      => array()
-                               );
-
-                               $mapping[$i] = array
-                               (
-                                       'id'            => $i,
-                                       'name'          => $app,
-                                       'expanded'      => false,
-                                       'highlight'     => $app == $currentapp 
? true : false,
-                                       'is_leaf'       => false
-                               );
-                               
-                               $i ++;
-                       }
-                       $applications = json_encode($applications);
-                       $mapping = json_encode($mapping);
-                       $_menu_selection = str_replace('::', '|', 
$GLOBALS['phpgw_info']['flags']['menu_selection']);
-
-                       $var['treemenu'] = <<<HTML
-                               <script type="text/javascript">
-                                       var apps = {$applications};
-                                       var mapping = {$mapping};
-                                       var proxy_data = 
['first_element_is_dummy'];
-                                       var menu_selection = 
'{$_menu_selection}';
-                               </script>
-HTML;
-               }
-               else
-               {               
-//                     prepare_navbar($navbar);
                        $navigation = execMethod('phpgwapi.menu.get', 
'navigation');
                        $treemenu = '';
                        foreach($navbar as $app => $app_data)
@@ -178,20 +132,62 @@
                        </ul>
 
 HTML;
+                       
+                       /**
+                        * Check for HTML5
+                        */
+                       if(!preg_match('/MSIE (6|7|8)/', 
$_SERVER['HTTP_USER_AGENT']))
+                       {
+                               phpgwapi_cache::session_set('navbar', 
'compiled', true);
+                       }
                }
 
                if 
(isset($GLOBALS['phpgw_info']['user']['preferences']['common']['sidecontent']) 
&& $GLOBALS['phpgw_info']['user']['preferences']['common']['sidecontent'] == 
'jsmenu')
                {
-                       $var['treemenu'] .= <<<JS
+                       $var['tree_script'] = <<<JS
                                <script type="text/javascript">
+
                                $(function() {
-                                       $('#navbar').jstree({
+
+                               if(typeof(Storage)!=="undefined")
+                               {
+                                       var cached_menu_tree_data = 
$("#navbar").html();
+                                       if(cached_menu_tree_data)
+                                       {
+                                               
sessionStorage.cached_menu_tree_data = cached_menu_tree_data;
+                                       }
+                                       else
+                                       {
+                                               cached_menu_tree_data = 
sessionStorage.cached_menu_tree_data;
+                                       }
+
+                                       if(typeof(cached_menu_tree_data) 
!='undefined' && cached_menu_tree_data)
+                                       {
+                                               
$('#navbar').html(cached_menu_tree_data);
+                                       }
+                               }
+
+                                $('#navbar').jstree({
                                                core:{
                                                                multiple: false
                                                         },
                                                plugins: ["state", "search"]
                                        });
-                                       var to = false;
+
+                                       $('#collapseNavbar').on('click', 
function () {
+                                                       $(this).attr('href', 
'javascript:;');
+                                                       
$('#navbar').jstree('close_all');
+                                                       
$('#navbar_search').hide();
+                                               })
+
+                                       $('#expandNavbar').on('click', function 
() {
+                                               $(this).attr('href', 
'javascript:;');
+                                               $('#navbar').jstree('open_all');
+                                               $('#navbar_search').show();
+                                       });
+
+
+                                   var to = false;
                                        $('#navbar_search').keyup(function () {
                                                if(to) { clearTimeout(to); }
                                                to = setTimeout(function () {
@@ -204,8 +200,6 @@
                                                {
                                                        return false;
                                                }
-                               //              var treeInst = 
$('#treeDiv1').jstree(true);
-                               //              treeInst.save_state();
                                                setTimeout(function() {
                                                        
update_content(data.node.a_attr.href);
                                                        //window.location.href 
= data.node.a_attr.href;

Modified: branches/dev-syncromind/phpgwapi/templates/portico/navbar.tpl
===================================================================
--- branches/dev-syncromind/phpgwapi/templates/portico/navbar.tpl       
2015-11-28 19:12:03 UTC (rev 14502)
+++ branches/dev-syncromind/phpgwapi/templates/portico/navbar.tpl       
2015-11-29 14:52:40 UTC (rev 14503)
@@ -8,7 +8,6 @@
                                        if(typeof(Storage)!=="undefined")
                                        {
                                                
sessionStorage.cached_menu_tree_data = '';
-                                               sessionStorage.cached_mapping = 
'';
                                        }
 
                                        var sUrl = phpGWLink('logout.php');
@@ -59,9 +58,8 @@
                                        </a>
                                </div>
 
-                               <div id="navbar" class="ui-layout-content" 
style="overflow: auto;">
-{treemenu}
-                               </div>
+                               <div id="navbar" class="ui-layout-content" 
style="overflow: auto;">{treemenu}</div>
+                               {tree_script}
                        </div>
 
                        <div id="center_content" class="ui-layout-center 
content">




reply via email to

[Prev in Thread] Current Thread [Next in Thread]