-
Notifications
You must be signed in to change notification settings - Fork 118
/
adminer.js
1 lines (1 loc) · 10.3 KB
/
adminer.js
1
function qs(e,t){return(t||document).querySelector(e)}function qsl(e,t){var n=qsa(e,t);return n[n.length-1]}function qsa(e,t){return(t||document).querySelectorAll(e)}function partial(e){var t=Array.apply(null,arguments).slice(1);return function(){return e.apply(this,t)}}function partialArg(e){var t=Array.apply(null,arguments);return function(n){return t[0]=n,e.apply(this,t)}}function mixin(e,t){for(var n in t)e[n]=t[n]}function alterClass(e,t,n){e&&(e.className=e.className.replace(RegExp("(^|\\s)"+t+"(\\s|$)"),"$2")+(n?" "+t:""))}function toggle(e){var t=qs("#"+e);return t.className="hidden"==t.className?"":"hidden",!1}function cookie(e,t){var n=new Date;n.setDate(n.getDate()+t),document.cookie=e+"; expires="+n}function verifyVersion(e,t,n){cookie("adminer_version=0",1);var a=document.createElement("iframe");a.src="https://www.adminer.org/version/?current="+e,a.frameBorder=0,a.marginHeight=0,a.scrolling="no",a.style.width="7ex",a.style.height="1.25em",window.postMessage&&window.addEventListener&&(a.style.display="none",addEventListener("message",(function(e){if("https://www.adminer.org"==e.origin){var a=/version=(.+)/.exec(e.data);a&&(cookie("adminer_version="+a[1],1),ajax(t+"script=version",(function(){}),e.data+"&token="+n))}}),!1)),qs("#version").appendChild(a)}function selectValue(e){if(!e.selectedIndex)return e.value;var t=e.options[e.selectedIndex];return(t.attributes.value||{}).specified?t.value:t.text}function isTag(e,t){var n=new RegExp("^("+t+")$","i");return e&&n.test(e.tagName)}function parentTag(e,t){for(;e&&!isTag(e,t);)e=e.parentNode;return e}function trCheck(e){alterClass(parentTag(e,"tr"),"checked",e.checked),e.form&&e.form.all&&e.form.all.onclick&&e.form.all.onclick()}function selectCount(e,t){setHtml(e,""===t?"":"("+(t+"").replace(/\B(?=(\d{3})+$)/g,thousandsSeparator)+")");var n=qs("#"+e);if(n)for(var a=qsa("input",n.parentNode.parentNode),i=0;i<a.length;i++){var r=a[i];"submit"==r.type&&(r.disabled="0"==t)}}function formCheck(e){for(var t=this.form.elements,n=0;n<t.length;n++)e.test(t[n].name)&&(t[n].checked=this.checked,trCheck(t[n]))}function tableCheck(){for(var e=qsa("table.checkable td:first-child input"),t=0;t<e.length;t++)trCheck(e[t])}function formUncheck(e){var t=qs("#"+e);t.checked=!1,trCheck(t)}function formChecked(e,t){for(var n=0,a=e.form.elements,i=0;i<a.length;i++)t.test(a[i].name)&&a[i].checked&&n++;return n}function tableClick(e,t){var n,a=parentTag(getTarget(e),"td");if(!(a&&(n=a.getAttribute("data-text"))&&selectClick.call(a,e,+n,a.getAttribute("data-warning")))){t=t||!window.getSelection||getSelection().isCollapsed;for(var i=getTarget(e);!isTag(i,"tr");){if(isTag(i,"table|a|input|textarea")){if("checkbox"!=i.type)return;checkboxClick.call(i,e),t=!1}if(!(i=i.parentNode))return}i=i.firstChild.firstChild,t&&(i.checked=!i.checked,i.onclick&&i.onclick()),"check[]"==i.name&&(i.form.all.checked=!1,formUncheck("all-page")),/^(tables|views)\[\]$/.test(i.name)&&formUncheck("check-all"),trCheck(i)}}var lastChecked;function checkboxClick(e){if(this.name)if(!e.shiftKey||lastChecked&&lastChecked.name!=this.name)lastChecked=this;else for(var t=!lastChecked||lastChecked.checked,n=qsa("input",parentTag(this,"table")),a=!lastChecked,i=0;i<n.length;i++){var r=n[i];if(r.name===this.name&&(a&&(r.checked=t,trCheck(r)),r===this||r===lastChecked)){if(a)break;a=!0}}}function setHtml(e,t){var n=qs('[id="'+e.replace(/[\\"]/g,"\\$&")+'"]');n&&(null==t?n.parentNode.innerHTML="":n.innerHTML=t)}function nodePosition(e){for(var t=0;e=e.previousSibling;)t++;return t}function pageClick(e,t){!isNaN(t)&&t&&(location.href=e+(1!=t?"&page="+(t-1):""))}function menuOver(e){var t=getTarget(e);isTag(t,"a|span")&&t.offsetLeft+t.offsetWidth>t.parentNode.offsetWidth-15&&(this.style.overflow="visible")}function menuOut(){this.style.overflow="auto"}function selectAddRow(){var e=this,t=cloneNode(e.parentNode);e.onchange=selectFieldChange,e.onchange();for(var n=qsa("select",t),a=0;a<n.length;a++)n[a].name=n[a].name.replace(/[a-z]\[\d+/,"$&1"),n[a].selectedIndex=0;var i=qsa("input",t);for(a=0;a<i.length;a++)i[a].name=i[a].name.replace(/[a-z]\[\d+/,"$&1"),i[a].className="","checkbox"==i[a].type?i[a].checked=!1:i[a].value="";e.parentNode.parentNode.appendChild(t)}function selectSearchKeydown(e){13!=e.keyCode&&10!=e.keyCode||(this.onsearch=function(){})}function selectSearchSearch(){this.value||(this.parentNode.firstChild.selectedIndex=0)}function columnMouse(e){for(var t=qsa("span",this),n=0;n<t.length;n++)/column/.test(t[n].className)&&(t[n].className="column"+(e||""))}function selectSearch(e){(a=qs("#fieldset-search")).className="";for(var t=qsa("div",a),n=0;n<t.length;n++){var a,i=t[n];if((a=qs('[name$="[col]"]',i))&&selectValue(a)==e)break}return n==t.length&&(i.firstChild.value=e,i.firstChild.onchange()),qs('[name$="[val]"]',i).focus(),!1}function isCtrl(e){return(e.ctrlKey||e.metaKey)&&!e.altKey}function getTarget(e){return e.target||e.srcElement}function bodyKeydown(e,t){eventStop(e);var n=getTarget(e);return n.jushTextarea&&(n=n.jushTextarea),!isCtrl(e)||13!=e.keyCode&&10!=e.keyCode||!isTag(n,"select|textarea|input")||(n.blur(),t?n.form[t].click():(n.form.onsubmit&&n.form.onsubmit(),n.form.submit()),n.focus(),!1)}function bodyClick(e){var t=getTarget(e);(isCtrl(e)||e.shiftKey)&&"submit"==t.type&&isTag(t,"input")&&(t.form.target="_blank",setTimeout((function(){t.form.target=""}),0))}function editingKeydown(e){if((40==e.keyCode||38==e.keyCode)&&isCtrl(e)){var t=getTarget(e),n=40==e.keyCode?"nextSibling":"previousSibling",a=t.parentNode.parentNode[n];return a&&(isTag(a,"tr")||(a=a[n]))&&isTag(a,"tr")&&(a=a.childNodes[nodePosition(t.parentNode)])&&(a=a.childNodes[nodePosition(t)])&&a.focus(),!1}return!(e.shiftKey&&!bodyKeydown(e,"insert"))}function functionChange(){var e=this.form[this.name.replace(/^function/,"fields")];e&&(selectValue(this)?(void 0===e.origType&&(e.origType=e.type,e.origMaxLength=e.getAttribute("data-maxlength")),e.removeAttribute("data-maxlength"),e.type="text"):e.origType&&(e.type=e.origType,e.origMaxLength>=0&&e.setAttribute("data-maxlength",e.origMaxLength)),oninput({target:e})),helpClose()}function skipOriginal(e){var t=this.previousSibling.firstChild;t.selectedIndex<e&&(t.selectedIndex=e)}function fieldChange(){for(var e=cloneNode(parentTag(this,"tr")),t=qsa("input",e),n=0;n<t.length;n++)t[n].value="";parentTag(this,"table").appendChild(e),this.oninput=function(){}}function ajax(e,t,n,a){var i=window.XMLHttpRequest?new XMLHttpRequest:!!window.ActiveXObject&&new ActiveXObject("Microsoft.XMLHTTP");if(i){var r=qs("#ajaxstatus");a?(r.innerHTML='<div class="message">'+a+"</div>",r.className=r.className.replace(/ hidden/g,"")):r.className+=" hidden",i.open(n?"POST":"GET",e),n&&i.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),i.setRequestHeader("X-Requested-With","XMLHttpRequest"),i.onreadystatechange=function(){4==i.readyState&&(/^2/.test(i.status)?t(i):(r.innerHTML=i.status?i.responseText:'<div class="error">'+offlineMessage+"</div>",r.className=r.className.replace(/ hidden/g,"")))},i.send(n)}return i}function ajaxSetHtml(url){return!ajax(url,(function(request){var data=window.JSON?JSON.parse(request.responseText):eval("("+request.responseText+")");for(var key in data)setHtml(key,data[key])}))}function ajaxForm(e,t,n){for(var a=[],i=e.elements,r=0;r<i.length;r++){var s=i[r];if(s.name&&!s.disabled){if(/^file$/i.test(s.type)&&s.value)return!1;/^(checkbox|radio|submit|file)$/i.test(s.type)&&!s.checked&&s!=n||a.push(encodeURIComponent(s.name)+"="+encodeURIComponent(isTag(s,"select")?selectValue(s):s.value))}}a=a.join("&");var o=e.action;return/post/i.test(e.method)||(o=o.replace(/\?.*/,"")+"?"+a,a=""),ajax(o,(function(e){setHtml("ajaxstatus",e.responseText),window.jush&&jush.highlight_tag(qsa("code",qs("#ajaxstatus")),0),messagesPrint(qs("#ajaxstatus"))}),a,t)}function selectClick(e,t,n){var a=this,i=getTarget(e);if(isCtrl(e)&&!isTag(a.firstChild,"input|textarea")&&!isTag(i,"a")){if(n)return alert(n),!0;var r=a.innerHTML;t=t||/\n/.test(r);var s=document.createElement(t?"textarea":"input");s.onkeydown=function(e){e||(e=window.event),27!=e.keyCode||e.shiftKey||e.altKey||isCtrl(e)||(inputBlur.apply(s),a.innerHTML=r)};var o=e.rangeOffset,c=a.firstChild&&a.firstChild.alt||a.textContent||a.innerText;if(s.style.width=Math.max(a.clientWidth-14,20)+"px",t){var l=1;c.replace(/\n/g,(function(){l++})),s.rows=l}if(qsa("i",a).length&&(c=""),document.selection){var u;(u=document.selection.createRange()).moveToPoint(e.clientX,e.clientY);var d=u.duplicate();d.moveToElementText(a),d.setEndPoint("EndToEnd",u),o=d.text.length}if(a.innerHTML="",a.appendChild(s),setupSubmitHighlight(a),s.focus(),2==t)return ajax(location.href+"&"+encodeURIComponent(a.id)+"=",(function(e){e.responseText&&(s.value=e.responseText,s.name=a.id)}));if(s.value=c,s.name=a.id,s.selectionStart=o,s.selectionEnd=o,document.selection)(u=document.selection.createRange()).moveEnd("character",-s.value.length+o),u.select();return!0}}function selectLoadMore(e,t){var n=this,a=n.innerHTML,i=n.href;if(n.innerHTML=t,i)return n.removeAttribute("href"),!ajax(i,(function(t){var r=document.createElement("tbody");r.innerHTML=t.responseText,qs("#table").appendChild(r),r.children.length<e?n.parentNode.removeChild(n):(n.href=i.replace(/\d+$/,(function(e){return+e+1})),n.innerHTML=a)}))}function eventStop(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function setupSubmitHighlight(e){for(var t in{input:1,select:1,textarea:1})for(var n=qsa(t,e),a=0;a<n.length;a++)setupSubmitHighlightInput(n[a])}function setupSubmitHighlightInput(e){/submit|image|file/.test(e.type)||(addEvent(e,"focus",inputFocus),addEvent(e,"blur",inputBlur))}function inputFocus(){var e=findDefaultSubmit(this);e&&alterClass(e,"default",!0)}function inputBlur(){var e=findDefaultSubmit(this);e&&alterClass(e,"default")}function findDefaultSubmit(e){if(e.jushTextarea&&(e=e.jushTextarea),!e.form)return null;for(var t=qsa("input",e.form),n=0;n<t.length;n++){var a=t[n];if("submit"==a.type&&!a.style.zIndex)return a}}function addEvent(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent("on"+t,n)}function focus(e){setTimeout((function(){e.focus()}),0)}function cloneNode(e){for(var t=e.cloneNode(!0),n="input, select",a=qsa(n,e),i=qsa(n,t),r=0;r<a.length;r++){var s=a[r];for(var o in s)/^on/.test(o)&&s[o]&&(i[r][o]=s[o])}return setupSubmitHighlight(t),t}oninput=function(e){var t=e.target,n=t.getAttribute("data-maxlength");alterClass(t,"maxlength",t.value&&null!=n&&t.value.length>n)};