You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
232 lines
6.9 KiB
232 lines
6.9 KiB
/* |
|
* phpGACL - Generic Access Control List |
|
* Copyright (C) 2002,2003 Mike Benoit |
|
* |
|
* This library is free software; you can redistribute it and/or |
|
* modify it under the terms of the GNU Lesser General Public |
|
* License as published by the Free Software Foundation; either |
|
* version 2.1 of the License, or (at your option) any later version. |
|
* |
|
* This library is distributed in the hope that it will be useful, |
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
* Lesser General Public License for more details. |
|
* |
|
* You should have received a copy of the GNU Lesser General Public |
|
* License along with this library; if not, write to the Free Software |
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
* |
|
* For questions, help, comments, discussion, etc., please join the |
|
* phpGACL mailing list. http://sourceforge.net/mail/?group_id=57103 |
|
* |
|
* You may contact the author of phpGACL by e-mail at: |
|
* ipso@snappymail.ca |
|
* |
|
* The latest version of phpGACL can be obtained from: |
|
* http://phpgacl.sourceforge.net/ |
|
* |
|
*/ |
|
|
|
var selectedTab = null; |
|
|
|
//Function to totally clear a select box. |
|
function depopulate(form_element) { |
|
if (form_element.options.length > 0) { |
|
form_element.innerHTML = ''; |
|
} |
|
} |
|
|
|
//Populates a select box based off the value of "parent" select box. |
|
function populate(parent_form_element, child_form_element, src_array) { |
|
//alert('Parent: ' + parent_form_element); |
|
//alert('Child: ' + child_form_element); |
|
|
|
if (parent_form_element.selectedIndex >= 0) { |
|
//Grab the current selected value from the parent |
|
parent_id = parent_form_element.options[parent_form_element.selectedIndex].value; |
|
|
|
//Clear the child form element |
|
depopulate(child_form_element); |
|
|
|
//Populate child form element |
|
if (options[src_array][parent_id]) { |
|
for (i=0; i < options[src_array][parent_id].length; i++) { |
|
child_form_element.options[i] = new Option(options[src_array][parent_id][i][1], options[src_array][parent_id][i][0]); |
|
} |
|
} |
|
} |
|
} |
|
|
|
//Select an item by "copying" it from one select box to another |
|
function select_item(parent_form_element, src_form_element, dst_form_element) { |
|
//alert('Src: ' + src_form_element); |
|
//alert('Dst: ' + dst_form_element); |
|
found_dup=false; |
|
//Copy it over to the dst element |
|
for (i=0; i < src_form_element.options.length; i++) { |
|
if (src_form_element.options[i].selected) { |
|
//Check to see if duplicate entries exist. |
|
for (n=0; n < dst_form_element.options.length; n++) { |
|
if ( parent_form_element.options[parent_form_element.selectedIndex].value + '^' + src_form_element.options[i].value == dst_form_element.options[n].value) { |
|
found_dup=true; |
|
} |
|
} |
|
|
|
//Only add if its not a duplicate entry. |
|
if (!found_dup) { |
|
//Grab the current selected value from the parent |
|
src_id = src_form_element.options[i].value; |
|
src_text = src_form_element.options[i].text; |
|
|
|
src_section_id = parent_form_element.options[parent_form_element.selectedIndex].value; |
|
src_section_text = parent_form_element.options[parent_form_element.selectedIndex].text; |
|
|
|
options_length = dst_form_element.options.length; |
|
dst_form_element.options[options_length] = new Option(src_section_text + ' > ' + src_text, src_section_id + '^' + src_id); |
|
dst_form_element.options[options_length].selected = true; |
|
} |
|
} |
|
|
|
found_dup=false; |
|
} |
|
} |
|
|
|
//Used for moving items to and from the selected combo box. |
|
function deselect_item(form_element) { |
|
//alert('Src: ' + src_form_element); |
|
//alert('Dst: ' + dst_form_element); |
|
|
|
//Copy it over to the dst element |
|
for (i=0; i < form_element.options.length; i++) { |
|
if (form_element.options[i].selected) { |
|
form_element.options[i] = null; |
|
i=i - 1; |
|
} |
|
} |
|
} |
|
|
|
//Used to unselect all items in a combo box |
|
function unselect_all(form_element) { |
|
for (i=0; i < form_element.options.length; i++) { |
|
form_element.options[i].selected = false; |
|
} |
|
} |
|
|
|
function select_all(select_box) { |
|
for (i=0; i < select_box.options.length; i++) { |
|
select_box.options[i].selected = true; |
|
} |
|
} |
|
|
|
function edit_link(link, parent_id) { |
|
alert('edit_aco.php?section_id=' + parent_id + '&return_page={$return_page}') |
|
} |
|
|
|
function toggleObject(objectID) { |
|
if(document.getElementById) { |
|
if(document.getElementById(objectID).className == 'hide') { |
|
showObject(objectID); |
|
} else { |
|
hideObject(objectID); |
|
} |
|
} |
|
} |
|
|
|
function showObject(objectID) { |
|
if(document.getElementById) { |
|
document.getElementById(objectID).className = 'show'; |
|
} |
|
} |
|
|
|
function hideObject(objectID) { |
|
if(document.getElementById) { |
|
document.getElementById(objectID).className = 'hide'; |
|
} |
|
} |
|
|
|
function showTab(objectID) { |
|
if(document.getElementById) { |
|
if(selectedObject != objectID) { |
|
document.getElementById(objectID).className = 'tabon'; |
|
selectedTab = objectID; |
|
} |
|
} |
|
} |
|
|
|
function hideTab() { |
|
if(document.getElementById) { |
|
if(selectedTab) { |
|
document.getElementById(selectedTab).className = 'taboff'; |
|
} |
|
} |
|
} |
|
|
|
function checkAll(checkbox) { |
|
for (i=0; i<checkbox.form.elements.length; i++) { |
|
if (checkbox.form.elements[i].type == checkbox.type) { |
|
checkbox.form.elements[i].checked = checkbox.checked; |
|
} |
|
} |
|
return true; |
|
} |
|
|
|
/** |
|
* Sets a Cookie with the given name and value. |
|
* |
|
* name Name of the cookie |
|
* value Value of the cookie |
|
* [expires] Expiration date of the cookie (default: end of current session) |
|
* [path] Path where the cookie is valid (default: path of calling document) |
|
* [domain] Domain where the cookie is valid |
|
* (default: domain of calling document) |
|
* [secure] Boolean value indicating if the cookie transmission requires a |
|
* secure transmission |
|
*/ |
|
function setCookie(name, value, expires, path, domain, secure) { |
|
document.cookie= name + "=" + escape(value) + |
|
((expires) ? "; expires=" + expires.toGMTString() : "") + |
|
((path) ? "; path=" + path : "") + |
|
((domain) ? "; domain=" + domain : "") + |
|
((secure) ? "; secure" : ""); |
|
} |
|
|
|
/** |
|
* Gets the value of the specified cookie. |
|
* |
|
* name Name of the desired cookie. |
|
* |
|
* Returns a string containing value of specified cookie, |
|
* or null if cookie does not exist. |
|
*/ |
|
function getCookie(name) { |
|
var dc = document.cookie; |
|
var prefix = name + "="; |
|
var begin = dc.indexOf("; " + prefix); |
|
if (begin == -1) { |
|
begin = dc.indexOf(prefix); |
|
if (begin != 0) return null; |
|
} else { |
|
begin += 2; |
|
} |
|
var end = document.cookie.indexOf(";", begin); |
|
if (end == -1) { |
|
end = dc.length; |
|
} |
|
return unescape(dc.substring(begin + prefix.length, end)); |
|
} |
|
|
|
/** |
|
* Deletes the specified cookie. |
|
* |
|
* name name of the cookie |
|
* [path] path of the cookie (must be same as path used to create cookie) |
|
* [domain] domain of the cookie (must be same as domain used to create cookie) |
|
*/ |
|
function deleteCookie(name, path, domain) { |
|
if (getCookie(name)) { |
|
document.cookie = name + "=" + |
|
((path) ? "; path=" + path : "") + |
|
((domain) ? "; domain=" + domain : "") + |
|
"; expires=Thu, 01-Jan-70 00:00:01 GMT"; |
|
} |
|
}
|
|
|