[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Fmsystem-commits] [11244] test ajax menu
From: |
Sigurd Nes |
Subject: |
[Fmsystem-commits] [11244] test ajax menu |
Date: |
Thu, 01 Aug 2013 15:53:31 +0000 |
Revision: 11244
http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=11244
Author: sigurdne
Date: 2013-08-01 15:53:30 +0000 (Thu, 01 Aug 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-31 15:44:45 UTC (rev
11243)
+++ trunk/property/js/yahoo/test.menu.js 2013-08-01 15:53:30 UTC (rev
11244)
@@ -1,29 +1,7 @@
-
-
-function get_html (sUrl)
-{
- document.getElementById('html_content').src = sUrl;
-
- var callback_2 = {
- success: function(oResponse)
- {
- var oResults = oResponse.responseText;
-
document.getElementById("html_content").innerHTML = oResults;
- },
-
- failure: function(oResponse) {
- },
- };
-
- YAHOO.util.Connect.asyncRequest('GET', sUrl, callback_2);
-
-}
-
-
//an anonymous function wraps our code to keep our variables
//in function scope rather than in the global namespace:
(function() {
-// var tree;
+ var tree;
function loadNodeData(node, fnLoadComplete) {
//We'll load node data based on what we get back when we
@@ -34,14 +12,9 @@
//server. In our success handler, we'll build our new children
//and then return fnLoadComplete back to the tree.
- //Get the node's label and urlencode it; this is the word/s
- //on which we'll search for related words:
- //var nodeLabelElId = encodeURI(node.labelElId);
-
-
- var mapping_str = node.labelElId
- mapping_id = mapping_str.replace('ygtvlabelel','');
+ mapping_id = node.index;
var app = mapping[mapping_id]['name'];
+ //var app = node.data['app'];
//prepare URL for XHR request:
var oArgs =
{menuaction:'phpgwapi.menu.get_local_menu_ajax',node:app};
@@ -53,7 +26,6 @@
//if our XHR call is successful, we want to make use
//of the returned data and create child nodes.
success: function(oResponse) {
- // YAHOO.log("XHR transaction was successful.",
"info", "example");
var oResults = eval("(" +
oResponse.responseText + ")");
@@ -71,35 +43,35 @@
if (!titles[title]) {
titles[title] = true;
- var myobj = {label:
title, href:url}//,target:"_self" };
+ var myobj = {
+ label: title,
+ href:url,
+ data:{app: app
+ '|' + key}
+ }//,target:"_self" };
tempNode = new
YAHOO.widget.TextNode( myobj, node, false);
- var mapping_str =
tempNode.labelElId
- mapping_id =
mapping_str.replace('ygtvlabelel','');
- mapping[mapping_id] =
{id: mapping_id, name: app + '|' + key, expanded: false, highlight: false};
+ mapping_id =
tempNode.index;
+ mapping[mapping_id] =
{id: mapping_id, name: app + '|' + key, expanded: false, highlight: false,
is_leaf:is_leaf};
- //----------
- var parent_mapping_str
= node.labelElId
- parent_mapping_id =
parent_mapping_str.replace('ygtvlabelel','');
+ parent_mapping_id =
node.index;
+
myobj['parent'] =
parent_mapping_id;
myobj['id'] =
mapping_id;
myobj['isLeaf'] =
is_leaf;
myobj['expanded'] =
false;
-// proxy_data.push(myobj);
-//console.log(myobj);
proxy_data[mapping_id]
= myobj;
if(parent_mapping_id)
{
-
proxy_data[parent_mapping_id]['expanded'] = true;
+ //
proxy_data[parent_mapping_id]['expanded'] = true;
mapping[parent_mapping_id]['expanded'] = true;
}
// we can tell the tree
node that this is a leaf node so
// that it doesn't try
to dynamically load children.
-
+
if(is_leaf)
{
tempNode.isLeaf
= is_leaf;
@@ -116,12 +88,8 @@
}
}
-console.log(proxy_data);
-console.log(mapping);
-
- sessionStorage.cached_menu_tree_data =
JSON.stringify(proxy_data);
- sessionStorage.cached_mapping =
JSON.stringify(mapping);
-
+ sessionStorage.cached_menu_tree_data =
YAHOO.lang.JSON.stringify(proxy_data);
+ sessionStorage.cached_mapping =
YAHOO.lang.JSON.stringify(mapping);
}
//When we're done creating child nodes, we
execute the node's
@@ -135,7 +103,6 @@
//fire the TreeView callback and let the Tree
//proceed with its business.
failure: function(oResponse) {
- YAHOO.log("Failed to process XHR transaction.",
"info", "example");
oResponse.argument.fnLoadComplete();
},
@@ -176,130 +143,138 @@
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(menu_tree_data);
-
if(cached_mapping)
{
- mapping = JSON.parse(cached_mapping);
+ mapping = YAHOO.lang.JSON.parse(cached_mapping);
}
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;
+ cached_menu_tree_data =
YAHOO.lang.JSON.parse(cached_menu_tree_data);
menu_tree_data = buildHierarchy(cached_menu_tree_data);
}
- //create a new tree:
- tree = new YAHOO.widget.TreeView("treeDiv1");
+ //create a new tree:
+ tree = new YAHOO.widget.TreeView("MenutreeDiv1");
+// tree.singleNodeHighlight = true;
+ tree.setNodesProperty('propagateHighlightUp',true);
- // 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);
- // 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);
-// mapping[mapping_id]['expanded'] = false;
-// sessionStorage.cached_mapping = JSON.stringify(mapping);
- });
+ // 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 = node.index;
//mapping_str.replace('ygtvlabelel','');
+ mapping[mapping_id]['expanded'] = true;
+ sessionStorage.cached_mapping = JSON.stringify(mapping);
+ sessionStorage.cached_menu_tree_data =
JSON.stringify(proxy_data);
+ });
+ tree.subscribe("collapse", function(node) {
+ //var mapping_str = node.labelElId
+ var mapping_id = node.index;
//mapping_str.replace('ygtvlabelel','');
+ mapping[mapping_id]['expanded'] = false;
+ sessionStorage.cached_mapping = JSON.stringify(mapping);
+ sessionStorage.cached_menu_tree_data =
JSON.stringify(proxy_data);
+ });
- //get root node for tree:
- var root = tree.getRoot();
+ tree.subscribe('clickEvent',tree.onEventToggleHighlight);
- //add child nodes for tree; our top level nodes are apps - defined
in html
+ //get root node for tree:
+ var root = tree.getRoot();
- function buildTree(menu_tree_data)
- {
-//console.log(menu_tree_data);
-//console.log(mapping);
+ //add child nodes for tree; our top level nodes are apps -
defined in html
+ function buildTree(menu_tree_data)
+ {
+ //Reset proxy_data
+ proxy_data = ['first_element_is_dummy'];
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,
mapping[branch[i]['value']['id']]['expanded']);
- var mapping_str = tempNode.labelElId
- var mapping_id =
mapping_str.replace('ygtvlabelel','');
+
+ var myobj = {
+ label:
branch[i]['value']['label'],
+ href: branch[i]['value']['href']
+ // data:{app: app + '|' + key}
+ }//,target:"_self" };
+
+ var tempNode = new
YAHOO.widget.TextNode(myobj, node,
mapping[branch[i]['value']['id']]['expanded']);
+
+
if(mapping[branch[i]['value']['id']]['name'] == menu_selection)
+ {
+ tempNode.label = '[' +
tempNode.label + ']';
+ tempNode.highlight();
+ }
+
+ var mapping_id = tempNode.index;
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','');
+ parent_mapping_id = node.index;
-/* 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;
-*/
+ myobj['parent'] = parent_mapping_id;
+ myobj['id'] = mapping_id;
+ proxy_data[mapping_id] = myobj;
+
if(typeof(branch[i]['children']) !=
'undefined' && branch[i]['children'].length)
{
buildBranch(tempNode,
branch[i]['children']);
}
else
{
- tempNode.isLeaf =
branch[i]['value']['isLeaf'];
+ tempNode.isLeaf =
mapping[branch[i]['value']['id']]['is_leaf'];
tempNode.setDynamicLoad(loadNodeData);
}
}
};
- var id = 0;
- for (var i=0, j=menu_tree_data.length; i<j; i++)
- {
- var myobj = {
+ for (var i=0, j=menu_tree_data.length; i<j; i++)
+ {
+ var myobj = {
label:
menu_tree_data[i]['value']['label'],
- href: menu_tree_data[i]['value']['href']
- }//,target:"_self" };
-
-
+ href:
menu_tree_data[i]['value']['href'],
+ enableHighlight: true
+ }
+
+
var tempNode = new YAHOO.widget.TextNode(myobj,
root, mapping[menu_tree_data[i]['value']['id']]['expanded']);
-//
if(mapping[menu_tree_data[i]['value']['id']]['highlight'])
+
if(mapping[menu_tree_data[i]['value']['id']]['highlight'])
{
-// tempNode.highlight();
+ tempNode.highlight();
}
- var mapping_str = tempNode.labelElId
- var mapping_id =
mapping_str.replace('ygtvlabelel','');
+
if(mapping[menu_tree_data[i]['value']['id']]['name'] == menu_selection)
+ {
+ tempNode.label = '[' + tempNode.label +
']';
+ tempNode.highlight();
+ }
+ var mapping_id = tempNode.index;
+
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[id] = myobj;
+ myobj['id'] = mapping_id;
+ proxy_data[mapping_id] = myobj;
if(typeof(menu_tree_data[i]['children']) !=
'undefined' && menu_tree_data[i]['children'].length)
{
@@ -309,26 +284,18 @@
{
tempNode.setDynamicLoad(loadNodeData);
}
- }
+ }
- //render tree with these toplevel nodes; all descendants of
these nodes
- //will be generated as needed by the dynamic loader.
+ //render tree with these toplevel nodes; all
descendants of these nodes
+ //will be generated as needed by the dynamic loader.
- tree.draw();
+ tree.draw();
mapping = new_mapping;
- if(new_proxy_data.length > 1)
- {
- proxy_data = new_proxy_data;
- }
- }
+ }
+
buildTree(menu_tree_data);
-//console.log(mapping);
-
-//----------test -------------
-
-
function buildHierarchy(arry) {
var roots = [], children = {};
@@ -338,11 +305,10 @@
for (var i = 1, len = arry.length; i < len; ++i)
{
var item = arry[i],
- p = item.parent,
- target = !p ? roots : (children[p] ||
(children[p] = []));
+ p = item.parent,
+ target = !p ? roots : (children[p] ||
(children[p] = []));
target.push({ value: item });
-// target.push(item);
}
// function to recursively build the tree
@@ -350,11 +316,11 @@
{
if (children[parent.value.id])
{
- parent.children = children[parent.value.id];
- for (var i = 0, len =
parent.children.length; i < len; ++i)
- {
- findChildren(parent.children[i]);
- }
+ parent.children =
children[parent.value.id];
+ for (var i = 0, len =
parent.children.length; i < len; ++i)
+ {
+
findChildren(parent.children[i]);
+ }
}
};
@@ -366,16 +332,9 @@
return roots;
}
-
-// ------test -----------
-
-
}
-
-
//once the DOM has loaded, we can go ahead and set up our tree:
YAHOO.util.Event.onDOMReady(init);
-
})();
Modified: trunk/property/test_menu.php
===================================================================
--- trunk/property/test_menu.php 2013-07-31 15:44:45 UTC (rev 11243)
+++ trunk/property/test_menu.php 2013-08-01 15:53:30 UTC (rev 11244)
@@ -36,20 +36,16 @@
{
continue;
}
- if ( $app == $currentapp)
- {
- $app_data['text'] =
"[<b>{$app_data['text']}</b>]";
- }
$applications[] = array
(
'value'=> array
(
'id' => $i,
+ 'app' => $app,
'label' => $app_data['text'],
// 'href' => str_replace('&','&',
$app_data['url']) . '&phpgw_return_as=noframes',
'href' => str_replace('&','&',
$app_data['url']),
- 'expanded' => false
),
'children' => array()
);
@@ -59,7 +55,8 @@
'id' => $i,
'name' => $app,
'expanded' => false,
- 'highlight' => $app == $currentapp ? true :
false
+ 'highlight' => true,//$app == $currentapp ?
true : false,
+ 'is_leaf' => false
);
$i ++;
@@ -68,7 +65,7 @@
$mapping = json_encode($mapping);
$html = <<<HTML
- <div id="treeDiv1"></div>
+ <div id="MenutreeDiv1"></div>
<script type="text/javascript">
var apps = {$applications};
var mapping = {$mapping};
@@ -77,10 +74,6 @@
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§ion=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();
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Fmsystem-commits] [11244] test ajax menu,
Sigurd Nes <=