lib/har/viewer/scripts/tabs/domTab.js in har-0.0.9 vs lib/har/viewer/scripts/tabs/domTab.js in har-0.1.0

- old
+ new

@@ -1 +1 @@ -require.def("tabs/domTab",["domplate/domplate","domplate/tabView","core/lib","i18n!nls/harViewer","domplate/domTree"],function(a,b,c,d,e){with(a){a=function(){};a.prototype=c.extend(b.Tab.prototype,{id:"DOM",label:d.domTabLabel,separator:DIV({"class":"separator"}),onUpdateBody:function(){},append:function(f){(new e(f)).append(this._body);this.separator.append({},this._body)}});return a}}); +require.def("tabs/domTab",["domplate/domplate","domplate/tabView","core/lib","i18n!nls/domTab","domplate/toolbar","tabs/search","core/dragdrop","domplate/domTree","core/cookies","domplate/tableView","core/trace","json-query/JSONQuery"],function(Domplate,TabView,Lib,Strings,Toolbar,Search,DragDrop,DomTree,Cookies,TableView,Trace){with(Domplate){var jsonQueryOption="searchJsonQuery";function DomTab(){this.toolbar=new Toolbar,this.toolbar.addButtons(this.getToolbarButtons()),this.tableView=!1}DomTab.prototype=domplate(TabView.Tab.prototype,{id:"DOM",label:Strings.domTabLabel,separator:DIV({"class":"separator"}),tabBodyTag:DIV({"class":"tab$tab.id\\Body tabBody",_repObject:"$tab"},DIV({"class":"domToolbar"}),DIV({"class":"domContent"})),domBox:TABLE({"class":"domBox",cellpadding:0,cellspacing:0},TBODY(TR(TD({"class":"content"},DIV({"class":"title"},"$title")),TD({"class":"splitter"}),TD({"class":"results"},DIV({"class":"resultsDefaultContent"},Strings.searchResultsDefaultText))))),queryResultsViewType:DIV({"class":"queryResultsViewType"},INPUT({"class":"type",type:"checkbox",onclick:"$onTableView"}),SPAN({"class":"label"},Strings.queryResultsTableView)),onUpdateBody:function(a,b){this.toolbar.render(Lib.$(b,"domToolbar"));if(Lib.isIE){var c=Lib.getElementByClass(b,"searchBox"),d=Lib.getElementByClass(c,"searchInput");d.setAttribute("disabled","true"),d.setAttribute("title",Strings.searchDisabledForIE);var e=Lib.getElementByClass(c,"arrow");e.setAttribute("disabled","true")}this.updateSearchResultsUI()},getToolbarButtons:function(){var a=[];a.push({id:"search",tag:Search.Box.tag,initialize:Search.Box.initialize});return a},createSearchObject:function(a){var b=Lib.getElementsByClass(this._body,"domTable");b=Lib.cloneArray(b);var c=b.map(function(a){return a.repObject.input});return new Search.ObjectSearch(a,c,!1,!1)},getSearchOptions:function(){var a=[];a.push({label:Strings.searchOptionJsonQuery,checked:Cookies.getBooleanCookie(jsonQueryOption),command:Lib.bindFixed(this.onOption,this,jsonQueryOption)});return a},onOption:function(a){Search.Box.onOption(a),this.updateSearchResultsUI()},updateSearchResultsUI:function(){var a=Cookies.getBooleanCookie(jsonQueryOption),b=Lib.getElementsByClass(this._body,"domBox");for(var c=0;c<b.length;c++){var d=b[c],e=Lib.getElementByClass(d,"results"),f=Lib.getElementByClass(d,"splitter");a?(Lib.setClass(e,"visible"),Lib.setClass(f,"visible")):(Lib.removeClass(e,"visible"),Lib.removeClass(f,"visible"))}var g=Lib.getElementByClass(this._body,"searchInput");if(g){var h=a?Strings.jsonQueryPlaceholder:Strings.searchPlaceholder;g.setAttribute("placeholder",h)}var g=Lib.getElementByClass(this._body,"searchInput")},onSearch:function(a,b){var c=Cookies.getBooleanCookie(jsonQueryOption);if(c)return this.evalJsonQuery(a,b);if(a.length<3)return!0;this.currSearch&&this.currSearch.text!=a&&(this.currSearch=null),this.currSearch||(this.currSearch=this.createSearchObject(a));if(this.currSearch.findNext(a)){var d=this.currSearch.stack[1].object,e=this.getDomTree(d);for(var f=0;f<this.currSearch.stack.length;f++)e.expandRow(this.currSearch.stack[f].object);var g=this.currSearch.getCurrentMatch(),h=e.getRow(g.value);if(h){var i=h.querySelector(".memberValueCell .objectBox");this.currSearch.selectText(i.firstChild),Lib.scrollIntoCenterView(i)}return!0}this.currSearch.matches.length>0&&(this.currSearch=this.createSearchObject(a));return!1},evalJsonQuery:function(a,b){if(b!=13)return!0;var c=Lib.getElementsByClass(this._body,"domBox");for(var d=0;d<c.length;d++){var e=c[d],f=Lib.getElementByClass(e,"domTable"),g=f.repObject.input,h=e.querySelector(".domBox .results");Lib.clearNode(h);try{var i=this.queryResultsViewType.append({},h);if(this.tableView){var j=Lib.getElementByClass(i,"type");j.setAttribute("checked","true")}var k=JSONQuery(a,g);h.repObject=k;if(this.tableView)TableView.render(h,k);else{var l=new DomTree(k);l.append(h)}}catch(m){Trace.exception(m)}}return!0},onTableView:function(a){var b=Lib.fixEvent(a),c=b.target,d=Lib.getAncestorByClass(c,"tabBody"),e=$(c).attr("checked");d.repObject.tableView=e;var f=Lib.getAncestorByClass(c,"results"),g=f.repObject,h=Lib.getElementByClass(f,"domTable");h&&h.parentNode.removeChild(h);var i=Lib.getElementByClass(f,"dataTableSizer");i&&i.parentNode.removeChild(i);if(e)TableView.render(f,g);else{var j=new DomTree(g);j.append(f)}},append:function(a){var b=Lib.$(this._body,"domContent"),c=[];for(var d=0;d<a.log.pages.length;d++){var e=a.log.pages[d];c.push(e.title)}var f=this.domBox.append({title:c.join(", ")},b),g=Lib.getElementByClass(f,"content"),h=Lib.getElementByClass(f,"splitter");this.splitter=new DragDrop.Tracker(h,{onDragStart:Lib.bind(this.onDragStart,this),onDragOver:Lib.bind(this.onDragOver,this),onDrop:Lib.bind(this.onDrop,this)}),this.updateSearchResultsUI();var i=new DomTree(a);i.append(g),this.separator.append({},b)},getDomTree:function(a){var b=Lib.getElementsByClass(this._body,"domTable");for(var c=0;c<b.length;c++){var d=b[c].repObject;if(d.input==a)return d}return null},highlightFile:function(a,b){var c=this.getDomTree(a);if(c){c.expandRow(a.log),c.expandRow(a.log.entries);var d=c.expandRow(b);d&&Lib.setClassTimed(d,"jumpHighlight");var e=Lib.$(this._body,"domContent");e.scrollTop=d.offsetTop}},onDragStart:function(a){var b=Lib.getBody(this._body.ownerDocument);b.setAttribute("vResizing","true");var c=Lib.getAncestorByClass(a.element,"domBox"),d=Lib.getElementByClass(c,"content");this.startWidth=d.clientWidth},onDragOver:function(a,b){var c=Lib.getAncestorByClass(b.element,"domBox"),d=Lib.getElementByClass(c,"content"),e=this.startWidth+a.x;d.style.width=e+"px"},onDrop:function(a){var b=Lib.getBody(this._body.ownerDocument);b.removeAttribute("vResizing")}});return DomTab}}) \ No newline at end of file