lib/har/viewer/scripts/preview/pageList.js

Summary

Maintainability
A
0 mins
Test Coverage
/* See license.txt for terms of usage */

define("preview/pageList",["domplate/domplate","core/lib","core/trace","core/cookies","preview/requestList","i18n!nls/pageList","domplate/popupMenu"],function(Domplate,Lib,Trace,Cookies,RequestList,Strings,Menu){with(Domplate){function PageList(e){this.input=e,this.listeners=[]}return PageList.prototype=domplate({tableTag:TABLE({"class":"pageTable",cellpadding:0,cellspacing:0,onclick:"$onClick",_repObject:"$input"},TBODY(TAG("$rowTag",{groups:"$input.log.pages"}))),rowTag:FOR("group","$groups",TR({"class":"pageRow",_repObject:"$group"},TD({"class":"groupName pageCol",width:"1%"},SPAN({"class":"pageName"},"$group|getPageTitle")),TD({"class":"netOptionsCol netCol",width:"15px"},DIV({"class":"netOptionsLabel netLabel",onclick:"$onOpenOptions"})))),bodyTag:TR({"class":"pageInfoRow",style:"height:auto;"},TD({"class":"pageInfoCol",colspan:2})),getPageTitle:function(e){return Lib.cropString(e.title,100)},getPageID:function(e){return"["+e.id+"]"},onClick:function(e){var t=Lib.fixEvent(e);if(Lib.isLeftClick(e)){var n=Lib.getAncestorByClass(t.target,"pageRow");n&&(this.toggleRow(n),Lib.cancelEvent(e))}},toggleRow:function(e,t){var n=Lib.hasClass(e,"opened");if(n&&t)return;Lib.toggleClass(e,"opened");if(Lib.hasClass(e,"opened")){var r=this.bodyTag.insertRows({},e)[0],i=this.createRequestList(),s=PageList.prototype.pageTimings;for(var o=0;o<s.length;o++)i.addPageTiming(s[o]);i.render(r.firstChild,e.repObject)}else{var r=e.nextSibling;e.parentNode.removeChild(r)}},expandAll:function(e){var t=e.firstChild.firstChild;while(t)Lib.hasClass(t,"pageRow")&&this.toggleRow(t,!0),t=t.nextSibling},getPageRow:function(e){var t=this.element.parentNode,n=Lib.getElementsByClass(t,"pageRow");for(var r=0;r<n.length;r++){var i=n[r];if(i.repObject==e)return i}},togglePage:function(e){var t=this.getPageRow(e);this.toggleRow(t)},expandPage:function(e){var t=this.getPageRow(e);this.toggleRow(t,!0)},collapsePage:function(e){var t=this.getPageRow(e);Lib.hasClass(t,"opened")&&this.toggleRow(t)},onOpenOptions:function(e){var t=Lib.fixEvent(e);Lib.cancelEvent(e);if(!Lib.isLeftClick(e))return;var n=t.target,r=Lib.getAncestorByClass(n,"pageRow"),i=this.getMenuItems(r.repObject),s=new Menu({id:"requestContextMenu",items:i});s.showPopup(n)},getMenuItems:function(e){var t=RequestList.getVisibleColumns().join(),n,r=0,i=[];for(var s=0;s<RequestList.columns.length;s++){var o=RequestList.columns[s],u=t.indexOf(o)>-1;i.push({label:Strings["column.label."+o],type:"checkbox",checked:u,command:Lib.bindFixed(this.onToggleColumn,this,o)}),u&&(n=s,r++)}return r==1&&(i[n].disabled=!0),i.push("-"),i.push({label:Strings["action.label.Reset"],command:Lib.bindFixed(this.updateColumns,this)}),i},onToggleColumn:function(e){var t=RequestList.getVisibleColumns();Lib.remove(t,e)||t.push(e),this.updateColumns(t)},updateColumns:function(e){e||(e=RequestList.defaultColumns),RequestList.setVisibleColumns(e)},createRequestList:function(){var e=new RequestList(this.input);return e.listeners=this.listeners,e},append:function(e){var t=this.createRequestList();t.render(e,null);var n=this.input.log.pages;if(n&&n.length){var r=this.tableTag.append({input:this.input},e,this),i=Lib.getElementsByClass(r,"pageRow"),s=Lib.getElementsByClass(e,"pageTable");i.length==1&&s.length==1&&this.toggleRow(i[0]);var o=Lib.getURLParameter("expand");o&&this.expandAll(r)}},render:function(e){this.append(e)},addListener:function(e){this.listeners.push(e)},removeListener:function(e){Lib.remove(this.listeners,e)}}),PageList.prototype.pageTimings=[],PageList}});