fmsystem-commits
[Top][All Lists]
Advanced

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

[Fmsystem-commits] [11243] test ajax menu


From: Sigurd Nes
Subject: [Fmsystem-commits] [11243] test ajax menu
Date: Wed, 31 Jul 2013 15:44:46 +0000

Revision: 11243
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=11243
Author:   sigurdne
Date:     2013-07-31 15:44:45 +0000 (Wed, 31 Jul 2013)
Log Message:
-----------
test ajax menu

Modified Paths:
--------------
    trunk/property/js/yahoo/test.menu.js
    trunk/property/test_menu.php

Modified: trunk/property/js/yahoo/test.menu.js
===================================================================
--- trunk/property/js/yahoo/test.menu.js        2013-07-30 15:04:43 UTC (rev 
11242)
+++ trunk/property/js/yahoo/test.menu.js        2013-07-31 15:44:45 UTC (rev 
11243)
@@ -38,9 +38,10 @@
                //on which we'll search for related words:
                //var nodeLabelElId = encodeURI(node.labelElId);
 
+
                var mapping_str = node.labelElId
                mapping_id = mapping_str.replace('ygtvlabelel','');
-               var app = mapping[mapping_id];
+               var app = mapping[mapping_id]['name'];
 
                //prepare URL for XHR request:
                var oArgs = 
{menuaction:'phpgwapi.menu.get_local_menu_ajax',node:app};
@@ -75,9 +76,8 @@
 
                                                        var mapping_str = 
tempNode.labelElId
                                                        mapping_id = 
mapping_str.replace('ygtvlabelel','');
-                                                       mapping[mapping_id] = 
app + '|' + key;
+                                                       mapping[mapping_id] = 
{id: mapping_id, name: app + '|' + key, expanded: false, highlight: false};
 
-
                                                        //----------
                                                        var parent_mapping_str 
= node.labelElId
                                                        parent_mapping_id = 
parent_mapping_str.replace('ygtvlabelel','');
@@ -86,18 +86,16 @@
                                                        myobj['id'] = 
mapping_id;
                                                        myobj['isLeaf'] = 
is_leaf;
                                                        myobj['expanded'] = 
false;
-                                                       proxy_data.push(myobj);
-//                                                     
proxy_data[(mapping_id-1)] =  myobj;
+//                                                     proxy_data.push(myobj);
+
+//console.log(myobj);
+                                                       proxy_data[mapping_id] 
=  myobj;
                                                        if(parent_mapping_id)
                                                        {
-                                                               
proxy_data[(parent_mapping_id -1) ]['expanded'] = true;
+                                                               
proxy_data[parent_mapping_id]['expanded'] = true;
+                                                               
mapping[parent_mapping_id]['expanded'] = true;
                                                        }
 
-                                                       //FIXME - move outside 
loop
-                                                       
sessionStorage.cached_menu_tree_data = JSON.stringify(proxy_data);
-                                                       
sessionStorage.cached_mapping = JSON.stringify(mapping);
-                                                       //----------
-
                                                        // we can tell the tree 
node that this is a leaf node so
                                                        // that it doesn't try 
to dynamically load children.
 
@@ -117,6 +115,13 @@
                                                        tempNode.href = url;
                                                }
                                        }
+
+console.log(proxy_data);
+console.log(mapping);
+
+                                       sessionStorage.cached_menu_tree_data = 
JSON.stringify(proxy_data);
+                                       sessionStorage.cached_mapping = 
JSON.stringify(mapping);
+
                                }
 
                                //When we're done creating child nodes, we 
execute the node's
@@ -151,45 +156,37 @@
                //make our XHR call using Connection Manager's
                //asyncRequest method:
                YAHOO.util.Connect.asyncRequest('GET', sUrl, callback);
-
-//console.log(mapping);
-//console.log(proxy_data);
-
-               //FIXME
-//             var json_proxy_data = JSON.stringify(proxy_data);
-//             sessionStorage.cached_menu_tree_data = json_proxy_data;
-//             sessionStorage.cached_mapping = JSON.stringify(mapping);
-
        }
 
        function init() {
 
-       var reset = false;
+               var reset = false;
 
-       if(reset)
-       {
-               sessionStorage.cached_menu_tree_data = '';
-               sessionStorage.cached_mapping = '';
-       }
+               if(reset)
+               {
+                       sessionStorage.cached_menu_tree_data = '';
+                       sessionStorage.cached_mapping = '';
+               }
 
                var menu_tree_data;
                var cached_menu_tree_data;
                var cached_mapping;
+               var new_mapping = [{name:'first_element_is_dummy'}];
+               var new_proxy_data = ['first_element_is_dummy'];
 
                if(typeof(Storage)!=="undefined")
                {
 //                     alert('Yes! localStorage and sessionStorage support!');
                        cached_menu_tree_data = 
sessionStorage.cached_menu_tree_data;
                        cached_mapping = sessionStorage.cached_mapping;
+
+//alert(cached_menu_tree_data);
                }
                else
                {
                        alert('Sorry! No web storage support..');
                }
 
-//             console.log(apps);
-               menu_tree_data = apps;
-
 //             console.log(menu_tree_data);
 
                if(cached_mapping)
@@ -197,38 +194,36 @@
                        mapping = JSON.parse(cached_mapping);
                }
 
-               if(cached_menu_tree_data !=null && cached_menu_tree_data)
+               menu_tree_data = apps;
+               if(cached_menu_tree_data)
                {
-
+//alert(cached_menu_tree_data);
                        cached_menu_tree_data = 
JSON.parse(cached_menu_tree_data);
-                       proxy_data = cached_menu_tree_data;
-
-                       if(apps.length < cached_menu_tree_data.length)
-                       {
-                               menu_tree_data = 
buildHierarchy(cached_menu_tree_data);
-                       }
+       //              proxy_data = cached_menu_tree_data;
+                       menu_tree_data = buildHierarchy(cached_menu_tree_data);
                }
 
           //create a new tree:
           tree = new YAHOO.widget.TreeView("treeDiv1");
 
-          //turn dynamic loading on for entire tree:
-//        tree.setDynamicLoad(loadNodeData);
 
-
    // Expand and collapse happen prior to the actual expand/collapse,
     // and can be used to cancel the operation
     tree.subscribe("expand", function(node) {
                var mapping_str = node.labelElId
                var mapping_id = mapping_str.replace('ygtvlabelel','');
-        alert( mapping_id + " was expanded");
+               alert(mapping_id);
+ //       mapping[mapping_id]['expanded'] = true;
+//             sessionStorage.cached_mapping = JSON.stringify(mapping);
         // return false; // return false to cancel the expand
     });
  
     tree.subscribe("collapse", function(node) {
                var mapping_str = node.labelElId
                var mapping_id = mapping_str.replace('ygtvlabelel','');
-        alert(mapping_id + " was collapsed");
+               alert(mapping_id);
+//        mapping[mapping_id]['expanded'] = false;
+//             sessionStorage.cached_mapping = JSON.stringify(mapping);
     });
 
 
@@ -239,12 +234,26 @@
 
           function buildTree(menu_tree_data)
           {
+//console.log(menu_tree_data);
+//console.log(mapping);
+
                        var buildBranch = function(node, branch)
                        {
                                for (var i = 0; i < branch.length; i++)
                                {
-                                       var tempNode = new 
YAHOO.widget.TextNode({label:branch[i]['value']['label'], 
href:branch[i]['value']['href']}, node, branch[i]['value']['expanded']);
+                                       var tempNode = new 
YAHOO.widget.TextNode({label:branch[i]['value']['label'], 
href:branch[i]['value']['href']}, node, 
mapping[branch[i]['value']['id']]['expanded']);
+                                       var mapping_str = tempNode.labelElId
+                                       var mapping_id = 
mapping_str.replace('ygtvlabelel','');
+                                       new_mapping[mapping_id] = 
mapping[branch[i]['value']['id']];
+                                       new_mapping[mapping_id]['id'] = 
mapping_id;
 
+                                       var parent_mapping_str = node.labelElId
+                                       parent_mapping_id = 
parent_mapping_str.replace('ygtvlabelel','');
+
+/*                                     new_proxy_data[mapping_id]              
        = proxy_data[branch[i]['value']['id']];
+                                       new_proxy_data[mapping_id]['id']        
= mapping_id;
+                                       new_proxy_data[mapping_id]['parent'] = 
parent_mapping_id;
+*/
                                        if(typeof(branch[i]['children']) != 
'undefined' && branch[i]['children'].length)
                                        {
                                                buildBranch(tempNode, 
branch[i]['children']);
@@ -262,19 +271,35 @@
                   {
                                var myobj = { 
                                        label: 
menu_tree_data[i]['value']['label'],
-                               //      href:'javascript:get_html("' + 
menu_tree_data[i]['value']['href'] + '");',
                                        href: menu_tree_data[i]['value']['href']
                                        }//,target:"_self" };
+                               
+                       
+                               var tempNode = new YAHOO.widget.TextNode(myobj, 
root, mapping[menu_tree_data[i]['value']['id']]['expanded']);
 
-                               var tempNode = new YAHOO.widget.TextNode(myobj, 
root, menu_tree_data[i]['value']['expanded']);
+//                             
if(mapping[menu_tree_data[i]['value']['id']]['highlight'])
+                               {
+//                                     tempNode.highlight();
+                               }
 
-                               id = i + 1;
+                               var mapping_str = tempNode.labelElId
+                               var mapping_id = 
mapping_str.replace('ygtvlabelel','');
+
+                               var old_id = menu_tree_data[i]['value']['id'];
+                               new_mapping[mapping_id] = 
mapping[menu_tree_data[i]['value']['id']];
+                               new_mapping[mapping_id]['id'] = mapping_id;
+                               
+                               if(typeof(proxy_data[old_id]) != 'undefined')
+                               {
+                                       new_proxy_data[mapping_id] = 
proxy_data[old_id];
+                               }
+                               //id = i + 1;
+                               
+                               id = mapping_id;
                                myobj['parent'] = '';
                                myobj['id'] = id;
                                myobj['expanded'] = false;
-                               proxy_data.push(myobj);
-                       //      proxy_data[id] =  myobj;
-                       //      proxy_data[id]['expanded'] = false;
+                               proxy_data[id] =  myobj;
 
                                if(typeof(menu_tree_data[i]['children']) != 
'undefined' && menu_tree_data[i]['children'].length)
                                {
@@ -290,11 +315,17 @@
                   //will be generated as needed by the dynamic loader.
 
                   tree.draw();
+                       mapping = new_mapping;
+                       if(new_proxy_data.length > 1)
+                       {
+                               proxy_data = new_proxy_data;
+                       }
          }
 
-
                buildTree(menu_tree_data);
 
+//console.log(mapping);
+
 //----------test -------------
 
 
@@ -303,7 +334,8 @@
                        var roots = [], children = {};
 
                        // find the top level nodes and hash the children based 
on parent
-                       for (var i = 0, len = arry.length; i < len; ++i)
+                       // First element is dummy
+                       for (var i = 1, len = arry.length; i < len; ++i)
                        {
                                var item = arry[i],
                                    p = item.parent,

Modified: trunk/property/test_menu.php
===================================================================
--- trunk/property/test_menu.php        2013-07-30 15:04:43 UTC (rev 11242)
+++ trunk/property/test_menu.php        2013-07-31 15:44:45 UTC (rev 11243)
@@ -25,7 +25,7 @@
 
                $currentapp = $GLOBALS['phpgw_info']['flags']['currentapp'];
                $applications = array();
-               $mapping = array();
+               $mapping = array(0 => array('name' => 
'first_element_is_dummy'));
                $exclude = array('home', 'preferences', 'about', 'logout');
                $navbar = execMethod('phpgwapi.menu.get', 'navbar');
 
@@ -45,6 +45,7 @@
                        (
                                'value'=> array
                                (
+                                       'id'    => $i,
                                        'label' => $app_data['text'],
                                //      'href'  => str_replace('&amp;','&', 
$app_data['url']) . '&phpgw_return_as=noframes',
                                        'href'  => str_replace('&amp;','&', 
$app_data['url']),
@@ -53,7 +54,14 @@
                                'children'      => array()
                        );
 
-                       $mapping[$i] = $app;
+                       $mapping[$i] = array
+                       (
+                               'id'            => $i,
+                               'name'          => $app,
+                               'expanded'      => false,
+                               'highlight'     => $app == $currentapp ? true : 
false
+                       );
+                               
                        $i ++;
                }
                $applications = json_encode($applications);
@@ -61,15 +69,18 @@
 
 $html = <<<HTML
                <div id="treeDiv1"></div>
-               <!--div id="html_content"></div-->
-               <iframe id="html_content" width="100%" height="100%"><p>Your 
browser does not support iframes.</p></iframe>
                <script type="text/javascript">
                   var apps = {$applications};
                   var mapping = {$mapping};
-                  var proxy_data = [];
+                       var proxy_data = ['first_element_is_dummy'];
                </script>
 HTML;
 
+
+$data = 
'["first_element_is_dummy",{"label":"Administrasjon","href":"/~sn5607/savannah_trunk/index.php?menuaction=admin.uimainscreen.mainscreen&click_history=63f5342fbfd7264eae6ecffa11a7b7c4","parent":"","id":"1","expanded":false},{"label":"Kontakter","href":"/~sn5607/savannah_trunk/index.php?menuaction=addressbook.uiaddressbook.index&section=Persons&click_history=63f5342fbfd7264eae6ecffa11a7b7c4","parent":"","id":"2","expanded":false},{"label":"Eiendom","href":"/~sn5607/savannah_trunk/index.php?menuaction=property.uitts.index&click_history=63f5342fbfd7264eae6ecffa11a7b7c4","parent":"","id":"3","expanded":true},{"label":"SMS","href":"/~sn5607/savannah_trunk/index.php?menuaction=sms.uisms.index&click_history=63f5342fbfd7264eae6ecffa11a7b7c4","parent":"","id":"4","expanded":false},{"label":"!bim","href":"/~sn5607/savannah_trunk/index.php?menuaction=bim.uibim.showModels&click_history=63f5342fbfd7264eae6ecffa11a7b7c4","parent":"","id":"5","expanded":false},{"label":"Frontend","href":"/~sn5607/savannah_trunk/index.php?menuaction=frontend.uifrontend.index&click_history=63f5342fbfd7264eae6ecffa11a7b7c4","parent":"","id":"6","expanded":false},{"label":"!messenger","href":"/~sn5607/savannah_trunk/index.php?menuaction=messenger.uimessenger.inbox&click_history=63f5342fbfd7264eae6ecffa11a7b7c4","parent":"","id":"7","expanded":false},{"label":"Kompetanse
 
styring","href":"/~sn5607/savannah_trunk/index.php?menuaction=hrm.uiuser.index&click_history=63f5342fbfd7264eae6ecffa11a7b7c4","parent":"","id":"8","expanded":false},{"label":"Catch","href":"/~sn5607/savannah_trunk/index.php?menuaction=catch.uicatch.index&click_history=63f5342fbfd7264eae6ecffa11a7b7c4","parent":"","id":"9","expanded":false},{"label":"Leie","href":"/~sn5607/savannah_trunk/index.php?menuaction=rental.uifrontpage.index&click_history=63f5342fbfd7264eae6ecffa11a7b7c4","parent":"","id":"10","expanded":false},{"label":"Kontroll","href":"/~sn5607/savannah_trunk/index.php?menuaction=controller.uicontrol.control_list&click_history=63f5342fbfd7264eae6ecffa11a7b7c4","parent":"","id":"11","expanded":false},{"label":"Lokalisering","href":"/~sn5607/savannah_trunk/index.php?menuaction=property.uilocation.index&type_id=1&click_history=aa5941db8a41d50b64493e5c4ee3a625","parent":"3","id":"12","isLeaf":false,"expanded":true},{"label":"!IFC","href":"/~sn5607/savannah_trunk/index.php?menuaction=property.uiifc.import&click_history=aa5941db8a41d50b64493e5c4ee3a625","parent":"3","id":"13","isLeaf":false,"expanded":false},{"label":"Meldinger","href":"/~sn5607/savannah_trunk/index.php?menuaction=property.uitts.index&click_history=aa5941db8a41d50b64493e5c4ee3a625","parent":"3","id":"14","isLeaf":false,"expanded":false},{"label":"prosjekt","href":"/~sn5607/savannah_trunk/index.php?menuaction=property.uiproject.index&click_history=aa5941db8a41d50b64493e5c4ee3a625","parent":"3","id":"15","isLeaf":false,"expanded":false},{"label":"Planlagte
 
oppgaver","href":"/~sn5607/savannah_trunk/index.php?menuaction=property.uievent.index&click_history=aa5941db8a41d50b64493e5c4ee3a625","parent":"3","id":"16","isLeaf":true,"expanded":false},{"label":"Faktura","href":"/~sn5607/savannah_trunk/index.php?menuaction=property.uiinvoice2.index&click_history=aa5941db8a41d50b64493e5c4ee3a625","parent":"3","id":"17","isLeaf":false,"expanded":false},{"label":"Budsjett","href":"/~sn5607/savannah_trunk/index.php?menuaction=property.uibudget.index&click_history=aa5941db8a41d50b64493e5c4ee3a625","parent":"3","id":"18","isLeaf":false,"expanded":false},{"label":"Avtale","href":"/~sn5607/savannah_trunk/index.php?menuaction=property.uiagreement.index&click_history=aa5941db8a41d50b64493e5c4ee3a625","parent":"3","id":"19","isLeaf":false,"expanded":false},{"label":"Dokumentasjon","href":"/~sn5607/savannah_trunk/index.php?menuaction=property.uidocument.index&click_history=aa5941db8a41d50b64493e5c4ee3a625","parent":"3","id":"20","isLeaf":false,"expanded":false},{"label":"Tilpasset","href":"/~sn5607/savannah_trunk/index.php?menuaction=property.uicustom.index&click_history=aa5941db8a41d50b64493e5c4ee3a625","parent":"3","id":"21","isLeaf":true,"expanded":false},{"label":"Brukerutstyr","href":"/~sn5607/savannah_trunk/index.php?menuaction=property.uientity.index&entity_id=1&click_history=aa5941db8a41d50b64493e5c4ee3a625","parent":"3","id":"22","isLeaf":false,"expanded":false},{"label":"Rapportering","href":"/~sn5607/savannah_trunk/index.php?menuaction=property.uientity.index&entity_id=2&click_history=aa5941db8a41d50b64493e5c4ee3a625","parent":"3","id":"23","isLeaf":false,"expanded":false},{"label":"Bygningsdelsregister","href":"/~sn5607/savannah_trunk/index.php?menuaction=property.uientity.index&entity_id=3&click_history=aa5941db8a41d50b64493e5c4ee3a625","parent":"3","id":"24","isLeaf":false,"expanded":false},{"label":"UtstyrsRegister::Ny","href":"/~sn5607/savannah_trunk/index.php?menuaction=property.uientity.index&entity_id=4&click_history=aa5941db8a41d50b64493e5c4ee3a625","parent":"3","id":"25","isLeaf":false,"expanded":false},{"label":"JasperReports","href":"/~sn5607/savannah_trunk/index.php?menuaction=property.uijasper.index&click_history=aa5941db8a41d50b64493e5c4ee3a625","parent":"3","id":"26","isLeaf":true,"expanded":false},{"label":"Eiendom","href":"/~sn5607/savannah_trunk/index.php?menuaction=property.uilocation.index&type_id=1&click_history=aa5941db8a41d50b64493e5c4ee3a625","parent":"12","id":"27","isLeaf":true,"expanded":false},{"label":"Bygg","href":"/~sn5607/savannah_trunk/index.php?menuaction=property.uilocation.index&type_id=2&click_history=aa5941db8a41d50b64493e5c4ee3a625","parent":"12","id":"28","isLeaf":true,"expanded":false},{"label":"Etasje","href":"/~sn5607/savannah_trunk/index.php?menuaction=property.uilocation.index&type_id=3&click_history=aa5941db8a41d50b64493e5c4ee3a625","parent":"12","id":"29","isLeaf":true,"expanded":false},{"label":"Bruksenhet","href":"/~sn5607/savannah_trunk/index.php?menuaction=property.uilocation.index&type_id=4&click_history=aa5941db8a41d50b64493e5c4ee3a625","parent":"12","id":"30","isLeaf":true,"expanded":false},{"label":"Rom","href":"/~sn5607/savannah_trunk/index.php?menuaction=property.uilocation.index&type_id=5&click_history=aa5941db8a41d50b64493e5c4ee3a625","parent":"12","id":"31","isLeaf":true,"expanded":false},{"label":"GrunnEiendom","href":"/~sn5607/savannah_trunk/index.php?menuaction=property.uigab.index&click_history=aa5941db8a41d50b64493e5c4ee3a625","parent":"12","id":"32","isLeaf":true,"expanded":false},{"label":"Sammendrag","href":"/~sn5607/savannah_trunk/index.php?menuaction=property.uilocation.summary&click_history=aa5941db8a41d50b64493e5c4ee3a625","parent":"12","id":"33","isLeaf":true,"expanded":false},{"label":"Rolle
 for 
Ansvarsmatrise","href":"/~sn5607/savannah_trunk/index.php?menuaction=property.uilocation.responsiblility_role&click_history=aa5941db8a41d50b64493e5c4ee3a625","parent":"12","id":"34","isLeaf":true,"expanded":false}]';
+
+//_debug_array(json_decode($data));die();
+
 // End--------------------------------------------------
 
        $GLOBALS['phpgw']->common->phpgw_header();




reply via email to

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