Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2438)

Unified Diff: appengine/swarming/elements/build/js/sk.js

Issue 2227803002: Mirror filters and sort preferences to url-params (Closed) Base URL: https://chromium.googlesource.com/external/github.com/luci/luci-py@use-dimensions
Patch Set: Make limit a visible option Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: appengine/swarming/elements/build/js/sk.js
diff --git a/appengine/swarming/elements/build/js/sk.js b/appengine/swarming/elements/build/js/sk.js
new file mode 100644
index 0000000000000000000000000000000000000000..13383479cbb642c6799e367369aeae0508bcbf22
--- /dev/null
+++ b/appengine/swarming/elements/build/js/sk.js
@@ -0,0 +1 @@
+function $$(query,ele){if(!ele){ele=document}return Array.prototype.map.call(ele.querySelectorAll(query),function(e){return e})}function $$$(query,ele){if(!ele){ele=document}return ele.querySelector(query)}this.sk=this.sk||function(){"use strict";var sk={};sk.clearChildren=function(ele){while(ele.firstChild){ele.removeChild(ele.firstChild)}};sk.findParent=function(ele,nodeName){while(ele!=null){if(ele.nodeName==nodeName){return ele}ele=ele.parentElement}return null};sk.errorMessage=function(message){var detail={message:message};document.dispatchEvent(new CustomEvent("error-sk",{detail:detail,bubbles:true}))};sk.Importer=function(){if("currentScript"in document){this.importDoc_=document.currentScript.ownerDocument}else{this.importDoc_=document._currentScript.ownerDocument}};sk.Importer.prototype.import=function(id){return document.importNode($$$(id,this.importDoc_).content,true)};sk.elePos=function(ele){var bounds=ele.getBoundingClientRect();return{x:bounds.left,y:bounds.top}};sk.request=function(method,url,body,headers){return new Promise(function(resolve,reject){var req=new XMLHttpRequest;req.open(method,url);if(headers){for(var k in headers){req.setRequestHeader(k,headers[k])}}req.onload=function(){if(req.status==200){resolve(req.response)}else{reject(req.response)}};req.onerror=function(){reject(Error("Network Error"))};req.send(body)})};sk.get=function(url){return sk.request("GET",url)};sk.post=function(url,body,content_type){if(!content_type){content_type="application/json"}return sk.request("POST",url,body,{"Content-Type":content_type})};sk.delete=function(url,body){return sk.request("DELETE",url,body)};sk.DomReady=new Promise(function(resolve,reject){if(document.readyState!="loading"){resolve()}else{document.addEventListener("DOMContentLoaded",resolve)}});sk.WebComponentsReady=new Promise(function(resolve,reject){window.addEventListener("polymer-ready",resolve)});var _Mailbox=function(){this.boxes={}};_Mailbox.prototype.subscribe=function(addr,cb){var box=this.boxes[addr]||{callbacks:[],value:null};box.callbacks.push(cb);cb(box.value);this.boxes[addr]=box};_Mailbox.prototype.unsubscribe=function(addr,cb){var box=this.boxes[addr]||{callbacks:[],value:null};for(var i=box.callbacks.length-1;i>=0;i--){if(box.callbacks[i]==cb){box.callbacks.splice(i,1)}}};_Mailbox.prototype.send=function(addr,value){var box=this.boxes[addr]||{callbacks:[],value:null};box.value=value;this.boxes[addr]=box;box.callbacks.forEach(function(cb){cb(value)})};sk.Mailbox=new _Mailbox;sk.human={};var TIME_DELTAS=[{units:"w",delta:7*24*60*60},{units:"d",delta:24*60*60},{units:"h",delta:60*60},{units:"m",delta:60},{units:"s",delta:1}];sk.KB=1024;sk.MB=sk.KB*1024;sk.GB=sk.MB*1024;sk.TB=sk.GB*1024;sk.PB=sk.TB*1024;var BYTES_DELTAS=[{units:" PB",delta:sk.PB},{units:" TB",delta:sk.TB},{units:" GB",delta:sk.GB},{units:" MB",delta:sk.MB},{units:" KB",delta:sk.KB},{units:" B",delta:1}];sk.human.pad=function(num,size){var str=num+"";while(str.length<size)str="0"+str;return str};sk.human.strDuration=function(seconds){if(seconds<0){seconds=-seconds}if(seconds==0){return" 0s"}var rv="";for(var i=0;i<TIME_DELTAS.length;i++){if(TIME_DELTAS[i].delta<=seconds){var s=Math.floor(seconds/TIME_DELTAS[i].delta)+TIME_DELTAS[i].units;while(s.length<4){s=" "+s}rv+=s;seconds=seconds%TIME_DELTAS[i].delta}}return rv};sk.human.diffDate=function(s){var ms=typeof s=="number"?s:Date.parse(s);var diff=(ms-Date.now())/1e3;if(diff<0){diff=-1*diff}return humanize(diff,TIME_DELTAS)};sk.human.bytes=function(b,unit){if(Number.isInteger(unit)){b=b*unit}return humanize(b,BYTES_DELTAS)};function humanize(n,deltas){for(var i=0;i<deltas.length-1;i++){var nextDeltaRounded=Math.round(n/deltas[i+1].delta)*deltas[i+1].delta;if(nextDeltaRounded/deltas[i].delta>=1){return Math.round(n/deltas[i].delta)+deltas[i].units}}var i=deltas.length-1;return Math.round(n/deltas[i].delta)+deltas[i].units}sk.now=function(){return Math.round((new Date).getTime()/1e3)};sk.array={};sk.array.equal=function(a,b){if(a.length!=b.length){return false}for(var i=0,len=a.length;i<len;i++){if(a[i]!==b[i]){return false}}return true};sk.formatHTML=function(s,linksInNewWindow){var sub='<a href="$&">$&</a>';if(linksInNewWindow){sub='<a href="$&" target="_blank">$&</a>'}s=s.replace(/https?:(\/\/|&#x2F;&#x2F;)[^ \t\n<]*/g,sub).replace(/(?:\r\n|\n|\r)/g,"<br/>");return sk.linkifyBugs(s)};var PROJECTS_TO_ISSUETRACKERS={chromium:"http://crbug.com/",skia:"http://skbug.com/"};sk.linkifyBugs=function(s){for(var project in PROJECTS_TO_ISSUETRACKERS){var re=new RegExp(project+":[0-9]+","g");var found_bugs=s.match(re);if(found_bugs){found_bugs.forEach(function(found_bug){var bug_number=found_bug.split(":")[1];var bug_link='<a href="'+PROJECTS_TO_ISSUETRACKERS[project]+bug_number+'" target="_blank">'+found_bug+"</a>";s=s.replace(found_bug,bug_link)})}}return s};sk.isGoogler=function(email){return email&&email.endsWith("@google.com")};sk.query={};sk.query.fromParamSet=function(o){if(!o){return""}var ret=[];var keys=Object.keys(o).sort();keys.forEach(function(key){o[key].forEach(function(value){ret.push(encodeURIComponent(key)+"="+encodeURIComponent(value))})});return ret.join("&")};sk.query.toParamSet=function(s){s=s||"";var ret={};var vars=s.split("&");for(var i=0;i<vars.length;i++){var pair=vars[i].split("=",2);if(pair.length==2){var key=decodeURIComponent(pair[0]);var value=decodeURIComponent(pair[1]);if(ret.hasOwnProperty(key)){ret[key].push(value)}else{ret[key]=[value]}}}return ret};sk.query.fromObject=function(o){var ret=[];Object.keys(o).forEach(function(key){ret.push(encodeURIComponent(key)+"="+encodeURIComponent(o[key]))});return ret.join("&")};sk.query.toObject=function(s,target){var target=target||{};var ret={};var vars=s.split("&");for(var i=0;i<vars.length;i++){var pair=vars[i].split("=",2);if(pair.length==2){var key=decodeURIComponent(pair[0]);var value=decodeURIComponent(pair[1]);if(target.hasOwnProperty(key)){switch(typeof target[key]){case"boolean":ret[key]=value=="true";break;case"number":ret[key]=Number(value);break;case"string":ret[key]=value;break;default:ret[key]=value}}else{ret[key]=value}}}return ret};sk.query.splitAmp=function(queryStr){queryStr=queryStr||"";return queryStr.split("&").join("\n")};sk.object={};sk.object.getDelta=function(o,d){var ret={};Object.keys(o).forEach(function(key){if(o[key]!=d[key]){ret[key]=o[key]}});return ret};sk.object.applyDelta=function(delta,o){var ret={};Object.keys(o).forEach(function(key){if(delta.hasOwnProperty(key)){ret[key]=delta[key]}else{ret[key]=o[key]}});return ret};sk.object.shallowCopy=function(o){var ret={};for(var k in o){if(o.hasOwnProperty(k)){ret[k]=o[k]}}return ret};sk.stateReflector=function(page,cb){var defaultState=JSON.parse(JSON.stringify(page.state));var lastState=JSON.parse(JSON.stringify(page.state));setInterval(function(){if(Object.keys(sk.object.getDelta(lastState,page.state)).length>0){lastState=JSON.parse(JSON.stringify(page.state));var q=sk.query.fromObject(sk.object.getDelta(page.state,defaultState));history.pushState(null,"",window.location.origin+window.location.pathname+"?"+q)}},100);var stateFromURL=function(){var delta=sk.query.toObject(window.location.search.slice(1),defaultState);page.state=sk.object.applyDelta(delta,defaultState);lastState=JSON.parse(JSON.stringify(page.state));cb()};if(window["Polymer"]&&Polymer.version[0]=="0"){sk.WebComponentsReady.then(stateFromURL)}else{sk.DomReady.then(stateFromURL)}window.addEventListener("popstate",stateFromURL)};sk.getRoundNumber=function(min,max,base){if(min>max){throw"sk.getRoundNumber: min > max! ("+min+" > "+max+")"}var multipleOf=[5,2,1];var val=(max+min)/2;if(!base){base=10}var digits=Math.floor(Math.log(Math.abs(val))/Math.log(base))+1;for(var shift=0;;shift++){var shiftDiv=Math.pow(base,digits-shift);for(var i=0;i<multipleOf.length;i++){var f=shiftDiv*multipleOf[i];var newVal=Math.round(val/f)*10*f/10;if(newVal>=min&&newVal<=max){return newVal}}}console.error("sk.getRoundNumber Couldn't find appropriate rounding "+"value. Returning midpoint.");return val};sk.sortStrings=function(s){return s.sort(function(a,b){return a.localeCompare(b,"en",{sensitivity:"base"})})};sk.toCapWords=function(s){return s.replace(/\b\w/g,function(firstLetter){return firstLetter.toUpperCase()})};sk.truncate=function(str,len){if(str.length>len){var ellipsis="...";return str.substring(0,len-ellipsis.length)+ellipsis}return str};sk.hashString=function(s){var hash=0;for(var i=s.length-1;i>=0;i--){hash=(hash<<5)-hash+s.charCodeAt(i);hash|=0}return Math.abs(hash)};sk.escapeHTML=function(s){return s.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/\//g,"&#x2F;")};sk.sharesElement=function(a,b){var i=0;var j=0;while(i<a.length&&j<b.length){if(a[i]<b[j]){i++}else if(b[j]<a[i]){j++}else{return true}}return false};sk.robust_get=function(obj,idx){if(!idx||!obj){return}for(var i=0,len=idx.length;i<len;i++){if(typeof obj==="undefined"||typeof idx[i]==="undefined"){return}obj=obj[idx[i]]}return obj};function _hexify(i){var s=i.toString(16).toUpperCase();if(s.length<2){s="0"+s}return s}sk.colorHex=function(colors,offset){return"#"+_hexify(colors[offset+0])+_hexify(colors[offset+1])+_hexify(colors[offset+2])+_hexify(colors[offset+3])};sk.colorRGB=function(colors,offset){return"rgba("+colors[offset]+", "+colors[offset+1]+", "+colors[offset+2]+", "+colors[offset+3]/255+")"};if(!String.prototype.startsWith){String.prototype.startsWith=function(searchString,position){position=position||0;return this.indexOf(searchString,position)===position}}return sk}();

Powered by Google App Engine
This is Rietveld 408576698