xlawrence 2005/11/10 08:57:39 CET
Modified files:
src/view/jsp actions.js
Log:
updated javascript with new AJAX STruts ACtions
Revision Changes Path
1.12 +487 -482 corporate_portal_templates/src/view/jsp/actions.js
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/corporate_portal_templates/src/view/jsp/actions.js.diff?r1=1.11&r2=1.12&f=h
Index: actions.js
===================================================================
RCS file:
/home/cvs/repository/corporate_portal_templates/src/view/jsp/actions.js,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- actions.js 2 Nov 2005 17:47:18 -0000 1.11
+++ actions.js 10 Nov 2005 07:57:38 -0000 1.12
@@ -1,4 +1,3 @@
-
//*****************************************************************************
// Do not remove this notice.
//
@@ -14,36 +13,38 @@
function Browser() {
- var ua, s, i;
+ var ua, s, i;
+
+ this.isIE = false;
+ // Internet Explorer
+ this.isNS = false;
+ // Netscape
+ this.version = null;
+
+ ua = navigator.userAgent;
+
+ s = "MSIE";
+ if ((i = ua.indexOf(s)) >= 0) {
+ this.isIE = true;
+ this.version = parseFloat(ua.substr(i + s.length));
+ return;
+ }
- this.isIE = false; // Internet Explorer
- this.isNS = false; // Netscape
- this.version = null;
-
- ua = navigator.userAgent;
-
- s = "MSIE";
- if ((i = ua.indexOf(s)) >= 0) {
- this.isIE = true;
- this.version = parseFloat(ua.substr(i + s.length));
- return;
- }
-
- s = "Netscape6/";
- if ((i = ua.indexOf(s)) >= 0) {
- this.isNS = true;
- this.version = parseFloat(ua.substr(i + s.length));
- return;
- }
-
- // Treat any other "Gecko" browser as NS 6.1.
-
- s = "Gecko";
- if ((i = ua.indexOf(s)) >= 0) {
- this.isNS = true;
- this.version = 6.1;
- return;
- }
+ s = "Netscape6/";
+ if ((i = ua.indexOf(s)) >= 0) {
+ this.isNS = true;
+ this.version = parseFloat(ua.substr(i + s.length));
+ return;
+ }
+
+ // Treat any other "Gecko" browser as NS 6.1.
+
+ s = "Gecko";
+ if ((i = ua.indexOf(s)) >= 0) {
+ this.isNS = true;
+ this.version = 6.1;
+ return;
+ }
}
var browser = new Browser();
@@ -61,127 +62,127 @@
// deactivated.
if (browser.isIE)
- document.onmousedown = pageMousedown;
+ document.onmousedown = pageMousedown;
else
- document.addEventListener("mousedown", pageMousedown, true);
+ document.addEventListener("mousedown", pageMousedown, true);
function pageMousedown(event) {
- var el;
+ var el;
- // If there is no active button, exit.
+ // If there is no active button, exit.
- if (activeButton == null)
- return;
+ if (activeButton == null)
+ return;
- // Find the element that was clicked on.
+ // Find the element that was clicked on.
- if (browser.isIE)
- el = window.event.srcElement;
- else
- el = (event.target.tagName ? event.target : event.target.parentNode);
+ if (browser.isIE)
+ el = window.event.srcElement;
+ else
+ el = (event.target.tagName ? event.target : event.target.parentNode);
- // If the active button was clicked on, exit.
+ // If the active button was clicked on, exit.
- if (el == activeButton)
- return;
+ if (el == activeButton)
+ return;
- // If the element is not part of a menu, reset and clear the active
- // button.
+ // If the element is not part of a menu, reset and clear the active
+ // button.
- if (getContainerWith(el, "DIV", "menu") == null) {
- resetButton(activeButton);
- activeButton = null;
- }
+ if (getContainerWith(el, "DIV", "menu") == null) {
+ resetButton(activeButton);
+ activeButton = null;
+ }
}
// Opens up the menu of the given id
-function buttonClick (menuId) {
- var button = getObjectById ("button_" + menuId);
+function buttonClick(menuId) {
+ var button = getObjectById("button_" + menuId);
+
+ // Blur focus from the link to remove that annoying outline.
+ button.blur();
+
+ // Associate the named menu to this button if not already done.
+ // Additionally, initialize menu display.
+ if (button.menu == null) {
+ button.menu = getObjectById(menuId);
+ if (button.menu.isInitialized == null) {
+ menuInit(button.menu);
+ }
+ }
+
+ // Reset the currently active button, if any.
+
+ if (activeButton != null) {
+ resetButton(activeButton);
+ }
- // Blur focus from the link to remove that annoying outline.
- button.blur();
+ // Activate this button, unless it was the currently active one.
- // Associate the named menu to this button if not already done.
- // Additionally, initialize menu display.
- if (button.menu == null) {
- button.menu = getObjectById (menuId);
- if (button.menu.isInitialized == null) {
- menuInit(button.menu);
- }
- }
-
- // Reset the currently active button, if any.
-
- if (activeButton != null) {
- resetButton(activeButton);
- }
-
- // Activate this button, unless it was the currently active one.
-
- if (button != activeButton) {
- depressButton(button);
- activeButton = button;
- } else {
- activeButton = null;
- }
+ if (button != activeButton) {
+ depressButton(button);
+ activeButton = button;
+ } else {
+ activeButton = null;
+ }
}
// Switches menu if the user's mouse goes on another menu
function buttonMouseover(event, menuId) {
- var button;
+ var button;
+
+ // Find the target button element.
+ if (browser.isIE) {
+ button = window.event.srcElement;
+ } else {
+ button = event.currentTarget;
+ }
- // Find the target button element.
- if (browser.isIE) {
- button = window.event.srcElement;
- } else {
- button = event.currentTarget;
- }
-
- // If any other button menu is active, make this one active instead.
- if (activeButton != null && activeButton != button) {
- buttonClick (menuId);
- }
+ // If any other button menu is active, make this one active instead.
+ if (activeButton != null && activeButton != button) {
+ buttonClick(menuId);
+ }
}
function depressButton(button) {
- var x, y;
+ var x, y;
- // Update the button's style class to make it look like it's
- // depressed.
+ // Update the button's style class to make it look like it's
+ // depressed.
- button.className += " menuButtonActive";
+ button.className += " menuButtonActive";
- // Position the associated drop down menu under the button and
- // show it.
+ // Position the associated drop down menu under the button and
+ // show it.
- x = getPageOffsetLeft(button);
- y = getPageOffsetTop(button) + button.offsetHeight;
+ x = getPageOffsetLeft(button);
+ y = getPageOffsetTop(button) + button.offsetHeight;
- // For IE, adjust position.
+ // For IE, adjust position.
- if (browser.isIE) {
- x += button.offsetParent.clientLeft;
- y += button.offsetParent.clientTop;
- }
+ if (browser.isIE) {
+ x += button.offsetParent.clientLeft;
+ y += button.offsetParent.clientTop;
+ }
- button.menu.style.left = x + "px";
- button.menu.style.top = y + "px";
- button.menu.style.visibility = "visible";
+ button.menu.style.left = x + "px";
+ button.menu.style.top = y + "px";
+ button.menu.style.visibility = "visible";
}
function resetButton(button) {
- // Restore the button's style class.
+ // Restore the button's style class.
- removeClassName(button, "menuButtonActive");
+ removeClassName(button, "menuButtonActive");
- // Hide the button's menu, first closing any sub menus.
+ // Hide the button's menu, first closing any sub menus.
- if (button.menu != null) {
- closeSubMenu(button.menu);
- button.menu.style.visibility = "hidden";
- }
+ if (button.menu != null) {
+ closeSubMenu(button.menu);
+ button.menu.style.visibility = "hidden";
+ }
}
//----------------------------------------------------------------------------
@@ -190,106 +191,106 @@
function menuMouseover(event) {
- var menu;
+ var menu;
- // Find the target menu element.
+ // Find the target menu element.
- if (browser.isIE)
- menu = getContainerWith(window.event.srcElement, "DIV", "menu");
- else
- menu = event.currentTarget;
+ if (browser.isIE)
+ menu = getContainerWith(window.event.srcElement, "DIV", "menu");
+ else
+ menu = event.currentTarget;
- // Close any active sub menu.
+ // Close any active sub menu.
- if (menu.activeItem != null)
- closeSubMenu(menu);
+ if (menu.activeItem != null)
+ closeSubMenu(menu);
}
function menuItemMouseover(event, menuId) {
- var item, menu, x, y;
-
- // Find the target item element and its parent menu element.
+ var item, menu, x, y;
- if (browser.isIE)
- item = getContainerWith(window.event.srcElement, "A", "menuItem");
- else
- item = event.currentTarget;
- menu = getContainerWith(item, "DIV", "menu");
+ // Find the target item element and its parent menu element.
- // Close any active sub menu and mark this one as active.
+ if (browser.isIE)
+ item = getContainerWith(window.event.srcElement, "A", "menuItem");
+ else
+ item = event.currentTarget;
+ menu = getContainerWith(item, "DIV", "menu");
- if (menu.activeItem != null)
- closeSubMenu(menu);
- menu.activeItem = item;
+ // Close any active sub menu and mark this one as active.
- // Highlight the item element.
+ if (menu.activeItem != null)
+ closeSubMenu(menu);
+ menu.activeItem = item;
- item.className += " menuItemHighlight";
+ // Highlight the item element.
- // Initialize the sub menu, if not already done.
+ item.className += " menuItemHighlight";
- if (item.subMenu == null) {
- item.subMenu = document.getElementById(menuId);
- if (item.subMenu.isInitialized == null)
- menuInit(item.subMenu);
- }
+ // Initialize the sub menu, if not already done.
- // Get position for submenu based on the menu item.
-
- x = getPageOffsetLeft(item) + item.offsetWidth;
- y = getPageOffsetTop(item);
-
- // Adjust position to fit in view.
-
- var maxX, maxY;
+ if (item.subMenu == null) {
+ item.subMenu = document.getElementById(menuId);
+ if (item.subMenu.isInitialized == null)
+ menuInit(item.subMenu);
+ }
- if (browser.isNS) {
- maxX = window.scrollX + window.innerWidth;
- maxY = window.scrollY + window.innerHeight;
- }
- if (browser.isIE) {
- maxX = (document.documentElement.scrollLeft != 0 ?
document.documentElement.scrollLeft : document.body.scrollLeft)
- + (document.documentElement.clientWidth != 0 ?
document.documentElement.clientWidth : document.body.clientWidth);
- maxY = (document.documentElement.scrollTop != 0 ?
document.documentElement.scrollTop : document.body.scrollTop)
- + (document.documentElement.clientHeight != 0 ?
document.documentElement.clientHeight : document.body.clientHeight);
- }
- maxX -= item.subMenu.offsetWidth;
- maxY -= item.subMenu.offsetHeight;
+ // Get position for submenu based on the menu item.
- if (x > maxX)
- x = Math.max(0, x - item.offsetWidth - item.subMenu.offsetWidth
- + (menu.offsetWidth - item.offsetWidth));
- y = Math.max(0, Math.min(y, maxY));
+ x = getPageOffsetLeft(item) + item.offsetWidth;
+ y = getPageOffsetTop(item);
- // Position and show it.
+ // Adjust position to fit in view.
- item.subMenu.style.left = x + "px";
- item.subMenu.style.top = y + "px";
- item.subMenu.style.visibility = "visible";
+ var maxX, maxY;
- // Stop the event from bubbling.
+ if (browser.isNS) {
+ maxX = window.scrollX + window.innerWidth;
+ maxY = window.scrollY + window.innerHeight;
+ }
+ if (browser.isIE) {
+ maxX = (document.documentElement.scrollLeft != 0 ?
document.documentElement.scrollLeft : document.body.scrollLeft)
+ + (document.documentElement.clientWidth != 0 ?
document.documentElement.clientWidth : document.body.clientWidth);
+ maxY = (document.documentElement.scrollTop != 0 ?
document.documentElement.scrollTop : document.body.scrollTop)
+ + (document.documentElement.clientHeight != 0 ?
document.documentElement.clientHeight : document.body.clientHeight);
+ }
+ maxX -= item.subMenu.offsetWidth;
+ maxY -= item.subMenu.offsetHeight;
- if (browser.isIE)
- window.event.cancelBubble = true;
- else
- event.stopPropagation();
+ if (x > maxX)
+ x = Math.max(0, x - item.offsetWidth - item.subMenu.offsetWidth
+ + (menu.offsetWidth - item.offsetWidth));
+ y = Math.max(0, Math.min(y, maxY));
+
+ // Position and show it.
+
+ item.subMenu.style.left = x + "px";
+ item.subMenu.style.top = y + "px";
+ item.subMenu.style.visibility = "visible";
+
+ // Stop the event from bubbling.
+
+ if (browser.isIE)
+ window.event.cancelBubble = true;
+ else
+ event.stopPropagation();
}
function closeSubMenu(menu) {
- if (menu == null || menu.activeItem == null)
- return;
+ if (menu == null || menu.activeItem == null)
+ return;
- // Recursively close any sub menus.
+ // Recursively close any sub menus.
- if (menu.activeItem.subMenu != null) {
- closeSubMenu(menu.activeItem.subMenu);
- menu.activeItem.subMenu.style.visibility = "hidden";
- menu.activeItem.subMenu = null;
- }
- removeClassName(menu.activeItem, "menuItemHighlight");
- menu.activeItem = null;
+ if (menu.activeItem.subMenu != null) {
+ closeSubMenu(menu.activeItem.subMenu);
+ menu.activeItem.subMenu.style.visibility = "hidden";
+ menu.activeItem.subMenu = null;
+ }
+ removeClassName(menu.activeItem, "menuItemHighlight");
+ menu.activeItem = null;
}
//----------------------------------------------------------------------------
@@ -298,64 +299,64 @@
function menuInit(menu) {
- var itemList, spanList;
- var textEl, arrowEl;
- var itemWidth;
- var w, dw;
- var i, j;
-
- // For IE, replace arrow characters.
-
- if (browser.isIE) {
- menu.style.lineHeight = "2.5ex";
- spanList = menu.getElementsByTagName("SPAN");
- for (i = 0; i < spanList.length; i++)
- if (hasClassName(spanList[i], "menuItemArrow")) {
- spanList[i].style.fontFamily = "Webdings";
- spanList[i].firstChild.nodeValue = "4";
- }
- }
-
- // Find the width of a menu item.
-
- itemList = menu.getElementsByTagName("A");
- if (itemList.length > 0)
- itemWidth = itemList[0].offsetWidth;
- else
- return;
-
- // For items with arrows, add padding to item text to make the
- // arrows flush right.
-
- for (i = 0; i < itemList.length; i++) {
- spanList = itemList[i].getElementsByTagName("SPAN");
- textEl = null;
- arrowEl = null;
- for (j = 0; j < spanList.length; j++) {
- if (hasClassName(spanList[j], "menuItemText"))
- textEl = spanList[j];
- if (hasClassName(spanList[j], "menuItemArrow"))
- arrowEl = spanList[j];
- }
- if (textEl != null && arrowEl != null)
- textEl.style.paddingRight = (itemWidth
- - (textEl.offsetWidth + arrowEl.offsetWidth)) + "px";
- }
-
- // Fix IE hover problem by setting an explicit width on first item of
- // the menu.
-
- if (browser.isIE) {
- w = itemList[0].offsetWidth;
- itemList[0].style.width = w + "px";
- dw = itemList[0].offsetWidth - w;
- w -= dw;
- itemList[0].style.width = w + "px";
- }
+ var itemList, spanList;
+ var textEl, arrowEl;
+ var itemWidth;
+ var w, dw;
+ var i, j;
+
+ // For IE, replace arrow characters.
+
+ if (browser.isIE) {
+ menu.style.lineHeight = "2.5ex";
+ spanList = menu.getElementsByTagName("SPAN");
+ for (i = 0; i < spanList.length; i++)
+ if (hasClassName(spanList[i], "menuItemArrow")) {
+ spanList[i].style.fontFamily = "Webdings";
+ spanList[i].firstChild.nodeValue = "4";
+ }
+ }
+
+ // Find the width of a menu item.
+
+ itemList = menu.getElementsByTagName("A");
+ if (itemList.length > 0)
+ itemWidth = itemList[0].offsetWidth;
+ else
+ return;
+
+ // For items with arrows, add padding to item text to make the
+ // arrows flush right.
+
+ for (i = 0; i < itemList.length; i++) {
+ spanList = itemList[i].getElementsByTagName("SPAN");
+ textEl = null;
+ arrowEl = null;
+ for (j = 0; j < spanList.length; j++) {
+ if (hasClassName(spanList[j], "menuItemText"))
+ textEl = spanList[j];
+ if (hasClassName(spanList[j], "menuItemArrow"))
+ arrowEl = spanList[j];
+ }
+ if (textEl != null && arrowEl != null)
+ textEl.style.paddingRight = (itemWidth
+ - (textEl.offsetWidth + arrowEl.offsetWidth)) + "px";
+ }
+
+ // Fix IE hover problem by setting an explicit width on first item of
+ // the menu.
- // Mark menu as initialized.
+ if (browser.isIE) {
+ w = itemList[0].offsetWidth;
+ itemList[0].style.width = w + "px";
+ dw = itemList[0].offsetWidth - w;
+ w -= dw;
+ itemList[0].style.width = w + "px";
+ }
+
+ // Mark menu as initialized.
- menu.isInitialized = true;
+ menu.isInitialized = true;
}
//----------------------------------------------------------------------------
@@ -364,335 +365,339 @@
function getContainerWith(node, tagName, className) {
- // Starting with the given node, find the nearest containing element
- // with the specified tag name and style class.
+ // Starting with the given node, find the nearest containing element
+ // with the specified tag name and style class.
- while (node != null) {
- if (node.tagName != null && node.tagName == tagName &&
- hasClassName(node, className))
- return node;
- node = node.parentNode;
- }
+ while (node != null) {
+ if (node.tagName != null && node.tagName == tagName &&
+ hasClassName(node, className))
+ return node;
+ node = node.parentNode;
+ }
- return node;
+ return node;
}
function hasClassName(el, name) {
- var i, list;
+ var i, list;
- // Return true if the given element currently has the given class
- // name.
+ // Return true if the given element currently has the given class
+ // name.
- list = el.className.split(" ");
- for (i = 0; i < list.length; i++)
- if (list[i] == name)
- return true;
+ list = el.className.split(" ");
+ for (i = 0; i < list.length; i++)
+ if (list[i] == name)
+ return true;
- return false;
+ return false;
}
function removeClassName(el, name) {
- var i, curList, newList;
+ var i, curList, newList;
- if (el.className == null)
- return;
+ if (el.className == null)
+ return;
- // Remove the given class name from the element's className property.
+ // Remove the given class name from the element's className property.
- newList = new Array();
- curList = el.className.split(" ");
- for (i = 0; i < curList.length; i++)
- if (curList[i] != name) {
- // Workaround to replace the push method.
- var _curList = new Array(curList[i]);
- newList.concat(_curList);
- // Comment this line because not supported by IE5.0
- //newList.push(curList[i]);
- }
- el.className = newList.join(" ");
+ newList = new Array();
+ curList = el.className.split(" ");
+ for (i = 0; i < curList.length; i++)
+ if (curList[i] != name) {
+ // Workaround to replace the push method.
+ var _curList = new Array(curList[i]);
+ newList.concat(_curList);
+ // Comment this line because not supported by IE5.0
+ //newList.push(curList[i]);
+ }
+ el.className = newList.join(" ");
}
function getPageOffsetLeft(el) {
- var x;
+ var x;
- // Return the x coordinate of an element relative to the page.
+ // Return the x coordinate of an element relative to the page.
- x = el.offsetLeft;
- if (el.offsetParent != null)
- x += getPageOffsetLeft(el.offsetParent);
+ x = el.offsetLeft;
+ if (el.offsetParent != null)
+ x += getPageOffsetLeft(el.offsetParent);
- return x;
+ return x;
}
function getPageOffsetTop(el) {
- var y;
+ var y;
- // Return the x coordinate of an element relative to the page.
+ // Return the x coordinate of an element relative to the page.
- y = el.offsetTop;
- if (el.offsetParent != null)
- y += getPageOffsetTop(el.offsetParent);
+ y = el.offsetTop;
+ if (el.offsetParent != null)
+ y += getPageOffsetTop(el.offsetParent);
- return y;
+ return y;
}
// Check the browser for DOM manipulation
-function checkBrowser(){
- this.ver=navigator.appVersion;
- this.dom=document.getElementById?1:0;
- this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom)?1:0;
- this.ie55=((this.ver.indexOf("MSIE 5.5")>-1 || this.ie6) &&
this.dom)?1:0;
- this.ie5=((this.ver.indexOf("MSIE 5")>-1 || this.ie5 || this.ie6) &&
this.dom)?1:0;
- this.ie4=(document.all && !this.dom)?1:0;
- this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;
- this.ns4=(document.layers && !this.dom)?1:0;
- this.ie4plus=(this.ie6 || this.ie5 || this.ie4);
- this.ie5plus=(this.ie6 || this.ie5)
- this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns5);
- return this;
+function checkBrowser() {
+ this.ver = navigator.appVersion;
+ this.dom = document.getElementById?1:0;
+ this.ie6 = (this.ver.indexOf("MSIE 6") > -1 && this.dom)?1:0;
+ this.ie55 = ((this.ver.indexOf("MSIE 5.5") > -1 || this.ie6) &&
this.dom)?1:0;
+ this.ie5 = ((this.ver.indexOf("MSIE 5") > -1 || this.ie5 || this.ie6) &&
this.dom)?1:0;
+ this.ie4 = (document.all && !this.dom)?1:0;
+ this.ns5 = (this.dom && parseInt(this.ver) >= 5) ?1:0;
+ this.ns4 = (document.layers && !this.dom)?1:0;
+ this.ie4plus = (this.ie6 || this.ie5 || this.ie4);
+ this.ie5plus = (this.ie6 || this.ie5)
+ this.bw = (this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns5);
+ return this;
}
bw = new checkBrowser();
// Get an Object contained in a DOM document by its ID attribute
-function getObjectById (ID) {
- var obj;
- if (bw.dom)
- return document.getElementById (ID);
- else if (bw.ie4)
- return document.all (ID);
- else
- alert ("Error: Your browser version is not supported. Please
upgrade...");
+function getObjectById(ID) {
+ var obj;
+ if (bw.dom)
+ return document.getElementById(ID);
+ else if (bw.ie4)
+ return document.all(ID);
+ else
+ alert("Error: Your browser version is not supported. Please
upgrade...");
}
// Returns an array of values. The delimiter is the ',' character
-function getNodeValues (content, nodeName) {
- var tag = "<" + nodeName + ">";
- var start = content.indexOf (tag);
- var end = content.indexOf ("</" + nodeName + ">");
-
- if (start < end) {
- var values = content.substring (start + tag.length, end);
- return values.split (";;");
- } else {
- return new Array (0);
- }
+function getNodeValues(content, nodeName) {
+ var tag = "<" + nodeName + ">";
+ var start = content.indexOf(tag);
+ var end = content.indexOf("</" + nodeName + ">");
+
+ if (start < end) {
+ var values = content.substring(start + tag.length, end);
+ return values.split(";;");
+ } else {
+ return new Array (0);
+ }
}
// Returns the value of an XML tag
-function getNodeValue (content, nodeName) {
- var tag = "<" + nodeName + ">";
- var start = content.indexOf (tag);
- var end = content.indexOf ("</" + nodeName + ">");
-
- if (start < end) {
- return content.substring (start + tag.length, end);
- } else {
- return null;
- }
+function getNodeValue(content, nodeName) {
+ var tag = "<" + nodeName + ">";
+ var start = content.indexOf(tag);
+ var end = content.indexOf("</" + nodeName + ">");
+
+ if (start < end) {
+ return content.substring(start + tag.length, end);
+ } else {
+ return null;
+ }
}
// AJAX based function to get all Actions to fill up the Action menu
-function getActionMenu (context, objectType, objectKey, definitionID,
parentID, pageID) {
+function getActionMenu(context, objectType, objectKey, definitionID,
parentID, pageID) {
document.body.style.cursor = "wait";
- try {
- // correct values are "POST" or "GET" (HTTP methods).
- var method = "POST" ;
- var data = "key=" + objectKey + "&type=" + objectType +
- "&def=" + definitionID + "&parent=" + parentID ;
- var url = context + "/menu/op/edit/pid/" + pageID ;
-
- if (method == "GET") {
- url += "?" + data;
- data = null;
- }
-
- // Create new XMLHttpRequest request
- if (window.XMLHttpRequest) {
- req = new XMLHttpRequest ();
-
- } else if (window.ActiveXObject) {
- req = new ActiveXObject ("Microsoft.XMLHTTP");
-
- } else {
- alert ("Error: Your Browser does not support
XMLHTTPRequests, please upgrade...");
- return;
- }
-
- req.open (method, url, true);
-
- req.onreadystatechange = function () {
- buildActionMenu();
- }
-
- if (method == "POST") {
- req.setRequestHeader ("Content-type",
"application/x-www-form-urlencoded");
- }
- req.send (data);
-
- } catch (e) {
- alert ("Exception sending the Request: " + e);
- }
+ try {
+ // correct values are "POST" or "GET" (HTTP methods).
+ var method = "POST" ;
+ var data = "key=" + objectKey + "&type=" + objectType +
+ "&def=" + definitionID + "&parent=" + parentID +
+ "¶ms=/op/edit/pid/" + pageID;
+
+ var url = context + "/ajaxaction/GetMenuItems";
+
+ if (method == "GET") {
+ url += "?" + data;
+ data = null;
+ }
+
+ // Create new XMLHttpRequest request
+ if (window.XMLHttpRequest) {
+ req = new XMLHttpRequest ();
+
+ } else if (window.ActiveXObject) {
+ req = new ActiveXObject ("Microsoft.XMLHTTP");
+
+ } else {
+ alert("Error: Your Browser does not support XMLHTTPRequests,
please upgrade...");
+ return;
+ }
+
+ req.open(method, url, true);
+
+ req.onreadystatechange = function () {
+ buildActionMenu();
+ }
+
+ if (method == "POST") {
+ req.setRequestHeader("Content-type",
"application/x-www-form-urlencoded");
+ }
+ req.send(data);
+
+ } catch (e) {
+ alert("Exception sending the Request: " + e);
+ }
}
// Build the Action Menu
-function buildActionMenu () {
- var readyState = req.readyState;
- if (req.readyState == 4) {
- // alert ("resp: " + req.responseText);
- if (req.status == 200) {
- try {
- var response = req.responseText;
- var objectType = getNodeValue (response,
"type");
- var objectKey = getNodeValue (response, "key");
- var definitionID = getNodeValue (response,
"def");
- var parentID = getNodeValue (response,
"parent");
- var pageID = getNodeValue (response, "page");
-
- var uniqueID = objectType + "_" + objectKey +
"_" +
- definitionID + "_" +
parentID + "_" + pageID;
-
- var methods = getNodeValues (response,
"method");
- var launchers = getNodeValues (response,
"launcher");
- var images = getNodeValues (response, "image");
-
- var fieldset = getNodeValue (response,
"fieldset");
- updateFieldSet (uniqueID, fieldset);
-
- addActions (uniqueID, methods, launchers,
images);
-
- changeURL (uniqueID);
-
- buttonClick (uniqueID);
-
- } catch (e) {
- alert ("Exception building Action Menu: " + e);
- }
-
- } else {
- alert ("There was a problem processing the request.
Status: " +
- req.status + ", msg: " +
req.statusText);
- }
- document.body.style.cursor = "default";
- }
+function buildActionMenu() {
+ var readyState = req.readyState;
+ if (req.readyState == 4) {
+ // alert ("resp: " + req.responseText);
+ if (req.status == 200) {
+ try {
+ var response = req.responseText;
+ var objectType = getNodeValue(response, "type");
+ var objectKey = getNodeValue(response, "key");
+ var definitionID = getNodeValue(response, "def");
+ var parentID = getNodeValue(response, "parent");
+ var pageID = getNodeValue(response, "page");
+
+ var uniqueID = objectType + "_" + objectKey + "_" +
+ definitionID + "_" + parentID + "_" + pageID;
+
+ var methods = getNodeValues(response, "method");
+ var launchers = getNodeValues(response, "launcher");
+ var images = getNodeValues(response, "image");
+
+ var fieldset = getNodeValue(response, "fieldset");
+ updateFieldSet(uniqueID, fieldset);
+
+ addActions(uniqueID, methods, launchers, images);
+
+ changeURL(uniqueID);
+
+ buttonClick(uniqueID);
+
+ } catch (e) {
+ alert("Exception building Action Menu: " + e);
+ }
+
+ } else {
+ alert("There was a problem processing the request. Status: " +
+ req.status + ", msg: " + req.statusText);
+ }
+ document.body.style.cursor = "default";
+ }
}
// Changes the default grey border. Use in case the object is locked for
example
-function updateFieldSet (id, param) {
- // alert ("Updating fieldSet for " + id + ", param = " + param);
- if (param == null) { return; }
+function updateFieldSet(id, param) {
+ // alert ("Updating fieldSet for " + id + ", param = " + param);
+ if (param == null) {
+ return;
+ }
- var setID = "fieldset_" + id;
- var setElem = getObjectById (setID);
+ var setID = "fieldset_" + id;
+ var setElem = getObjectById(setID);
- var content;
- if (param == "complete") {
- content = "completeLocked";
+ var content;
+ if (param == "complete") {
+ content = "completeLocked";
- } else if (param == "partial") {
- content = "partialLocked";
+ } else if (param == "partial") {
+ content = "partialLocked";
- } else {
- return;
- }
+ } else {
+ return;
+ }
- setElem.className = content;
+ setElem.className = content;
}
// Changes the href value of the given element
-function changeURL (id) {
- var button = getObjectById ("button_" + id);
- button.href = "javascript:buttonClick('" + id + "');";
+function changeURL(id) {
+ var button = getObjectById("button_" + id);
+ button.href = "javascript:buttonClick('" + id + "');";
}
// Adds the Actions to the action menu
-function addActions (id, methods, launchers, images) {
- var menuDiv = getObjectById (id);
- var content = "\n";
-
- var i;
- for (i=0; i<methods.length; i++) {
- if (methods[i].length > 0) {
- // alert ("Adding action: '" + methods[i] + "' in div "
+ id);
- content += printLauncher(launchers[i]) +
printImage(images[i]) +
- printMethod(methods[i]);
- }
- }
- menuDiv.innerHTML = content;
+function addActions(id, methods, launchers, images) {
+ var menuDiv = getObjectById(id);
+ var content = "\n";
+
+ var i;
+ for (i = 0; i < methods.length; i++) {
+ if (methods[i].length > 0) {
+ // alert ("Adding action: '" + methods[i] + "' in div " + id);
+ content += printLauncher(launchers[i]) + printImage(images[i]) +
+ printMethod(methods[i]);
+ }
+ }
+ menuDiv.innerHTML = content;
}
// Returns a String for the Action Launcher URI
-function printLauncher (launcher) {
- return " <a class=\"menuItem\" href=\"javascript:" + launcher +
"\">\n";
+function printLauncher(launcher) {
+ return " <a class=\"menuItem\" href=\"javascript:" + launcher +
"\">\n";
}
// Returns a String for the Action Image
-function printImage (imageName) {
- return " <img src=\"" + imageName + "\" alt=\"\" border=\"0\"
/> ";
+function printImage(imageName) {
+ return " <img src=\"" + imageName + "\" alt=\"\" border=\"0\"
/> ";
}
// Returns a String for the Action method name
-function printMethod (methodName) {
- return methodName + "\n </a>\n";
+function printMethod(methodName) {
+ return methodName + "\n </a>\n";
}
-function clipboard (context, objectKey, op, pageID) {
+function clipboard(context, objectKey, op, pageID) {
document.body.style.cursor = "wait";
- try {
- // correct values are "POST" or "GET" (HTTP methods).
- var method = "POST" ;
- var data = "key=" + objectKey + "&cop=" + op;
- var url = context + "/Jahia/op/edit/engineName/clipboard/pid/" +
pageID ;
-
- if (method == "GET") {
- url += "?" + data;
- data = null;
- }
-
- // Create new XMLHttpRequest request
- if (window.XMLHttpRequest) {
- req = new XMLHttpRequest ();
-
- } else if (window.ActiveXObject) {
- req = new ActiveXObject ("Microsoft.XMLHTTP");
-
- } else {
- alert ("Error: Your Browser does not support
XMLHTTPRequests, please upgrade...");
- return;
- }
+ try {
+ // correct values are "POST" or "GET" (HTTP methods).
+ var method = "POST" ;
+ var data = "key=" + objectKey + "&cop=" + op;
+ var url = context + "/Jahia/op/edit/engineName/clipboard/pid/" +
pageID ;
+
+ if (method == "GET") {
+ url += "?" + data;
+ data = null;
+ }
+
+ // Create new XMLHttpRequest request
+ if (window.XMLHttpRequest) {
+ req = new XMLHttpRequest ();
+
+ } else if (window.ActiveXObject) {
+ req = new ActiveXObject ("Microsoft.XMLHTTP");
+
+ } else {
+ alert("Error: Your Browser does not support XMLHTTPRequests,
please upgrade...");
+ return;
+ }
- req.open (method, url, true);
+ req.open(method, url, true);
- if (op == "paste") {
- req.onreadystatechange = function () {
+ if (op == "paste") {
+ req.onreadystatechange = function () {
if (req.readyState == 4) {
document.body.style.cursor = "default";
window.location.reload();
}
- }
- } else {
- req.onreadystatechange = function () {
+ }
+ } else {
+ req.onreadystatechange = function () {
if (req.readyState == 4) {
- //copy
-
myurl="http://"+document.location.host+"/jahia/jsp/jahia/engines/images/clipboard_next.png";
- myclip=document.getElementById('clipboard');
- myclip.src=myurl;
- myclip.alt="clipboard:"+objectKey;
+ //copy
+ myurl = "http://" + document.location.host +
"/jahia/jsp/jahia/engines/images/clipboard_next.png";
+ myclip = document.getElementById('clipboard');
+ myclip.src = myurl;
+ myclip.alt = "clipboard:" + objectKey;
//window.location.reload();
document.body.style.cursor = "default";
}
}
- }
+ }
- if (method == "POST") {
- req.setRequestHeader ("Content-type",
"application/x-www-form-urlencoded");
- }
- req.send (data);
- } catch (e) {
- alert ("Exception sending the Request: " + e);
- }
+ if (method == "POST") {
+ req.setRequestHeader("Content-type",
"application/x-www-form-urlencoded");
+ }
+ req.send(data);
+ } catch (e) {
+ alert("Exception sending the Request: " + e);
+ }
}