diff options
Diffstat (limited to 'rt/share/html/NoAuth/js/util.js')
-rw-r--r-- | rt/share/html/NoAuth/js/util.js | 372 |
1 files changed, 0 insertions, 372 deletions
diff --git a/rt/share/html/NoAuth/js/util.js b/rt/share/html/NoAuth/js/util.js deleted file mode 100644 index 473222612..000000000 --- a/rt/share/html/NoAuth/js/util.js +++ /dev/null @@ -1,372 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC -%# <sales@bestpractical.com> -%# -%# (Except where explicitly superseded by other copyright notices) -%# -%# -%# LICENSE: -%# -%# This work is made available to you under the terms of Version 2 of -%# the GNU General Public License. A copy of that license should have -%# been provided with this software, but in any event can be snarfed -%# from www.gnu.org. -%# -%# This work 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 -%# General Public License for more details. -%# -%# You should have received a copy of the GNU General Public License -%# along with this program; if not, write to the Free Software -%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -%# 02110-1301 or visit their web page on the internet at -%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -%# -%# -%# CONTRIBUTION SUBMISSION POLICY: -%# -%# (The following paragraph is not intended to limit the rights granted -%# to you to modify and distribute this software under the terms of -%# the GNU General Public License and is only of importance to you if -%# you choose to contribute your changes and enhancements to the -%# community by submitting them to Best Practical Solutions, LLC.) -%# -%# By intentionally submitting any modifications, corrections or -%# derivatives to this work, or any other work intended for use with -%# Request Tracker, to Best Practical Solutions, LLC, you confirm that -%# you are the copyright holder for those contributions and you grant -%# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, -%# royalty-free, perpetual, license to use, copy, create derivative -%# works based on those contributions, and sublicense and distribute -%# those contributions and any derivatives thereof. -%# -%# END BPS TAGGED BLOCK }}} -/* Visibility */ - -function show(id) { delClass( id, 'hidden' ) } -function hide(id) { addClass( id, 'hidden' ) } - -function hideshow(id) { return toggleVisibility( id ) } -function toggleVisibility(id) { - var e = jQuery('#' + id); - - if ( e.hasClass('hidden') ) { - e.removeClass('hidden'); - } - else { - e.addClass('hidden'); - } - - return false; -} - -function setVisibility(id, visibility) { - if ( visibility ) show(id); - else hide(id); -} - -function switchVisibility(id1, id2) { - // Show both and then hide the one we want - show(id1); - show(id2); - hide(id2); - return false; -} - -/* Classes */ -function jQueryWrap( id ) { - return typeof id == 'object' ? jQuery(id) : jQuery('#'+id); -} - -function addClass(id, value) { - jQueryWrap(id).addClass(value); -} - -function delClass(id, value) { - jQueryWrap(id).removeClass(value); -} - -/* Rollups */ - -function rollup(id) { - var e = jQueryWrap(id); - var e2 = e.parent(); - - if (e.hasClass('hidden')) { - set_rollup_state(e,e2,'shown'); - createCookie(id,1,365); - } - else { - set_rollup_state(e,e2,'hidden'); - createCookie(id,0,365); - } - return false; -} - -function set_rollup_state(e,e2,state) { - if (e && e2) { - if (state == 'shown') { - show(e); - delClass( e2, 'rolled-up' ); - } - else if (state == 'hidden') { - hide(e); - addClass( e2, 'rolled-up' ); - } - } -} - -/* other utils */ - -function focusElementById(id) { - var e = jQuery('#'+id); - if (e) e.focus(); -} - -function setCheckbox(form, name, val) { - var myfield = form.getElementsByTagName('input'); - for ( var i = 0; i < myfield.length; i++ ) { - if ( myfield[i].type != 'checkbox' ) continue; - if ( name ) { - if ( name instanceof RegExp ) { - if ( ! myfield[i].name.match( name ) ) continue; - } - else { - if ( myfield[i].name != name ) continue; - } - - } - - myfield[i].checked = val; - } -} - -/* apply callback to nodes or elements */ - -function walkChildNodes(parent, callback) -{ - if( !parent || !parent.childNodes ) return; - var list = parent.childNodes; - for( var i = 0; i < list.length; i++ ) { - callback( list[i] ); - } -} - -function walkChildElements(parent, callback) -{ - walkChildNodes( parent, function(node) { - if( node.nodeType != 1 ) return; - return callback( node ); - } ); -} - -/* shredder things */ - -function showShredderPluginTab( plugin ) -{ - var plugin_tab_id = 'shredder-plugin-'+ plugin +'-tab'; - var root = jQuery('#shredder-plugin-tabs'); - - root.children(':not(.hidden)').addClass('hidden'); - root.children('#' + plugin_tab_id).removeClass('hidden'); - - if( plugin ) { - show('shredder-submit-button'); - } else { - hide('shredder-submit-button'); - } -} - -function checkAllObjects() -{ - var check = jQuery('#shredder-select-all-objects-checkbox').attr('checked'); - var elements = jQuery('#shredder-search-form :checkbox[name=WipeoutObject]'); - - if( check ) { - elements.attr('checked', true); - } else { - elements.attr('checked', false); - } -} - -function checkboxToInput(target,checkbox,val){ - var tar = jQuery('#' + escapeCssSelector(target)); - var box = jQuery('#' + escapeCssSelector(checkbox)); - if(box.attr('checked')){ - if (tar.val()==''){ - tar.val(val); - } - else{ - tar.val( val+', '+ tar.val() ); - } - } - else{ - tar.val(tar.val().replace(val+', ','')); - tar.val(tar.val().replace(val,'')); - } - jQuery('#UpdateIgnoreAddressCheckboxes').val(true); -} - -// ahah for back compatibility as plugins may still use it -function ahah( url, id ) { - jQuery('#'+id).load(url); -} - -// only for back compatibility, please JQuery() instead -function doOnLoad( js ) { - jQuery(js); -} - -jQuery(function() { - var opts = { - dateFormat: 'yy-mm-dd', - constrainInput: false, - showButtonPanel: true, - changeMonth: true, - changeYear: true, - showOtherMonths: true, - selectOtherMonths: true - }; - jQuery(".ui-datepicker:not(.withtime)").datepicker(opts); - jQuery(".ui-datepicker.withtime").datetimepicker( jQuery.extend({}, opts, { - stepHour: 1, - // We fake this by snapping below for the minute slider - //stepMinute: 5, - hourGrid: 6, - minuteGrid: 15, - showSecond: false, - timeFormat: 'hh:mm:ss' - }) ).each(function(index, el) { - var tp = jQuery.datepicker._get( jQuery.datepicker._getInst(el), 'timepicker'); - if (!tp) return; - - // Hook after _injectTimePicker so we can modify the minute_slider - // right after it's first created - tp._base_injectTimePicker = tp._injectTimePicker; - tp._injectTimePicker = function() { - this._base_injectTimePicker.apply(this, arguments); - - // Now that we have minute_slider, modify it to be stepped for mouse movements - var slider = jQuery.data(this.minute_slider[0], "slider"); - slider._base_normValueFromMouse = slider._normValueFromMouse; - slider._normValueFromMouse = function() { - var value = this._base_normValueFromMouse.apply(this, arguments); - var old_step = this.options.step; - this.options.step = 5; - var aligned = this._trimAlignValue( value ); - this.options.step = old_step; - return aligned; - }; - }; - }); -}); - -function textToHTML(value) { - return value.replace(/&/g, "&") - .replace(/</g, "<") - .replace(/>/g, ">") - .replace(/-- \n/g,"-- \n") - .replace(/\n/g, "\n<br />"); -}; - -function ReplaceAllTextareas() { - var sAgent = navigator.userAgent.toLowerCase(); - if (!CKEDITOR.env.isCompatible || - sAgent.indexOf('iphone') != -1 || - sAgent.indexOf('ipad') != -1 || - sAgent.indexOf('android') != -1 ) - return false; - - // replace all content and signature message boxes - var allTextAreas = document.getElementsByTagName("textarea"); - - for (var i=0; i < allTextAreas.length; i++) { - var textArea = allTextAreas[i]; - if (jQuery(textArea).hasClass("messagebox")) { - // Turn the original plain text content into HTML - var type = jQuery("#"+textArea.name+"Type"); - if (type.val() != "text/html") - textArea.value = textToHTML(textArea.value); - - // Set the type - type.val("text/html"); - - CKEDITOR.replace(textArea.name,{width:'100%',height:<% RT->Config->Get('MessageBoxRichTextHeight') |n,j%>}); - CKEDITOR.basePath = <%RT->Config->Get('WebPath')|n,j%>+"/NoAuth/RichText/"; - - jQuery("#" + textArea.name + "___Frame").addClass("richtext-editor"); - } - } -}; - -function toggle_addprincipal_validity(input, good, title) { - if (good) { - jQuery(input).nextAll(".warning").hide(); - jQuery("#acl-AddPrincipal input[type=checkbox]").removeAttr("disabled"); - } else { - jQuery(input).nextAll(".warning").css("display", "block"); - jQuery("#acl-AddPrincipal input[type=checkbox]").attr("disabled", "disabled"); - } - - if (title == null) - title = jQuery(input).val(); - - update_addprincipal_title( title ); -} - -function update_addprincipal_title(title) { - var h3 = jQuery("#acl-AddPrincipal h3"); - h3.html( h3.text().replace(/: .*$/,'') + ": " + title ); -} - -// when a value is selected from the autocompleter -function addprincipal_onselect(ev, ui) { - - // if principal link exists, we shall go there instead - var principal_link = jQuery(ev.target).closest('form').find('ul.ui-tabs-nav a[href="#acl-' + ui.item.id + '"]:first'); - if (principal_link.size()) { - jQuery(this).val('').blur(); - update_addprincipal_title( '' ); // reset title to blank for #acl-AddPrincipal - principal_link.click(); - return false; - } - - // pass the item's value along as the title since the input's value - // isn't actually updated yet - toggle_addprincipal_validity(this, true, ui.item.value); -} - -// when the input is actually changed, through typing or autocomplete -function addprincipal_onchange(ev, ui) { - // if we have a ui.item, then they selected from autocomplete and it's good - if (!ui.item) { - var input = jQuery(this); - // Check using the same autocomplete source if the value typed would - // have been autocompleted and is therefore valid - jQuery.ajax({ - url: input.autocomplete("option", "source"), - data: { - op: "=", - term: input.val() - }, - dataType: "json", - success: function(data) { - if (data) - toggle_addprincipal_validity(input, data.length ? true : false ); - else - toggle_addprincipal_validity(input, true); - } - }); - } else { - toggle_addprincipal_validity(this, true); - } -} - - -function escapeCssSelector(str) { - return str.replace(/([^A-Za-z0-9_-])/g,'\\$1'); -} |