/* The contents of this file are subject to the Mozilla Public * License Version 1.1 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. * * The Original Code is the Bugzilla Bug Tracking System. * * Contributor(s): * Guy Pyrzak * Max Kanat-Alexander */ var mini_login_constants; function show_mini_login_form(suffix) { var login_link = document.getElementById('login_link' + suffix); var login_form = document.getElementById('mini_login' + suffix); var account_container = document.getElementById('new_account_container' + suffix); addClass(login_link, 'bz_default_hidden'); removeClass(login_form, 'bz_default_hidden'); addClass(account_container, 'bz_default_hidden'); login_form._shown = true; return false; } function hide_mini_login_form(suffix) { var login_link = document.getElementById('login_link' + suffix); var login_form = document.getElementById('mini_login' + suffix); var account_container = document.getElementById('new_account_container' + suffix); removeClass(login_link, 'bz_default_hidden'); addClass(login_form, 'bz_default_hidden'); removeClass(account_container, 'bz_default_hidden'); return false; } function show_forgot_form(suffix) { var forgot_link = document.getElementById('forgot_link' + suffix); var forgot_form = document.getElementById('forgot_form' + suffix); var login_container = document.getElementById('mini_login_container' + suffix); addClass(forgot_link, 'bz_default_hidden'); removeClass(forgot_form, 'bz_default_hidden'); addClass(login_container, 'bz_default_hidden'); return false; } function hide_forgot_form(suffix) { var forgot_link = document.getElementById('forgot_link' + suffix); var forgot_form = document.getElementById('forgot_form' + suffix); var login_container = document.getElementById('mini_login_container' + suffix); removeClass(forgot_link, 'bz_default_hidden'); addClass(forgot_form, 'bz_default_hidden'); removeClass(login_container, 'bz_default_hidden'); return false; } function init_mini_login_form(suffix) { var mini_login = document.getElementById('Bugzilla_login' + suffix ); var mini_password = document.getElementById('Bugzilla_password' + suffix ); var mini_dummy = document.getElementById( 'Bugzilla_password_dummy' + suffix); // If the login and password are blank when the page loads, we display // "login" and "password" in the boxes by default. if (mini_login.value == "" && mini_password.value == "") { mini_login.value = mini_login_constants.login; addClass(mini_login, "bz_mini_login_help"); addClass(mini_password, 'bz_default_hidden'); removeClass(mini_dummy, 'bz_default_hidden'); } else show_mini_login_form(suffix); } // Clear the words "login" and "password" from the form when you click // in one of the boxes. We clear them both when you click in either box // so that the browser's password-autocomplete can work. function mini_login_on_focus(suffix) { var mini_login = document.getElementById('Bugzilla_login' + suffix); var mini_password = document.getElementById('Bugzilla_password' + suffix); var mini_dummy = document.getElementById('Bugzilla_password_dummy' + suffix); removeClass(mini_login, "bz_mini_login_help"); if (mini_login.value == mini_login_constants.login) mini_login.value = ''; removeClass(mini_password, 'bz_default_hidden'); addClass(mini_dummy, 'bz_default_hidden'); } function check_mini_login_fields(suffix) { var mini_login = document.getElementById('Bugzilla_login' + suffix); var mini_password = document.getElementById('Bugzilla_password' + suffix); if (mini_login.value != "" && mini_password.value != "" && mini_login.value != mini_login_constants.login) return true; window.alert(mini_login_constants.warning); return false; } function set_language(value) { setCookie('LANG', value, { expires: new Date('January 1, 2038'), path: BUGZILLA.param.cookie_path }); window.location.reload(); } // Convert user list from API format for SimpleAutocomplete function convertUserList(u) { var data = []; for (var i = 0; i < u.length; i++) data.push([ '' + htmlspecialchars(u[i].real_name) + '
' + htmlspecialchars(u[i].email) + '', u[i].email ]); return data; } // Data loader for user autocomplete function userAutocomplete(hint, emptyOptions, loadAllOnEmpty) { if (!hint.input.value && (!loadAllOnEmpty || emptyOptions)) { hint.emptyText = 'Type at least 3 letters'; if (emptyOptions) hint.replaceItems(convertUserList(emptyOptions)); else hint.replaceItems(null); return; } var u = window.location.href.replace(/[^\/]+$/, ''); u += 'xml.cgi?method=User.get&output=json&excludedisabled=1&include_fields=id&include_fields=real_name&include_fields=email&maxusermatches='; if (hint.input.value) { u += '20'; var l = hint.input.value.split(/[\s,]*,[\s,]*/); for (var i = 0; i < l.length; i++) u += '&match='+encodeURIComponent(l[i]); } else { u += '500&match=*'; } AjaxLoader(u, function(x) { var r = {}; try { eval('r = '+x.responseText+';'); } catch (e) { return; } if (r.status == 'ok') { var data = convertUserList(r.users); // FIXME "3" constant, messages: remove hardcode, also in Bugzilla::User::match() if (data.length == 0 && hint.input.value.length < 3) hint.emptyText = 'Type at least 3 letters'; else hint.emptyText = 'No users found'; hint.replaceItems(data); } }); } // Convert keyword list from API format for SimpleAutocomplete function convertSimpleList(k) { var data = []; for (var i = 0; i < k.length; i++) data.push([ '' + htmlspecialchars(k[i].name) + '', k[i].name ]); return data; } // Data loader for field in buglist autocomplete function fieldBuglistAutocomplete(hint, field, emptyOptions) { var u = window.location.href.replace(/[^\/]+$/, ''); u += 'xml.cgi?method=Field.get_values&output=json&field=' + field; AjaxLoader(u, function(x) { var r = {}; try { eval('r = '+x.responseText+';'); } catch (e) { return; } if (r.status == 'ok') { var data = convertSimpleList(r.values); hint.replaceItems(data); } }); } function showFullComment(oper_id) { if (existElement("removed_" + oper_id)) { document.getElementById("removed_" + oper_id).style.display = 'none'; document.getElementById("text_removed_" + oper_id).style.display = ''; } if (existElement("added_" + oper_id)) { document.getElementById("added_" + oper_id).style.display = 'none'; document.getElementById("text_added_" + oper_id).style.display = ''; } document.getElementById("link_" + oper_id).style.display = 'none'; } function readNewFunctionality() { var u = 'xml.cgi?method=User.read_new_functionality&output=json'; var el = document.getElementById('new_functionality'); el.parentElement.removeChild(el); AjaxLoader(u, function() {}); return false; }