var CodeMirror=(function(){function u(aH,aE){var bR={},bd=u.defaults;for(var au in bd){if(bd.hasOwnProperty(au)){bR[au]=(aE&&aE.hasOwnProperty(au)?aE:bd)[au]}}var cC=bR.document;var ay=cC.createElement("div");ay.className="CodeMirror"+(bR.lineWrapping?" CodeMirror-wrap":"");ay.innerHTML='
";return"x-grid3-row-expanded"}}}]})})}});Ext.reg("usernotes",Ext.ux.UserNotes);Ext.namespace("ui","ui.task");ui.task.ChangeFileOwner=function(c){Ext.apply(this,c);var d=Ext.MessageBox.wait(_("Saving data..."));XHR({scope:this,params:{task:"setFileOwner",fileIdDB:this.fileIdDB,newOwnerID:this.newOwnerID},success:function(e){var f=Ext.util.JSON.decode(e.responseText);ui.cmp.WorkTreeGrid.getInstance().getRootNode().reload(function(){ui.cmp.PatchesTreeGrid.getInstance().getRootNode().reload()});ui.cmp.PortletInfo.getInstance().store.reload();d.hide();if(Ext.isDefined(this.fromType)&&this.fromType==="tab"){Ext.getCmp("main-panel").remove(this.from.curTab)}this.from.close();PhDOE.notify("info",_("Owner changed"),_("The owner for this file have been changed successfully !"))},failure:function(e){var f=Ext.util.JSON.decode(e.responseText);d.hide();PhDOE.winForbidden(f.type);if(Ext.isDefined(this.fromType)&&this.fromType==="tab"){Ext.getCmp("main-panel").remove(this.from.curTab)}this.from.close()}})};Ext.namespace("ui","ui.task","ui.task._CheckBuildTask");ui.task._CheckBuildTask.display=function(){XHR({params:{task:"getLogFile",file:"project_"+PhDOE.project+"_log_check_build_"+PhDOE.user.lang},success:function(c){var d=Ext.util.JSON.decode(c.responseText);Ext.getBody().unmask();ui.task.PingTask.getInstance().delay(30000);if(Ext.getCmp("main-panel").findById("check_build_panel_"+PhDOE.user.lang)){Ext.getCmp("main-panel").remove("check_build_panel_"+PhDOE.user.lang)}Ext.getCmp("main-panel").add({xtype:"panel",id:"check_build_panel_"+PhDOE.user.lang,title:String.format(_("Check build result for {0}"),Ext.util.Format.uppercase(PhDOE.user.lang)),tabTip:String.format(_("Check build result for the documentation {0}"),Ext.util.Format.uppercase(PhDOE.user.lang)),closable:true,autoScroll:true,iconCls:"iconCheckBuild",html:'
'+d.mess+"
"});Ext.getCmp("main-panel").setActiveTab("check_build_panel_"+PhDOE.user.lang)}})};ui.task._CheckBuildTask.poll=new Ext.util.DelayedTask(function(){XHR({params:{task:"checkLockFile",lockFile:"project_"+PhDOE.project+"_lock_check_build_"+PhDOE.user.lang},success:function(){ui.task._CheckBuildTask.poll.delay(5000)},failure:function(c){var d=Ext.util.JSON.decode(c.responseText);if(d&&d.success===false){new ui.task._CheckBuildTask.display()}else{ui.task._CheckBuildTask.poll.delay(5000)}}})});ui.task.CheckBuildTask=function(){Ext.getBody().mask(' '+_("Please, wait until the build is checked..."));ui.task.PingTask.getInstance().cancel();XHR({params:{task:"checkBuild",xmlDetails:Ext.getCmp("option-xml-details").checked},success:function(){new ui.task._CheckBuildTask.display()},failure:function(c){var d=Ext.util.JSON.decode(c.responseText);if(d&&d.success===false){ui.task.PingTask.getInstance().delay(30000);Ext.getBody().unmask();PhDOE.winForbidden(d.type)}else{ui.task._CheckBuildTask.poll.delay(5000)}}})};Ext.namespace("ui","ui.task","ui.task._CheckEntitiesTask");ui.task._CheckEntitiesTask.display=function(){BtnViewResult=Ext.getCmp("btn-check-entities-view-last-result");Ext.getBody().unmask();ui.task.PingTask.getInstance().delay(30000);if(Ext.getCmp("main-panel").findById("tab-check-entities")){Ext.getCmp("main-panel").remove("tab-check-entities")}BtnViewResult.handler.call(BtnViewResult.scope||BtnViewResult,BtnViewResult)};ui.task._CheckEntitiesTask.poll=new Ext.util.DelayedTask(function(){XHR({params:{task:"checkLockFile",lockFile:"project_"+PhDOE.project+"_lock_check_entities"},success:function(){ui.task._CheckEntitiesTask.poll.delay(5000)},failure:function(c){var d=Ext.util.JSON.decode(c.responseText);if(d&&d.success===false){new ui.task._CheckEntitiesTask.display()}else{ui.task._CheckEntitiesTask.poll.delay(5000)}}})});ui.task.CheckEntitiesTask=function(){Ext.getBody().mask(' '+_("Please, wait until entities are checked..."));ui.task.PingTask.getInstance().cancel();XHR({params:{task:"checkEntities"},success:function(){new ui.task._CheckEntitiesTask.display()},failure:function(c){var d=Ext.util.JSON.decode(c.responseText);if(d&&d.success===false){ui.task.PingTask.getInstance().delay(30000);Ext.getBody().unmask();PhDOE.winForbidden()}else{ui.task._CheckEntitiesTask.poll.delay(5000)}}})};Ext.namespace("ui","ui.task");ui.task.CheckFileTask=function(c){Ext.apply(this,c);ui.task.PingTask.getInstance().cancel();Ext.getBody().mask(' '+_("Checking for error. Please, wait..."));XHR({scope:this,params:{task:"checkFileError",FilePath:this.fpath,FileName:this.fname,FileLang:this.lang,FileContent:Ext.getCmp(this.prefix+"-"+this.ftype+"-FILE-"+this.fid).getValue()},failure:function(){ui.task.PingTask.getInstance().delay(30000);Ext.getBody().unmask();Ext.MessageBox.alert(_("Error"),_("An error occured while checking this file for errors. Please, try again."))},success:function(d){ui.task.PingTask.getInstance().delay(30000);Ext.getBody().unmask();var e=Ext.util.JSON.decode(d.responseText);if(e.error&&e.error_first!=="-No error-"){Ext.getCmp("main-panel").add({id:"FE-help-"+this.fid,title:"Error in "+this.fname,iconCls:"iconFilesError",closable:true,autoScroll:true,autoLoad:"./error?dir="+this.fpath+"&file="+this.fname});Ext.getCmp("main-panel").setActiveTab("FE-help-"+this.fid)}else{Ext.MessageBox.show({title:_("Check for errors"),msg:_("There is no error."),buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.INFO})}new ui.task.SaveFileTask({prefix:this.prefix,ftype:this.ftype,fid:this.fid,fpath:this.fpath,fname:this.fname,lang:this.lang,storeRecord:this.storeRecord});if(this.prefix==="FE"){Ext.getCmp("FE-error-desc-"+this.fid).body.updateManager.refresh()}ui.cmp.ErrorFileGrid.getInstance().store.reload()}})};Ext.namespace("ui","ui.task");ui.task.CheckXml=function(d){Ext.apply(this,d);var c=this.prefix+"-"+this.ftype,e=Ext.MessageBox.wait(_("XML check. Please, wait..."));XHR({scope:this,params:{task:"checkXml",fileContent:Ext.getCmp(this.idPrefix+"-FILE-"+this.fid).getValue()},success:function(f){var g=Ext.util.JSON.decode(f.responseText);e.hide();if(g.errors!=="no_error"){new ui.cmp.CheckXmlWin({errors:g.errors})}else{PhDOE.notify("info",_("XML check"),_("There is no error."))}},failure:function(f){var g=Ext.util.JSON.decode(f.responseText);e.hide()}})};Ext.namespace("ui","ui.task");ui.task.ClearLocalChangeTask=function(d){Ext.apply(this,d);var c=this.ftype,e=this.fpath,f=this.fname;goClear=function(){Ext.getBody().mask(' '+_("Please, wait..."));var g=["FNT","FNU","FE","FNR","FNIEN","AF"];for(var h=0;hYou need confirm."),function(g){if(g==="yes"){goClear()}},this)}};Ext.namespace("ui","ui.task");ui.task.DeletePatchTask=function(c){Ext.apply(this,c);Ext.getBody().mask(' '+_("Please, wait..."));XHR({scope:this,params:{task:"deletePatch",patchID:this.patchID},success:function(){Ext.getBody().unmask();ui.cmp.PatchesTreeGrid.getInstance().deletePatch(this.patchID);PhDOE.notify("info",_("Patch deleted"),_("The patch have been deleted !"))},failure:function(d){var e=Ext.util.JSON.decode(d.responseText);Ext.getBody().unmask();if(e.err){PhDOE.winForbidden(e.err)}else{PhDOE.winForbidden()}}})};Ext.namespace("ui","ui.task");ui.task.GetFileInfoByXmlID=function(c){Ext.apply(this,c);XHR({scope:this,params:{task:"getFileInfoByXmlID",xmlID:this.xmlID},success:function(d){var e=Ext.util.JSON.decode(d.responseText);ui.cmp.RepositoryTree.getInstance().openFile("byPath",e.lang+e.path,e.name)}})};Ext.namespace("ui","ui.task");ui.task.GetFileTask=function(d){Ext.apply(this,d);var c=this.prefix+"-"+this.ftype,f=(this.original)?true:false,e=(this.ftype==="GGTRANS")?true:false,g=(this.ftype==="NEW")?this.skeleton:false;Ext.get(c+"-PANEL-"+this.fid).mask(' '+_("Loading..."));XHR({scope:this,params:{task:"getFile",FilePath:this.fpath,FileName:this.fname,readOriginal:f,ggTranslate:e,skeleton:g},success:function(h){var k=Ext.util.JSON.decode(h.responseText),y="http://"+window.location.host+":"+window.location.port+window.location.pathname+"?perm=/"+this.fpath.split("/")[0]+"/"+k.xmlid.split("|")[0]+".php&project="+PhDOE.project,s=' ',j=Ext.getCmp(c+"-PANEL-"+this.fid),w=Ext.get(c+"-PANEL-"+this.fid),v=Ext.getCmp(c+"-FILE-"+this.fid),q=(k.fileModified)?Ext.util.JSON.decode(k.fileModified):false,t,u;w.unmask();if(this.prefix==="PP"||this.ftype==="TRANS"||this.prefix==="FNIEN"){j.permlink=""}else{if(this.ftype==="GGTRANS"){j.setTitle(j.originTitle);j.setIconClass("iconGoogle")}else{j.permlink=(k.xmlid!=="NULL")?s:"";j.setTitle(j.permlink+j.originTitle)}}v.setValue(k.content);if(this.ftype==="GGTRANS"){v.reIndentAll()}if(k.warn_tab&&!this.freadOnly){Ext.MessageBox.show({title:_("Warning"),msg:String.format(_("The file {0} contains some tab characters. The editor have replace it with space characters."),this.fpath+this.fname),buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.WARNING});v.manageCodeChange()}if(k.warn_encoding&&!this.freadOnly){Ext.MessageBox.show({title:_("Warning"),msg:String.format(_("The editor have modified automatically the file {0} into UTF-8 encoding."),this.fpath+this.fname),buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.WARNING});v.setLine(1,'');Ext.getCmp(c+"-FILE-"+this.fid+"-btn-save").enable()}if(this.prefix==="FNT"||this.prefix==="FNIEN"){t="fileModified"}if(this.prefix==="FNU"){t=(this.ftype==="LANG")?"fileModifiedLang":"fileModifiedEN"}if(this.prefix==="FE"){t=(this.ftype==="LANG")?"fileModifiedLang":"fileModifiedEN"}if(this.prefix==="FNR"){t=(this.ftype==="LANG")?"fileModifiedLang":"fileModifiedEN"}if(k.fileModified&&this.prefix!=="AF"&&!f){this.storeRecord.set(t,k.fileModified);this.storeRecord.commit()}if(this.prefix==="AF"){this.storeRecord.data={};this.storeRecord.data.fileModified=false;if(k.fileModified){this.storeRecord.data.fileModified=k.fileModified}}if(k.fileModified&&!f&&(PhDOE.user.userID!==q.userID)){if(!q.haveKarma&&PhDOE.user.haveKarma&&q.fromModule==="workInProgress"){Ext.MessageBox.show({title:_("Information"),msg:String.format(_("File modified by {0} (anonymous user) but you are an authenticated user, so you can modify it."),q.user),buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.INFO})}else{if(!q.haveKarma&&PhDOE.user.haveKarma&&q.fromModule==="PatchesForReview"){new ui.cmp.AnonymousPatchWin({fidDB:q.fidDB,fid:this.fid,prefix:this.prefix,ftype:q.ftype,fpath:this.fpath,fname:this.fname,curTab:Ext.getCmp(this.prefix+"-"+this.fid)})}else{if(!this.freadOnly){Ext.getCmp(c+"-FILE-"+this.fid+"-grp-save").disable();Ext.getCmp(c+"-FILE-"+this.fid+"-grp-undoRedo").disable();Ext.getCmp(c+"-FILE-"+this.fid+"-grp-tools").disable()}u=Ext.MessageBox.show({title:_("Information"),msg:String.format(_("File modified by {0}."),q.user),buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.INFO});u.getDialog().mask.resize(w.getSize().width,w.getSize().height);u.getDialog().mask.alignTo(w.dom,"tl")}}}else{if(c=="FNT-TRANS"){var x=new RegExp("");v.insertLine(1,"");v.insertLine(2,"");if(!Ext.isEmpty(v.getLine(4))){v.insertLine(3,"")}v.manageCodeChange()}}}},callback:function(){var h=Ext.getCmp(this.prefix+"-"+this.fid);if(this.prefix==="FNT"){if(this.ftype==="TRANS"){h.panTRANSLoaded=true}if(this.ftype==="GGTRANS"||this.ftype==="EN"){h.panTRANSSecondLoaded=true}}if(this.prefix==="FNU"){if(this.ftype==="LANG"){h.panLANGLoaded=true}if(this.ftype==="EN"){h.panENLoaded=true}}if(this.prefix==="FE"){if(this.ftype==="LANG"){h.panLANGLoaded=true}if(this.ftype==="EN"){h.panENLoaded=true}}if(this.prefix==="FNR"){if(this.ftype==="LANG"){h.panLANGLoaded=true}if(this.ftype==="EN"){h.panENLoaded=true}}if(this.prefix==="FNIEN"){h.panLANGLoaded=true}if(this.prefix==="AF"){h.panLoaded=true}Ext.getCmp("main-panel").fireEvent("tabLoaded",this.prefix,this.fid)}})};Ext.namespace("ui","ui.task");ui.task.GetGGTranslation=function(c){Ext.apply(this,c);Ext.get("GGTranslate-result").dom.innerHTML="";Ext.getCmp("GGTranslate-btn").disable();Ext.getCmp("GGTranslate-btn").setText(_("Please, wait..."));XHR({scope:this,params:{task:"getGGTranslation",str:this.str},success:function(d){var e=Ext.util.JSON.decode(d.responseText);Ext.get("GGTranslate-result").dom.innerHTML=Ext.util.Format.htmlEncode(e.translation);Ext.getCmp("GGTranslate-btn").setText(_("Translate !"));Ext.getCmp("GGTranslate-btn").enable()}})};Ext.namespace("ui","ui.task");ui.task.LoadConfigTask=function(c){Ext.apply(this,c);XHR({params:{task:"getConf"},success:function(d){var e=Ext.decode(d.responseText);PhDOE.user.login=e.mess.userLogin;PhDOE.user.userID=e.mess.userID;PhDOE.user.lang=e.mess.userLang;PhDOE.user.authService=e.mess.authService;PhDOE.user.authServiceID=e.mess.authServiceID;PhDOE.user.isAnonymous=e.mess.userIsAnonymous;PhDOE.user.haveKarma=e.mess.userHaveKarma;PhDOE.user.isGlobalAdmin=e.mess.userIsGlobalAdmin;PhDOE.user.isLangAdmin=e.mess.userIsLangAdmin;PhDOE.user.conf=e.mess.userConf;PhDOE.user.anonymousIdent=e.mess.userAnonymousIdent;PhDOE.project=e.mess.project;PhDOE.app.conf=e.mess.appConf;if(e.mess.topicInfo&&e.mess.topicInfo.lang){PhDOE.topic.lang.author=e.mess.topicInfo.lang.author;PhDOE.topic.lang.content=e.mess.topicInfo.lang.content;PhDOE.topic.lang.topicDate=Date.parseDate(e.mess.topicInfo.lang.topicDate,"Y-m-d H:i:s");PhDOE.topic.lang.topicDate=PhDOE.topic.lang.topicDate.format(_("Y-m-d, H:i"))}if(e.mess.topicInfo&&e.mess.topicInfo.global){PhDOE.topic.global.author=e.mess.topicInfo.global.author;PhDOE.topic.global.content=e.mess.topicInfo.global.content;PhDOE.topic.global.topicDate=Date.parseDate(e.mess.topicInfo.global.topicDate,"Y-m-d H:i:s");PhDOE.topic.global.topicDate=PhDOE.topic.global.topicDate.format(_("Y-m-d, H:i"))}Ext.get("appTheme").dom.href=PhDOE.user.conf.main.theme;PhDOE.drawInterface()}})};Ext.namespace("ui","ui.task");ui.task.MarkDeleteTask=function(c){Ext.apply(this,c);Ext.MessageBox.confirm(_("Confirm"),_("This action will mark this file as need deleted.
was saved successfully !"),this.lang+this.fpath+this.fname))},failure:function(g){var h=Ext.util.JSON.decode(g.responseText);e.hide();if(h.XmlError&&h.XmlError!="no_error"){Ext.MessageBox.alert(_("XML Errors"),_("There is somes XML's errors.
You must fix it before saving this file.
Valid this window to show this errors."),function(){new ui.cmp.CheckXmlWin({errors:h.XmlError})})}if(h.type){PhDOE.winForbidden(h.type)}}})};Ext.namespace("ui","ui.task");ui.task.SaveTransFileTask=function(d){Ext.apply(this,d);var c=this.prefix+"-"+this.ftype,e=Ext.MessageBox.wait(_("Saving data...")),f=Ext.getCmp(this.prefix+"-"+this.ftype+"-FILE-"+this.fid).getValue();XHR({scope:this,params:{task:"saveFile",type:"trans",filePath:this.fpath,fileName:this.fname,fileLang:this.lang,fileContent:f},success:function(g){var h=Ext.util.JSON.decode(g.responseText);if(this.ftype!="NEW"){this.storeRecord.set("fileModified",'{"user":"'+PhDOE.user.login+'", "anonymousIdent":"'+PhDOE.user.anonymousIdent+'"}');this.storeRecord.commit()}else{this.storeRecord.data.node.reload()}Ext.getCmp(this.prefix+"-"+this.ftype+"-FILE-"+this.fid).setOriginalContent(f);ui.cmp.WorkTreeGrid.getInstance().addRecord(h.id,this.lang+this.fpath,this.fname,"new");Ext.getCmp(c+"-FILE-"+this.fid+"-btn-save").disable();Ext.getCmp(c+"-FILE-"+this.fid).isModified=false;Ext.getCmp(c+"-PANEL-"+this.fid).setTitle(Ext.getCmp(c+"-PANEL-"+this.fid).originTitle);Ext.getCmp(this.prefix+"-"+this.fid).setTitle(Ext.getCmp(this.prefix+"-"+this.fid).originTitle);e.hide();PhDOE.notify("info",_("Document saved"),String.format(_("Document
{0}
was saved successfully !"),this.lang+this.fpath+this.fname))},failure:function(g){var h=Ext.util.JSON.decode(g.responseText);e.hide();if(h.XmlError&&h.XmlError!="no_error"){Ext.MessageBox.alert(_("XML Errors"),_("There is somes XML's errors.
You must fix it before saving this file.
Valid this window to show this errors."),function(){new ui.cmp.CheckXmlWin({errors:h.XmlError})})}if(h.type){PhDOE.winForbidden(h.type)}}})};Ext.namespace("ui","ui.task");ui.task.SetFileProgressTask=function(c){Ext.apply(this,c);XHR({scope:this,params:{task:"SetFileProgress",idDB:this.idDB,progress:this.progress},failure:function(d){var e=Ext.util.JSON.decode(d.responseText),f;if(e.err){if(e.err=="file_dont_exist_in_workInProgress"){f=_("The file you want to change the estimated progress don't exist into the database.")}if(e.err=="file_isnt_owned_by_current_user"){f=_("The file you want to change the estimated progress isn't own by you. You only can modify this information for yours files.")}}if(f){PhDOE.notify("error",_("Error"),f)}}})};Ext.namespace("ui","ui.task");ui.task.setTopicTask=function(c){Ext.apply(this,c);var d=this.isLang;XHR({scope:this,params:{task:"setTopic",content:this.content,lang:d?"lang":"global"},success:function(f){var g=Ext.util.JSON.decode(f.responseText),e=PhDOE.topic[d?"lang":"global"];e.author=g.author;e.content=g.content;e.topicDate=Date.parseDate(g.topicDate,"Y-m-d H:i:s");e.topicDate=e.topicDate.format(_("Y-m-d, H:i"));PhDOE.setTopic(d)}})};Ext.namespace("ui","ui.task","ui.task._SystemUpdateTask");ui.task._SystemUpdateTask.refresh_ui=function(){Ext.get("wizard-step-3").replaceClass("wizard-step-before","wizard-step-working");PhDOE.reloadAllStore();Ext.get("wizard-step-3").replaceClass("wizard-step-working","wizard-step-done");Ext.getCmp("btn-start-refresh").setIconClass("iconFinishRefresh");Ext.getCmp("btn-start-refresh").setText(_("Finish !"));Ext.getCmp("btn-start-refresh").setHandler(function(){Ext.getCmp("sys-update-win").close()});Ext.getCmp("btn-start-refresh").enable();ui.task.PingTask.getInstance().delay(30000);Ext.getCmp("sys-update-win").tools.close.setVisible(true)};ui.task._SystemUpdateTask.poll_apply_tool=new Ext.util.DelayedTask(function(){XHR({params:{task:"checkLockFile",lockFile:"project_"+PhDOE.project+"_lock_apply_tools"},success:function(){ui.task._SystemUpdateTask.poll_apply_tool.delay(5000)},failure:function(c){var d=Ext.util.JSON.decode(c.responseText);if(d&&d.success===false){Ext.get("wizard-step-2").replaceClass("wizard-step-working","wizard-step-done");new ui.task._SystemUpdateTask.refresh_ui()}else{ui.task._SystemUpdateTask.poll_apply_tool.delay(5000)}}})});ui.task._SystemUpdateTask.apply_tool=function(){Ext.get("wizard-step-2").replaceClass("wizard-step-before","wizard-step-working");XHR({params:{task:"applyTools"},success:function(){Ext.get("wizard-step-2").replaceClass("wizard-step-working","wizard-step-done");new ui.task._SystemUpdateTask.refresh_ui()},failure:function(){ui.task._SystemUpdateTask.poll_apply_tool.delay(5000)}})};ui.task._SystemUpdateTask.vcs_poll=new Ext.util.DelayedTask(function(){XHR({params:{task:"checkLockFile",lockFile:"project_"+PhDOE.project+"_lock_update_repository"},success:function(){ui.task._SystemUpdateTask.vcs_poll.delay(5000)},failure:function(c){var d=Ext.util.JSON.decode(c.responseText);if(d&&d.success===false){Ext.get("wizard-step-1").replaceClass("wizard-step-working","wizard-step-done");Ext.get("wizard-step-1.1").replaceClass("wizard-show","wizard-wait");new ui.task._SystemUpdateTask.apply_tool()}else{ui.task._SystemUpdateTask.vcs_poll.delay(5000)}}})});ui.task.SystemUpdateTask=function(){ui.task.PingTask.getInstance().cancel();Ext.get("wizard-step-1").replaceClass("wizard-step-before","wizard-step-working");Ext.get("wizard-step-1.1").replaceClass("wizard-wait","wizard-show");XHR({params:{task:"updateRepository"},success:function(){Ext.get("wizard-step-1").replaceClass("wizard-step-working","wizard-step-done");Ext.get("wizard-step-1.1").replaceClass("wizard-show","wizard-wait");new ui.task._SystemUpdateTask.apply_tool()},failure:function(c){var d=Ext.util.JSON.decode(c.responseText);if(d&&d.success===false){Ext.getCmp("sys-update-win").close();PhDOE.winForbidden(d.type)}else{ui.task._SystemUpdateTask.vcs_poll.delay(5000)}}})};Ext.namespace("ui","ui.task");ui.task.UpdateConfTask=function(c){Ext.apply(this,c);XHR({scope:this,params:{task:"confUpdate",module:this.module,itemName:this.itemName,value:this.value},success:function(){PhDOE.user.conf[this.module][this.itemName]=this.value;if(this.module=="newFile"&&this.itemName=="nbDisplay"){ui.cmp.PendingTranslateGrid.getInstance().store.reload()}if(this.module=="needUpdate"&&this.itemName=="nbDisplay"){ui.cmp.StaleFileGrid.getInstance().store.reload()}if(this.module=="error"&&(this.itemName=="skipNbLiteralTag"||this.itemName=="nbDisplay")){ui.cmp.ErrorFileGrid.getInstance().store.reload()}if(this.module=="reviewed"&&this.itemName=="nbDisplay"){ui.cmp.PendingReviewGrid.getInstance().store.reload()}if(this.module=="main"&&this.itemName=="displayENWork"){ui.cmp.WorkTreeGrid.getInstance().getRootNode().reload(function(){ui.cmp.PatchesTreeGrid.getInstance().getRootNode().reload()})}if(this.notify!==false){PhDOE.notify("info",_("Option saved"),_("Option has been saved successfully !"))}}})};Ext.namespace("ui","ui.task","ui.task._UpdateSingleFolderTask");ui.task._UpdateSingleFolderTask.getUpdateFolderResponse=function(c){XHR({params:{task:"getUpdateFolderResponse"},success:function(d){var e=Ext.util.JSON.decode(d.responseText);ui.task._UpdateSingleFolderTask.afterUpdate(e,c)}})};ui.task._UpdateSingleFolderTask.poll=new Ext.util.DelayedTask(function(){var f=arguments[0],d=f.attributes.id.split("/"),c,e=new Array();d.shift();c=d[0];e.push(f);XHR({params:{task:"checkLockFile",lockFile:"project_"+PhDOE.project+"_"+c+"_lock_update_folder"},success:function(){ui.task._UpdateSingleFolderTask.poll.delay(5000,null,this,e)},failure:function(g){var h=Ext.util.JSON.decode(g.responseText);if(h&&h.success===false){new ui.task._UpdateSingleFolderTask.getUpdateFolderResponse(f)}else{ui.task._UpdateSingleFolderTask.poll.delay(5000,null,this,e)}}})});ui.task._UpdateSingleFolderTask.afterUpdate=function(e,d){Ext.getBody().unmask();ui.task.PingTask.getInstance().delay(30000);var c=Ext.util.JSON.decode(e.result);d.reload(function(){Ext.iterate(c.newFiles,function(g,f){d.findChild("text",g).getUI().addClass("treeFileUpdated")})},this);PhDOE.reloadAllStore()};ui.task._UpdateSingleFolderTask.update=function(d){var c=new Array();c.push(d);Ext.getBody().mask(' '+_("Please, wait until update this folder..."));ui.task.PingTask.getInstance().cancel();XHR({params:{task:"updateFolder",path:d.id},success:function(e){var f=Ext.util.JSON.decode(e.responseText);ui.task._UpdateSingleFolderTask.afterUpdate(f,d)},failure:function(e){var f=Ext.util.JSON.decode(e.responseText);if(f&&f.success===false){ui.task.PingTask.getInstance().delay(30000);Ext.getBody().unmask();PhDOE.winForbidden()}else{ui.task._UpdateSingleFolderTask.poll.delay(5000,null,this,c)}}})};ui.task.UpdateSingleFolderTask=function(c){if(!PhDOE.user.haveKarma){Ext.getCmp("winVCSCommit").close();PhDOE.winForbidden();return}ui.task._UpdateSingleFolderTask.update(c)};Ext.namespace("ui","ui.task","ui.task._VCSCommitTask");ui.task._VCSCommitTask.getCommitResponse=function(){XHR({params:{task:"getCommitResponse"},success:function(c){var d=Ext.util.JSON.decode(c.responseText);ui.task._VCSCommitTask.afterCommit(d.mess)}})};ui.task._VCSCommitTask.poll=new Ext.util.DelayedTask(function(){XHR({params:{task:"checkLockFile",lockFile:"project_"+PhDOE.project+"_lock_"+PhDOE.user.login+"_commit"},success:function(){ui.task._VCSCommitTask.poll.delay(5000)},failure:function(c){var d=Ext.util.JSON.decode(c.responseText);if(d&&d.success===false){new ui.task._VCSCommitTask.getCommitResponse()}else{ui.task._VCSCommitTask.poll.delay(5000)}}})});ui.task._VCSCommitTask.afterCommit=function(c){Ext.getBody().unmask();ui.task.PingTask.getInstance().delay(30000);new Ext.Window({title:_("Status"),width:450,height:350,resizable:false,modal:true,autoScroll:true,bodyStyle:"background-color: white; padding: 5px;",html:c.join(" "),buttons:[{text:_("Close"),handler:function(){this.ownerCt.ownerCt.close()}}]}).show();PhDOE.reloadAllStore()};ui.task._VCSCommitTask.commit=function(h,g){Ext.getBody().mask(' '+_("Please, wait until commit..."));var c=[],f,e,d;for(d=0;d0){for(h=0;h"}Ext.MessageBox.show({title:"Warning",icon:Ext.MessageBox.INFO,buttons:Ext.MessageBox.YESNOCANCEL,msg:(l.length>1)?String.format(_("There are {0} files to close before commit.
{1}
Would you like me to close them for you ?"),l.length,m):String.format(_("There is {0} file to close before commit.
{1}
Would you like me to close it for you ?"),l.length,m),fn:function(u){if(u==="yes"){for(var t=0;t'+PhDOE.app.name+'
"+_('You have opened a modified file from the "Patch for review" module. This file has been modified by an anonymous user.
Please choose one of the following actions:')},{boxLabel:_("Continue to modify this file"),name:"choice",inputValue:"continue",checked:true,listeners:{afterrender:function(){new Ext.ToolTip({title:_("Continue to modify this file"),target:"x-form-el-"+this.id,anchor:"right",html:" "+_("This action will open this file for modification. Once your modification finish, just save it and this file will be own by you."),width:250,autoHide:true})}}},{boxLabel:_("Reject this patch"),name:"choice",inputValue:"reject",listeners:{afterrender:function(){new Ext.ToolTip({title:_("Reject this patch"),target:"x-form-el-"+this.id,anchor:"right",html:" "+_("This action will close this file, and clear the local change. This file will return into his original version, as it is on VCS server."),width:250,autoHide:true})}}},{boxLabel:_("Validate this patch"),name:"choice",inputValue:"validate",listeners:{afterrender:function(){new Ext.ToolTip({title:_("Validate this patch"),target:"x-form-el-"+this.id,anchor:"right",html:" "+_("This action changes the owner of the modification and register it under your name. The file will appear under your name and you can then commit it."),width:250,autoHide:true})}}}]});ui.cmp._AnonymousPatchWin.form.superclass.initComponent.call(this)}});ui.cmp.AnonymousPatchWin=Ext.extend(Ext.Window,{id:"anonymous-patch-win",title:_("Anonymous patch manager"),iconCls:"iconPatch",width:450,height:250,layout:"fit",resizable:false,modal:true,autoScroll:true,closable:false,closeAction:"close",buttons:[{text:_("Next"),iconCls:"iconArrowRight",handler:function(){var d=this.ownerCt.ownerCt,c=d.items.items[0].getForm().getValues().choice;switch(c){case"continue":d.close();break;case"reject":ui.task.ClearLocalChangeTask({ftype:d.ftype,fpath:d.fpath,fname:d.fname,noConfirm:true});break;case"validate":ui.task.ChangeFileOwner({fileIdDB:d.fidDB,newOwnerID:PhDOE.user.userID,from:d,fromType:"tab"});break}}}],initComponent:function(){Ext.apply(this,{items:[new ui.cmp._AnonymousPatchWin.form({fpath:this.fpath,fname:this.fname})]});ui.cmp.AnonymousPatchWin.superclass.initComponent.call(this);this.show()}});Ext.namespace("ui","ui.cmp","ui.cmp._BuildStatus");ui.cmp._BuildStatus.display=function(c){Ext.apply(this,c);if(Ext.getCmp("main-panel").findById("last_failed_build_"+this.lang)){Ext.getCmp("main-panel").remove("last_failed_build_"+this.lang)}Ext.getCmp("main-panel").add({xtype:"panel",id:"last_failed_build_"+this.lang,title:String.format(_("Last failed build for {0}"),Ext.util.Format.uppercase(this.lang)),tabTip:String.format(_("Last failed build for the documentation {0}"),Ext.util.Format.uppercase(this.lang)),closable:true,autoScroll:true,iconCls:"iconCheckBuild",html:''});Ext.getCmp("main-panel").setActiveTab("last_failed_build_"+this.lang);Ext.getCmp("main-panel").el.mask(_("Please, wait..."));XHR({scope:this,params:{task:"getFailedBuildData",idFailedBuild:this.idFailedBuild},success:function(d){var e=Ext.decode(d.responseText),f=e.mess.join(" ");if(e.state==="truncate"){Ext.get("check-build-content").dom.innerHTML=f+'
'+_("This log is too large and have been truncated. Use the following button to download the full content of it.")+'
';new Ext.Button({scope:this,text:_("Download the full content of this log"),renderTo:"check-build-content-download-btn",style:{margin:"auto"},handler:function(){window.location.href="./do/downloadFailedBuildLog?idFailedBuild="+this.idFailedBuild+"&csrfToken="+csrfToken}})}else{Ext.get("check-build-content").dom.innerHTML=f}Ext.getCmp("main-panel").el.unmask()}})};ui.cmp._BuildStatus.ds=new Ext.data.Store({proxy:new Ext.data.HttpProxy({url:"./do/getFailedBuild"}),reader:new Ext.data.JsonReader({root:"Items",totalProperty:"nbItems",idProperty:"id",fields:[{name:"id"},{name:"lang"},{name:"date",type:"date",dateFormat:"Y-m-d H:i:s"}]})});ui.cmp._BuildStatus.ds.setDefaultSort("date","desc");ui.cmp._BuildStatus.rendererLanguage=function(d){var c={cs:"cz",sr:"rs",sv:"se"};return'
'+d+"
"};ui.cmp._BuildStatus.columns=[{id:"date",header:_("Date"),sortable:true,dataIndex:"date",renderer:Ext.util.Format.dateRenderer(_("Y-m-d, H:i"))},{header:_("Language"),width:45,sortable:true,dataIndex:"lang",renderer:ui.cmp._BuildStatus.rendererLanguage}];ui.cmp._BuildStatus.menu=Ext.extend(Ext.menu.Menu,{setRowIndex:function(c){this.rowIndex=c},initComponent:function(){Ext.apply(this,{items:[{scope:this,text:""+_("View in a new Tab")+"",iconCls:"iconOpenInTab",handler:function(){this.grid.fireEvent("rowdblclick",this.grid,this.rowIndex,this.event)}}]});ui.cmp._BuildStatus.menu.superclass.initComponent.call(this)}});ui.cmp.BuildStatus=Ext.extend(Ext.grid.GridPanel,{loadMask:true,bodyBorder:false,autoExpandColumn:"date",store:ui.cmp._BuildStatus.ds,columns:ui.cmp._BuildStatus.columns,view:new Ext.grid.GridView({forceFit:true}),listeners:{render:function(){this.store.load.defer(20,this.store)}},onRowdblclick:function(c,g,f){var d=this.store.getAt(g);new ui.cmp._BuildStatus.display({idFailedBuild:d.id,lang:d.data.lang})},onRowContextMenu:function(c,f,d){if(!this.menu){this.menu=new ui.cmp._BuildStatus.menu({grid:c,rowIdx:"",event:d})}d.stopEvent();this.getSelectionModel().selectRow(f);this.menu.setRowIndex(f);this.menu.showAt(d.getXY())},initComponent:function(c){ui.cmp.BuildStatus.superclass.initComponent.call(this);Ext.apply(this,c);this.on("rowdblclick",this.onRowdblclick,this);this.on("rowcontextmenu",this.onRowContextMenu,this)}});Ext.namespace("ui","ui.cmp","ui.cmp._ChangeFileOwner");ui.cmp._ChangeFileOwner.store=new Ext.data.Store({proxy:new Ext.data.HttpProxy({url:"./do/getVCSUsers"}),reader:new Ext.data.JsonReader({root:"Items",totalProperty:"nbItems",fields:[{name:"userID"},{name:"authService"},{name:"userName"}]}),sortInfo:{field:"authService",direction:"ASC"}});ui.cmp.ChangeFileOwner=Ext.extend(Ext.Window,{title:_("Change file's owner"),iconCls:"iconSwitchLang",width:550,height:255,layout:"form",resizable:false,modal:true,autoScroll:true,closeAction:"close",padding:10,buttons:[{text:_("Save"),handler:function(){var d=this.ownerCt.ownerCt,c=d.items.items[1].items.items[0].getValue();new ui.task.ChangeFileOwner({fileIdDB:d.fileIdDB,newOwnerID:c,from:d})}},{text:_("Close"),handler:function(){var c=this.ownerCt.ownerCt;c.close()}}],initComponent:function(){var c=this;Ext.apply(this,{defaults:{labelWidth:120},items:[{xtype:"fieldset",title:_("Information"),iconCls:"iconInfo",width:515,items:[{xtype:"displayfield",fieldLabel:_("File"),value:this.fileFolder+this.fileName},{xtype:"displayfield",fieldLabel:_("Current owner"),value:this.currentOwner}]},{xtype:"fieldset",title:_("Action"),iconCls:"iconSwitchLang",width:515,items:[{xtype:"combo",name:"newOwner",fieldLabel:_("New owner"),editable:false,store:ui.cmp._ChangeFileOwner.store,triggerAction:"all",valueField:"userID",tpl:new Ext.XTemplate('
',"{authService} - {userName}","
"),displayField:"userName",listeners:{afterrender:function(d){d.store.load({callback:function(){d.setValue(PhDOE.user.userID)}})}}}]}]});ui.cmp.ChangeFileOwner.superclass.initComponent.call(this);this.show()}});Ext.namespace("ui","ui.cmp");ui.cmp.Chat=Ext.extend(Ext.Window,{id:"win-chat",iconCls:"iconChat",layout:"fit",width:800,height:600,modal:true,plain:true,bodyStyle:"color:#000",closeAction:"hide",initComponent:function(){var c=PhDOE.user.login;if(PhDOE.user.isAnonymous){c="an%3F%3F%3F"}Ext.apply(this,{title:_("Chat with us on IRC !"),items:[new Ext.ux.IFrameComponent({id:"frame-win-chat",url:"https://widget.mibbit.com/?settings=8eec4034df2eb666b0600bdfe151529a&server=irc.umich.edu&channel=%23php.doc&nick=poe_"+c})]});ui.cmp.Chat.superclass.initComponent.call(this)}});Ext.namespace("ui","ui.cmp");ui.cmp.CheckBuildPrompt=Ext.extend(Ext.Window,{title:_("Check build"),iconCls:"iconCheckBuild",layout:"form",width:350,height:200,resizable:false,modal:true,bodyStyle:"padding:5px 5px 0",labelAlign:"top",buttons:[{id:"win-check-build-btn-submit",text:_("Go !"),handler:function(){new ui.task.CheckBuildTask();this.ownerCt.ownerCt.close()}}],initComponent:function(){Ext.apply(this,{items:[{xtype:"panel",modal:false,baseCls:"x-plain",bodyStyle:"padding:5px 5px 0",html:_("You're about to check the build via this command:")+"
'+_("WARNING ! This option use a lot of server ressource. If you don't know what are the consequence, please, don't use it.")+"
"},{xtype:"checkbox",id:"option-xml-details",name:"option-xml-details",checked:false,hideLabel:true,boxLabel:_("Enable detailed XML error messages"),listeners:{check:function(e,d){Ext.get("option-xml-details-span").dom.style.visibility=(d)?"visible":"hidden";Ext.get("option-xml-details-div").dom.style.visibility=(d)?"visible":"hidden"}}}]});ui.cmp.CheckBuildPrompt.superclass.initComponent.call(this)}});Ext.namespace("ui","ui.cmp","ui.cmp._CheckDoc");ui.cmp._CheckDoc.ds=new Ext.data.Store({proxy:new Ext.data.HttpProxy({url:"./do/getCheckDocData"}),reader:new Ext.data.JsonReader({root:"Items",totalProperty:"nbItems",idProperty:"id",fields:[{name:"id"},{name:"path"},{name:"extension"},{name:"check_oldstyle",type:"int"},{name:"check_undoc",type:"int"},{name:"check_roleerror",type:"int"},{name:"check_badorder",type:"int"},{name:"check_noseealso",type:"int"},{name:"check_noreturnvalues",type:"int"},{name:"check_noparameters",type:"int"},{name:"check_noexamples",type:"int"},{name:"check_noerrors",type:"int"}]})});ui.cmp._CheckDoc.ds.setDefaultSort("extension","asc");ui.cmp._CheckDoc.renderer=function(d,c){if(d>0){c.css="check_doc_cell";c.attr="ext:qtip=\" "+_("Double-click the cell to open the file selection")+'"';return d}else{return}};ui.cmp._CheckDoc.columns=[new Ext.grid.RowNumberer(),{id:"extension",header:_("Extension"),sortable:true,dataIndex:"extension"},{header:_("Not documented"),width:45,sortable:true,dataIndex:"check_undoc",renderer:ui.cmp._CheckDoc.renderer},{header:_("Old style"),width:45,sortable:true,dataIndex:"check_oldstyle",renderer:ui.cmp._CheckDoc.renderer},{header:_("Bad refsect1 order"),width:45,sortable:true,dataIndex:"check_badorder",renderer:ui.cmp._CheckDoc.renderer},{header:_("No parameters"),width:45,sortable:true,dataIndex:"check_noparameters",renderer:ui.cmp._CheckDoc.renderer},{header:_("No return values"),width:45,sortable:true,dataIndex:"check_noreturnvalues",renderer:ui.cmp._CheckDoc.renderer},{header:_("No examples"),width:45,sortable:true,dataIndex:"check_noexamples",renderer:ui.cmp._CheckDoc.renderer},{header:_("No errors section"),width:45,sortable:true,dataIndex:"check_noerrors",renderer:ui.cmp._CheckDoc.renderer},{header:_("No see also"),width:45,sortable:true,dataIndex:"check_noseealso",renderer:ui.cmp._CheckDoc.renderer},{header:_("Refsect1 role error"),width:45,sortable:true,dataIndex:"check_roleerror",renderer:ui.cmp._CheckDoc.renderer}];ui.cmp._CheckDoc.fs=new Ext.data.SimpleStore({fields:[{name:"id"},{name:"file"}]});ui.cmp._CheckDoc.FileGrid=Ext.extend(Ext.grid.GridPanel,{id:"check-doc-file-grid",store:ui.cmp._CheckDoc.fs,loadMask:true,bodyBorder:false,autoExpandColumn:"file",sm:new Ext.grid.RowSelectionModel({}),columns:[new Ext.grid.RowNumberer(),{id:"file",header:_("Files"),sortable:true,dataIndex:"file"}],onRowClick:function(){Ext.getCmp("check-doc-btn-open-selected-files").enable()},onRowContextMenu:function(c,f,d){d.stopEvent();c.getSelectionModel().selectRow(f)},onRowDblClick:function(c,d){ui.cmp.RepositoryTree.getInstance().openFile("byPath","en"+c.fpath,c.store.getAt(d).data.file);Ext.getCmp("check-doc-file-win").close()},initComponent:function(c){ui.cmp._CheckDoc.FileGrid.superclass.initComponent.call(this);Ext.apply(this,c);this.on("rowcontextmenu",this.onRowContextMenu,this);this.on("rowdblclick",this.onRowDblClick,this);this.on("rowclick",this.onRowClick,this)}});ui.cmp._CheckDoc.FileWin=Ext.extend(Ext.Window,{id:"check-doc-file-win",title:_("Files"),width:450,height:350,labelWidth:50,resizable:false,modal:true,autoScroll:true,layout:"fit",iconCls:"iconFiles",buttons:[{text:_("Open all files"),handler:function(){var e=Ext.getCmp("check-doc-file-win"),c=ui.cmp._CheckDoc.fs,d;PhDOE.AFfilePendingOpen=[];for(d=0;d"+_("Open in a new Tab")+"",iconCls:"iconOpenInTab",handler:function(){this.openTab(this.ctxRowIndex);this.menu.hide()}}]})}this.getSelectionModel().selectRow(f);d.stopEvent();if(this.ctxRowIndex){this.ctxRowIndex=null}this.ctxRowIndex=f;this.menu.showAt(d.getXY())},initComponent:function(c){this.tbar=[{xtype:"label",text:_("Status: ")},{xtype:"combo",typeAhead:true,triggerAction:"all",lazyRender:true,mode:"local",store:new Ext.data.ArrayStore({id:0,fields:["myId","displayText"],data:[["all",_("All status")],["FTP_CONNECT","FTP_CONNECT"],["FTP_LOGIN","FTP_LOGIN"],["FTP_NO_FILE","FTP_NO_FILE"],["HTTP_CONNECT","HTTP_CONNECT"],["HTTP_INTERNAL_ERROR","HTTP_INTERNAL_ERROR"],["HTTP_NOT_FOUND","HTTP_NOT_FOUND"],["HTTP_MOVED","HTTP_MOVED"],["HTTP_WRONG_HEADER","HTTP_WRONG_HEADER"],["SUCCESS","SUCCESS"],["UNKNOWN_HOST","UNKNOWN_HOST"]]}),value:"all",valueField:"myId",displayField:"displayText",editable:false,listeners:{select:function(f,d){var e=d.id;if(e==="all"){Ext.getCmp("check-entities-grid").store.clearFilter()}else{Ext.getCmp("check-entities-grid").store.filter("result",d.id)}}}}];ui.cmp.CheckEntities.superclass.initComponent.call(this);Ext.apply(this,c);this.on("rowcontextmenu",this.onContextClick,this);this.on("rowdblclick",this.onRowdblclick,this)}});Ext.namespace("ui","ui.cmp");ui.cmp.CheckEntitiesPrompt=Ext.extend(Ext.Window,{title:_("Check entities"),iconCls:"iconRun",id:"win-check-entities",layout:"fit",width:250,height:140,resizable:false,modal:true,bodyStyle:"padding:5px 5px 0; text-align: center;",labelAlign:"top",closeAction:"hide",buttons:[{id:"win-check-entities-btn",text:_("Go !"),handler:function(){new ui.task.CheckEntitiesTask();Ext.getCmp("win-check-entities").hide()}}],initComponent:function(){Ext.apply(this,{items:[{xtype:"panel",modal:false,baseCls:"x-plain",bodyStyle:"padding:5px 5px 0",html:_("You're about to check all entities.
This action takes time.")}]});ui.cmp.CheckEntitiesPrompt.superclass.initComponent.call(this)}});Ext.namespace("ui","ui.cmp");ui.cmp.CheckXmlWin=Ext.extend(Ext.Window,{title:_("XML Errors"),iconCls:"iconXml",width:650,height:350,layout:"fit",resizable:false,modal:true,autoScroll:true,closeAction:"close",buttons:[{text:_("Close"),handler:function(){this.ownerCt.ownerCt.close()}}],store:new Ext.data.JsonStore({root:"Items",totalProperty:"nbItems",fields:[{name:"line"},{name:"libel"}]}),addErrorsInStore:function(){var c=Ext.data.Record.create({name:"line"},{name:"libel"});this.store.removeAll();for(i=0;i"+Ext.util.Format.htmlEncode(this.errors[i].ctx1)}))}this.store.sort("line","desc")},initComponent:function(){Ext.apply(this,{items:[{xtype:"grid",store:this.store,loadMask:true,autoExpandColumn:"libel_id",colModel:new Ext.grid.ColumnModel([{header:_("Line"),dataIndex:"line",sortable:true},{id:"libel_id",header:_("Libel"),dataIndex:"libel"}]),sm:new Ext.grid.RowSelectionModel({singleSelect:true})}]});ui.cmp.CheckXmlWin.superclass.initComponent.call(this);this.addErrorsInStore();this.show()}});Ext.namespace("ui","ui.cmp","ui.cmp._CommitLogManager");ui.cmp._CommitLogManager.store=new Ext.data.Store({proxy:new Ext.data.HttpProxy({url:"./do/getCommitLogMessage"}),reader:new Ext.data.JsonReader({root:"Items",totalProperty:"nbItems",idProperty:"id",fields:[{name:"id"},{name:"text"}]})});ui.cmp._CommitLogManager.editor=new Ext.ux.grid.RowEditor({saveText:_("Update"),cancelText:_("Cancel"),listeners:{afteredit:function(e,d,c){XHR({params:{task:"saveLogMessage",messID:c.data.id,mess:c.data.text},success:function(){c.commit();PhDOE.notify("info",_("Message updated"),_("Log Message was updated successfully !"))},failure:function(){PhDOE.winForbidden()}})}}});ui.cmp._CommitLogManager.cm=new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(),{id:"log_msg",header:_("Log message"),dataIndex:"text",editor:{xtype:"textarea"},renderer:function(c){return c.split("\n").join(" ")}}]);ui.cmp._CommitLogManager.sm=new Ext.grid.RowSelectionModel({singleSelect:true});ui.cmp._CommitLogManager.menu=Ext.extend(Ext.menu.Menu,{setRowIdx:function(c){this.rowIdx=c},initComponent:function(){Ext.apply(this,{items:[{scope:this,text:_("Delete this Log Message"),iconCls:"iconTrash",handler:function(){XHR({scope:this,params:{task:"deleteLogMessage",messID:ui.cmp._CommitLogManager.store.getAt(this.rowIdx).data.id},success:function(){ui.cmp._CommitLogManager.store.remove(ui.cmp._CommitLogManager.store.getAt(this.rowIdx));PhDOE.notify("info",_("Message deleted"),_("Log Message was deleted successfully !"))},failure:function(){PhDOE.winForbidden()}})}}]});ui.cmp._CommitLogManager.menu.superclass.initComponent.call(this)}});ui.cmp._CommitLogManager.grid=Ext.extend(Ext.grid.GridPanel,{loadMask:true,autoExpandColumn:"log_msg",cm:ui.cmp._CommitLogManager.cm,sm:ui.cmp._CommitLogManager.sm,store:ui.cmp._CommitLogManager.store,plugins:[ui.cmp._CommitLogManager.editor],viewConfig:{emptyText:'
",listeners:{select:function(e,d){Ext.getCmp("form-commit-message-log").setValue(d.data.text)}}},{xtype:"textarea",id:"form-commit-message-log",name:"first3",fieldLabel:_("Log message"),anchor:"100%",height:150,value:(this.defaultMessage)?this.defaultMessage:""}]});ui.cmp.CommitPrompt.superclass.initComponent.call(this)}});Ext.namespace("ui","ui.cmp","ui.cmp._DictionaryGrid");ui.cmp._DictionaryGrid.store=Ext.extend(Ext.data.Store,{proxy:new Ext.data.HttpProxy({url:"./do/getDictionaryWords"}),reader:new Ext.data.JsonReader({root:"Items",totalProperty:"nbItems",idProperty:"id",fields:[{name:"id"},{name:"valueEn"},{name:"valueLang"},{name:"lastUser",hideField:true},{name:"lastDate",type:"date",dateFormat:"Y-m-d H:i:s",hideField:true}]}),sortInfo:{field:"valueEn",direction:"ASC"},listeners:{load:function(){if(!PhDOE.user.isAnonymous){Ext.getCmp(this.fid+"-btn-new-word").enable()}}},initComponent:function(c){Ext.apply(this,c);ui.cmp._DictionaryGrid.store.superclass.initComponent.call(this)}});ui.cmp._DictionaryGrid.editor=Ext.extend(Ext.ux.grid.RowEditor,{saveText:_("Update"),cancelText:_("Cancel"),listeners:{afteredit:function(e,d,c,f){XHR({params:{task:"manageDictionaryWord",wordId:c.data.id,valueEn:c.data.valueEn,valueLang:c.data.valueLang},success:function(g){var h=Ext.util.JSON.decode(g.responseText);c.set("lastUser",PhDOE.user.login);c.set("lastDate",Date.parseDate(h.dateUpdate,"Y-m-d H:i:s"));c.commit();PhDOE.notify("info",_("Word in dictionary added/updated"),_("The word have been added/updated successfully !"))},failure:function(){PhDOE.winForbidden()}})},canceledit:function(c){if(c.record.data.id==="new"){c.record.store.remove(c.record)}}}});ui.cmp._DictionaryGrid.sm=Ext.extend(Ext.grid.RowSelectionModel,{singleSelect:true});ui.cmp._DictionaryGrid.viewConfig={forceFit:true,emptyText:'
'+_("You must manually load this data. Use the refresh button !")+"
",deferEmptyText:false};ui.cmp._DictionaryGrid.menu=Ext.extend(Ext.menu.Menu,{setRowIdx:function(c){this.rowIdx=c},initComponent:function(){Ext.apply(this,{items:[{scope:this,text:_("Delete this word"),iconCls:"iconTrash",disabled:(PhDOE.user.isAnonymous),handler:function(){XHR({scope:this,params:{task:"delDictionaryWord",wordId:this.grid.store.getAt(this.rowIdx).data.id},success:function(){this.grid.store.remove(this.grid.store.getAt(this.rowIdx));PhDOE.notify("info",_("Word deleted"),_("The word was deleted successfully !"))},failure:function(){PhDOE.winForbidden()}})}}]});ui.cmp._DictionaryGrid.menu.superclass.initComponent.call(this)}});ui.cmp._DictionaryGrid.grid=Ext.extend(Ext.grid.GridPanel,{onRowContextMenu:function(c,f,d){d.stopEvent();this.getSelectionModel().selectRow(f);if(!this.menu){this.menu=new ui.cmp._DictionaryGrid.menu({grid:c})}this.menu.setRowIdx(f);this.menu.showAt(d.getXY())},initComponent:function(){Ext.apply(this,{region:"center",split:true,loadMask:true,autoScroll:true,bodyBorder:false,border:false,autoExpandColumn:this.dataType,columns:[{id:"id",header:_("En word"),sortable:true,dataIndex:"valueEn",editor:{xtype:"textfield"}},{header:String.format(_("{0} word"),PhDOE.user.lang.ucFirst()),sortable:true,dataIndex:"valueLang",editor:{xtype:"textfield"}},{header:_("Last User Update"),sortable:true,dataIndex:"lastUser",editor:{xtype:"displayfield",hideField:true}},{header:_("Last Date Update"),sortable:true,dataIndex:"lastDate",editor:{xtype:"displayfield",hideField:true},renderer:Ext.util.Format.dateRenderer(_("Y-m-d, H:i"))}],viewConfig:ui.cmp._DictionaryGrid.viewConfig,sm:new ui.cmp._DictionaryGrid.sm(),store:new ui.cmp._DictionaryGrid.store({fid:this.fid}),plugins:[new ui.cmp._DictionaryGrid.editor()],tbar:[{scope:this,tooltip:_("Load/Refresh"),iconCls:"iconRefresh",handler:function(){this.store.reload()}},"->",{scope:this,id:this.fid+"-btn-new-word",disabled:true,text:_("Add a new word"),iconCls:"iconNewWord",handler:function(){var c=Ext.data.Record.create([{name:"id"},{name:"valueEn"},{name:"valueLang"},{name:"lastUser"},{name:"lastDate"}]),d=new Date(),f=new c({id:"new",valueEn:"",valueLang:"",lastUser:PhDOE.user.login,lastDate:d});this.plugins[0].stopEditing();this.store.insert(0,f);this.getView().refresh();this.getSelectionModel().selectRow(0);this.plugins[0].startEditing(0)}}]});ui.cmp._DictionaryGrid.grid.superclass.initComponent.call(this);this.on("rowcontextmenu",this.onRowContextMenu,this)}});ui.cmp.DictionaryGrid=Ext.extend(Ext.Panel,{initComponent:function(){Ext.apply(this,{layout:"border",border:false,items:[new ui.cmp._DictionaryGrid.grid({dataType:this.dataType,prefix:this.prefix,fid:this.fid,ftype:this.ftype,loadStore:this.loadStore})]});ui.cmp.DictionaryGrid.superclass.initComponent.call(this)}});Ext.namespace("ui","ui.cmp","ui.cmp._EditorConf","ui.cmp._EditorCmd2Conf");ui.cmp._EditorConf.tplMenu=new Ext.XTemplate('','
','',"{label}","
","");ui.cmp._EditorConf.tplMenu.compile();ui.cmp._EditorConf.menuDefEn=[["1","card1",_("Main")],["4","card4",_('Module "Files with error"')],["6","card6",_('Module "All files"')]];ui.cmp._EditorConf.menuDefNonEn=[["1","card1",_("Main")],["2","card2",_('Module "Files need translate"')],["3","card3",_('Module "Files need update"')],["4","card4",_('Module "Files with error"')],["5","card5",_('Module "Files need reviewed"')],["6","card6",_('Module "All files"')]];ui.cmp._EditorConf.menuStore=new Ext.data.SimpleStore({id:0,fields:[{name:"id"},{name:"card"},{name:"label"}]});ui.cmp._EditorConf.viewMenu=Ext.extend(Ext.DataView,{id:"conf-menu-view",tpl:ui.cmp._EditorConf.tplMenu,singleSelect:true,overClass:"x-view-over",itemSelector:"div.menu-wrap",store:ui.cmp._EditorConf.menuStore,listeners:{selectionchange:function(c){var d=c.getSelectedRecords();Ext.getCmp("confCard").layout.setActiveItem("conf-card-"+d[0].data.id)}}});ui.cmp._EditorCmd2Conf.themeStore=new Ext.data.SimpleStore({fields:["themeFile",{name:"themeName",type:"string"}],data:[[false,_("No theme")],["default",_("Default theme")],["cobalt",_("Cobalt")],["eclipse",_("Eclipse")],["elegant",_("Elegant")],["monokai",_("Monokai")],["neat",_("Neat")],["night",_("Night")],["rubyblue",_("RubyBlue")]]});ui.cmp._EditorConf.themeStore=new Ext.data.SimpleStore({fields:["themeFile",{name:"themeName",type:"string"}],data:[["themes/ExtJsThemes/black/css/xtheme-black.css",_("Black")],["themes/empty.css",_("Default")],["themes/ExtJsThemes/darkgray/css/xtheme-darkgray.css",_("DarkGray")],["js/ExtJs/resources/css/xtheme-gray.css",_("Gray")],["themes/ExtJsThemes/gray-extend/css/xtheme-gray-extend.css",_("Gray Extend")],["themes/ExtJsThemes/indigo/css/xtheme-indigo.css",_("Indigo")],["themes/ExtJsThemes/midnight/css/xtheme-midnight.css",_("Midnight")],["themes/ExtJsThemes/olive/css/xtheme-olive.css",_("Olive")],["themes/ExtJsThemes/purple/css/xtheme-purple.css",_("Purple")],["themes/ExtJsThemes/silverCherry/css/xtheme-silverCherry.css",_("SilverCherry")],["themes/ExtJsThemes/ubuntu_human/css/xtheme-human.css",_("Ubuntu Human")]]});ui.cmp._EditorConf.uiLangStore=new Ext.data.SimpleStore({fields:["uiLang",{name:"uiLangName",type:"string"}],data:[["default",_("Default language, if available")],["en",_("English")],["fr",_("French")],["ru",_("Russian")],["es",_("Spanish")],["ar",_("Arabic")]]});ui.cmp._EditorConf.CommitChange=new Ext.util.DelayedTask(function(){new ui.task.UpdateConfTask({module:this.module,itemName:this.itemName,value:this.getValue()})});ui.cmp._EditorConf.card1=Ext.extend(Ext.TabPanel,{id:"conf-card-1",autoScroll:true,activeTab:0,defaults:{bodyStyle:"padding: 5px;",autoHeight:true,autoScroll:true},initComponent:function(){Ext.apply(this,{items:[{title:_("User Interface"),iconCls:"iconUI",labelAlign:"top",layout:"form",items:[{xtype:"fieldset",title:_("Main menu"),iconCls:"iconMenu",items:[{xtype:"spinnerfield",width:60,name:"PhDOE.user.conf.main.mainMenuWidth",module:"main",itemName:"mainMenuWidth",value:PhDOE.user.conf.main.mainMenuWidth||300,fieldLabel:_("Main menu width"),minValue:0,maxValue:10000,accelerate:true,enableKeyEvents:true,listeners:{keyup:function(){var c=Ext.getCmp("main-menu-panel"),d=this.getValue();PhDOE.user.conf.main.mainMenuWidth=d;c.setWidth(d);c.ownerCt.doLayout();ui.cmp._EditorConf.CommitChange.delay(1000,null,this)},spin:function(){var c=Ext.getCmp("main-menu-panel"),d=this.getValue();PhDOE.user.conf.main.mainMenuWidth=d;c.setWidth(d);c.ownerCt.doLayout();ui.cmp._EditorConf.CommitChange.delay(1000,null,this)}}}]},{xtype:"fieldset",iconCls:"iconThemes",title:_("Appearance"),items:[{xtype:"combo",fieldLabel:_("Choose a theme"),id:"conf-combo-theme",valueField:"themeFile",displayField:"themeName",triggerAction:"all",mode:"local",forceSelection:true,editable:false,value:PhDOE.user.conf.main.theme,store:ui.cmp._EditorConf.themeStore,listeners:{render:function(){Ext.getCmp("conf-combo-theme").store.sort("themeName")},select:function(e){var d=e.getValue();Ext.get("appTheme").dom.href=d;new ui.task.UpdateConfTask({module:"main",itemName:"theme",value:d})}}},{xtype:"combo",fieldLabel:_("Force an UI language"),id:"conf-combo-ui-lang",valueField:"uiLang",displayField:"uiLangName",triggerAction:"all",mode:"local",forceSelection:true,editable:false,value:PhDOE.user.conf.main.uiLang||"default",store:ui.cmp._EditorConf.uiLangStore,listeners:{select:function(e){var d=e.getValue();new ui.task.UpdateConfTask({module:"main",itemName:"uiLang",value:d})}}}]},{xtype:"fieldset",title:_("On save file"),iconCls:"iconSaveFile",autoHeight:true,defaults:{hideLabel:true},defaultType:"radio",items:[{autoHeight:true,name:"PhDOE.user.conf.main.onSaveFile",module:"main",itemName:"onSaveFile",checked:(PhDOE.user.conf.main.onSaveFile==="ask-me")?true:false,boxLabel:_("Ask me if I want to check for error before saving the file"),inputValue:"ask-me",listeners:{check:function(c){if(c.checked){new ui.task.UpdateConfTask({module:"main",itemName:"onSaveFile",value:c.getRawValue()})}}}},{autoHeight:true,name:"PhDOE.user.conf.main.onSaveFile",module:"main",itemName:"onSaveFile",checked:(PhDOE.user.conf.main.onSaveFile==="always")?true:false,boxLabel:_("Always check for error before saving the file"),inputValue:"always",listeners:{check:function(c){if(c.checked){new ui.task.UpdateConfTask({module:"main",itemName:"onSaveFile",value:c.getRawValue()})}}}},{autoHeight:true,name:"PhDOE.user.conf.main.onSaveFile",module:"main",itemName:"onSaveFile",checked:(PhDOE.user.conf.main.onSaveFile==="never")?true:false,boxLabel:_("Never check for error before saving the file"),inputValue:"never",listeners:{check:function(c){if(c.checked){new ui.task.UpdateConfTask({module:"main",itemName:"onSaveFile",value:c.getRawValue()})}}}}]},{xtype:"checkbox",name:"PhDOE.user.conf.main.displayENWork",checked:PhDOE.user.conf.main.displayENWork,boxLabel:_('Display EN work in "Work in progress" & "Patches for review" modules'),listeners:{check:function(c){new ui.task.UpdateConfTask({module:"main",itemName:"displayENWork",value:c.getValue()})}}}]},{title:_("External Data"),iconCls:"iconExternalData",items:[{xtype:"fieldset",title:_("About mails"),iconCls:"iconMailing",defaults:{hideLabel:true},defaultType:"checkbox",items:[{autoHeight:true,name:"PhDOE.user.conf.main.loadMailsAtStartUp",checked:PhDOE.user.conf.main.loadMailsAtStartUp,boxLabel:_("Load mail at startUp"),listeners:{check:function(c){new ui.task.UpdateConfTask({module:"main",itemName:"loadMailsAtStartUp",value:c.getValue()})}}}]},{xtype:"fieldset",title:_("About bugs"),iconCls:"iconBugs",defaults:{hideLabel:true},defaultType:"checkbox",items:[{autoHeight:true,name:"PhDOE.user.conf.main.loadBugsAtStartUp",checked:PhDOE.user.conf.main.loadBugsAtStartUp,boxLabel:_("Load bugs at startUp"),listeners:{check:function(c){new ui.task.UpdateConfTask({module:"main",itemName:"loadBugsAtStartUp",value:c.getValue()})}}}]}]},{title:_("Editor"),iconCls:"iconEditor",items:[{xtype:"fieldset",title:_("Editor theme"),iconCls:"iconThemes",items:[{xtype:"combo",fieldLabel:_("Choose a theme"),id:"conf-combo-cm2-theme",valueField:"themeFile",displayField:"themeName",triggerAction:"all",mode:"local",forceSelection:true,editable:false,value:(PhDOE.user.conf.main.editorTheme||"default"),store:ui.cmp._EditorCmd2Conf.themeStore,listeners:{select:function(e){var d=e.getValue();new ui.task.UpdateConfTask({module:"main",itemName:"editorTheme",value:d})}}}]}]}]});ui.cmp._EditorConf.card1.superclass.initComponent.call(this)}});ui.cmp._EditorConf.card2=Ext.extend(Ext.TabPanel,{id:"conf-card-2",autoScroll:true,activeTab:0,defaults:{bodyStyle:"padding: 5px;",autoHeight:true,autoScroll:true},initComponent:function(){Ext.apply(this,{items:[{title:_("Menu"),iconCls:"iconMenu",items:[{xtype:"fieldset",title:_("Nb files to display"),iconCls:"iconFilesToDisplay",defaults:{hideLabel:true},items:[{xtype:"spinnerfield",width:60,name:"PhDOE.user.conf.newFile.nbDisplay",module:"newFile",itemName:"nbDisplay",value:PhDOE.user.conf.newFile.nbDisplay||0,boxLabel:_("files to display"),minValue:0,maxValue:10000,accelerate:true,enableKeyEvents:true,listeners:{keyup:function(){ui.cmp._EditorConf.CommitChange.delay(1000,null,this)},spin:function(){ui.cmp._EditorConf.CommitChange.delay(1000,null,this)}}},{xtype:"displayfield",value:_("0 means no limit"),style:{fontStyle:"italic"}}]}]},{title:_("User Interface"),iconCls:"iconUI",items:[{xtype:"fieldset",title:_("ScrollBars"),iconCls:"iconScrollBar",defaults:{hideLabel:true},defaultType:"checkbox",items:[{name:"PhDOE.user.conf.newFile.syncScrollbars",checked:PhDOE.user.conf.newFile.syncScrollbars,boxLabel:_("Synchronize scroll bars"),listeners:{check:function(c){new ui.task.UpdateConfTask({module:"newFile",itemName:"syncScrollbars",value:c.getValue()})}}}]},{xtype:"fieldset",title:_("Tools"),iconCls:"iconConf",defaults:{hideLabel:true},defaultType:"checkbox",items:[{xtype:"fieldset",checkboxToggle:true,collapsed:!PhDOE.user.conf.newFile.toolsPanelDisplay,title:_("Start with the panel open"),listeners:{collapse:function(){new ui.task.UpdateConfTask({module:"newFile",itemName:"toolsPanelDisplay",value:false})},expand:function(){new ui.task.UpdateConfTask({module:"newFile",itemName:"toolsPanelDisplay",value:true})}},items:[{xtype:"spinnerfield",width:60,name:"newFile.toolsPanelWidth",module:"newFile",itemName:"toolsPanelWidth",value:PhDOE.user.conf.newFile.toolsPanelWidth||375,fieldLabel:_("Panel width"),minValue:0,maxValue:10000,accelerate:true,enableKeyEvents:true,listeners:{keyup:function(){ui.cmp._EditorConf.CommitChange.delay(1000,null,this)},spin:function(){ui.cmp._EditorConf.CommitChange.delay(1000,null,this)}}}]}]},{xtype:"fieldset",title:_("Right panel"),iconCls:"iconUI",defaults:{hideLabel:true},defaultType:"radio",items:[{name:"PhDOE.user.conf.newFile.secondPanel",boxLabel:_("Display the original file"),inputValue:"originalFile",checked:(PhDOE.user.conf.newFile.secondPanel==="originalFile")?true:false,listeners:{check:function(c){if(c.checked){new ui.task.UpdateConfTask({module:"newFile",itemName:"secondPanel",value:c.getRawValue()})}}}},{name:"PhDOE.user.conf.newFile.secondPanel",boxLabel:_("Do not display a right panel"),inputValue:"none",checked:(!Ext.isDefined(PhDOE.user.conf.newFile.secondPanel)||PhDOE.user.conf.newFile.secondPanel==="none")?true:false,listeners:{check:function(c){if(c.checked){new ui.task.UpdateConfTask({module:"newFile",itemName:"secondPanel",value:c.getRawValue()})}}}}]}]}]});ui.cmp._EditorConf.card2.superclass.initComponent.call(this)}});ui.cmp._EditorConf.card3=Ext.extend(Ext.TabPanel,{id:"conf-card-3",autoScroll:true,activeTab:0,defaults:{bodyStyle:"padding: 5px;",autoHeight:true,autoScroll:true},initComponent:function(){Ext.apply(this,{items:[{title:_("Menu"),iconCls:"iconMenu",items:[{xtype:"fieldset",title:_("Nb files to display"),iconCls:"iconFilesToDisplay",defaults:{hideLabel:true},defaultType:"spinnerfield",items:[{width:60,name:"PhDOE.user.conf.needUpdate.nbDisplay",module:"needUpdate",itemName:"nbDisplay",value:PhDOE.user.conf.needUpdate.nbDisplay||0,boxLabel:_("files to display"),minValue:0,maxValue:10000,accelerate:true,enableKeyEvents:true,listeners:{keyup:function(){ui.cmp._EditorConf.CommitChange.delay(1000,null,this)},spin:function(){ui.cmp._EditorConf.CommitChange.delay(1000,null,this)}}},{xtype:"displayfield",value:_("0 means no limit"),style:{fontStyle:"italic"}}]}]},{title:_("User Interface"),iconCls:"iconUI",items:[{xtype:"fieldset",title:_("ScrollBars"),iconCls:"iconScrollBar",defaults:{hideLabel:true},defaultType:"checkbox",items:[{name:"needUpdate.syncScrollbars",checked:PhDOE.user.conf.needUpdate.syncScrollbars,boxLabel:_("Synchronize scroll bars"),listeners:{check:function(c){new ui.task.UpdateConfTask({module:"needUpdate",itemName:"syncScrollbars",value:c.getValue()})}}}]},{xtype:"fieldset",title:_("Tools"),iconCls:"iconConf",defaults:{hideLabel:true},defaultType:"checkbox",items:[{name:"needUpdate.toolsPanelLogLoad",checked:PhDOE.user.conf.needUpdate.toolsPanelLogLoad,boxLabel:_("Automatically load the log when displaying the file"),listeners:{check:function(c){new ui.task.UpdateConfTask({module:"needUpdate",itemName:"toolsPanelLogLoad",value:c.getValue()})}}},{xtype:"fieldset",checkboxToggle:true,collapsed:!PhDOE.user.conf.needUpdate.toolsPanelDisplay,title:_("Start with the panel open"),listeners:{collapse:function(){new ui.task.UpdateConfTask({module:"needUpdate",itemName:"toolsPanelDisplay",value:false})},expand:function(){new ui.task.UpdateConfTask({module:"needUpdate",itemName:"toolsPanelDisplay",value:true})}},items:[{xtype:"spinnerfield",width:60,name:"needUpdate.toolsPanelWidth",module:"needUpdate",itemName:"toolsPanelWidth",value:PhDOE.user.conf.needUpdate.toolsPanelWidth||375,fieldLabel:_("Panel width"),minValue:0,maxValue:10000,accelerate:true,enableKeyEvents:true,listeners:{keyup:function(){ui.cmp._EditorConf.CommitChange.delay(1000,null,this)},spin:function(){ui.cmp._EditorConf.CommitChange.delay(1000,null,this)}}}]}]},{xtype:"fieldset",title:_("Diff view"),iconCls:"iconDiffView",defaults:{hideLabel:true},defaultType:"radio",items:[{xtype:"fieldset",checkboxToggle:true,collapsed:!PhDOE.user.conf.needUpdate.diffPanelDisplay,title:_("Start with the panel open"),listeners:{collapse:function(){new ui.task.UpdateConfTask({module:"needUpdate",itemName:"diffPanelDisplay",value:false})},expand:function(){new ui.task.UpdateConfTask({module:"needUpdate",itemName:"diffPanelDisplay",value:true})}},items:[{xtype:"spinnerfield",width:60,name:"needUpdate.diffPanelHeight",module:"needUpdate",itemName:"diffPanelHeight",value:PhDOE.user.conf.needUpdate.diffPanelHeight||150,fieldLabel:_("Panel height"),minValue:0,maxValue:10000,accelerate:true,enableKeyEvents:true,listeners:{keyup:function(){ui.cmp._EditorConf.CommitChange.delay(1000,null,this)},spin:function(){ui.cmp._EditorConf.CommitChange.delay(1000,null,this)}}}]},{name:"needUpdate.diffMethod",checked:(PhDOE.user.conf.needUpdate.diffMethod==="using-viewvc")?true:false,boxLabel:_("Using ViewVc from php web site"),inputValue:"using-viewvc",listeners:{check:function(c){if(c.checked){new ui.task.UpdateConfTask({module:"needUpdate",itemName:"diffMethod",value:c.getRawValue()})}}}},{name:"needUpdate.diffMethod",checked:(PhDOE.user.conf.needUpdate.diffMethod==="using-exec")?true:false,boxLabel:_("Using diff -u command line"),inputValue:"using-exec",listeners:{check:function(c){if(c.checked){new ui.task.UpdateConfTask({module:"needUpdate",itemName:"diffMethod",value:c.getRawValue()})}}}}]}]}]});ui.cmp._EditorConf.card3.superclass.initComponent.call(this)}});ui.cmp._EditorConf.card4=Ext.extend(Ext.TabPanel,{id:"conf-card-4",autoScroll:true,activeTab:0,defaults:{bodyStyle:"padding: 5px;",autoHeight:true,autoScroll:true},initComponent:function(){Ext.apply(this,{items:[{title:_("Menu"),iconCls:"iconMenu",items:[{xtype:"fieldset",title:_("Nb files to display"),iconCls:"iconFilesToDisplay",defaults:{hideLabel:true},defaultType:"spinnerfield",items:[{width:60,name:"PhDOE.user.conf.error.nbDisplay",module:"error",itemName:"nbDisplay",value:PhDOE.user.conf.error.nbDisplay||0,boxLabel:_("files to display"),minValue:0,maxValue:10000,accelerate:true,enableKeyEvents:true,listeners:{keyup:function(){ui.cmp._EditorConf.CommitChange.delay(1000,null,this)},spin:function(){ui.cmp._EditorConf.CommitChange.delay(1000,null,this)}}},{xtype:"displayfield",value:_("0 means no limit"),style:{fontStyle:"italic"}}]},{hidden:(PhDOE.user.lang==="en"),xtype:"fieldset",title:_("Error type"),iconCls:"iconFilesError",defaults:{hideLabel:true},defaultType:"checkbox",items:[{name:"error.skipNbLiteralTag",checked:PhDOE.user.conf.error.skipNbLiteralTag,boxLabel:_("Skip nbLiteralTag error"),listeners:{check:function(c){new ui.task.UpdateConfTask({module:"error",itemName:"skipNbLiteralTag",value:c.getValue()})}}}]}]},{title:_("User Interface"),iconCls:"iconUI",items:[{xtype:"fieldset",title:_("ScrollBars"),iconCls:"iconScrollBar",defaults:{hideLabel:true},defaultType:"checkbox",items:[{name:"error.syncScrollbars",checked:PhDOE.user.conf.error.syncScrollbars,boxLabel:_("Synchronize scroll bars"),listeners:{check:function(c){new ui.task.UpdateConfTask({module:"error",itemName:"syncScrollbars",value:c.getValue()})}}}]},{xtype:"fieldset",title:_("Tools"),iconCls:"iconConf",defaults:{hideLabel:true},defaultType:"checkbox",items:[{name:"error.toolsPanelLogLoad",checked:PhDOE.user.conf.error.toolsPanelLogLoad,boxLabel:_("Automatically load the log when displaying the file"),listeners:{check:function(c){new ui.task.UpdateConfTask({module:"error",itemName:"toolsPanelLogLoad",value:c.getValue()})}}},{name:"error.toolsPanelEntitiesLoad",checked:PhDOE.user.conf.error.toolsPanelEntitiesLoad,boxLabel:_("Automatically load entities data when displaying the file"),listeners:{check:function(c){new ui.task.UpdateConfTask({module:"error",itemName:"toolsPanelEntitiesLoad",value:c.getValue()})}}},{name:"error.toolsPanelAcronymsLoad",checked:PhDOE.user.conf.error.toolsPanelAcronymsLoad,boxLabel:_("Automatically load acronyms data when displaying the file"),listeners:{check:function(c){new ui.task.UpdateConfTask({module:"error",itemName:"toolsPanelAcronymsLoad",value:c.getValue()})}}},{xtype:"fieldset",checkboxToggle:true,collapsed:!PhDOE.user.conf.error.toolsPanelDisplay,title:_("Start with the panel open"),listeners:{collapse:function(){new ui.task.UpdateConfTask({module:"error",itemName:"toolsPanelDisplay",value:false})},expand:function(){new ui.task.UpdateConfTask({module:"error",itemName:"toolsPanelDisplay",value:true})}},items:[{xtype:"spinnerfield",width:60,name:"error.toolsPanelWidth",module:"error",itemName:"toolsPanelWidth",value:PhDOE.user.conf.error.toolsPanelWidth||375,fieldLabel:_("Panel width"),minValue:0,maxValue:10000,accelerate:true,enableKeyEvents:true,listeners:{keyup:function(){ui.cmp._EditorConf.CommitChange.delay(1000,null,this)},spin:function(){ui.cmp._EditorConf.CommitChange.delay(1000,null,this)}}}]}]},{xtype:"fieldset",title:_("Error description"),iconCls:"iconFilesError",defaults:{hideLabel:true},defaultType:"radio",items:[{xtype:"fieldset",checkboxToggle:true,collapsed:!PhDOE.user.conf.error.descPanelDisplay,title:_("Start with the panel open"),listeners:{collapse:function(){new ui.task.UpdateConfTask({module:"error",itemName:"descPanelDisplay",value:false})},expand:function(){new ui.task.UpdateConfTask({module:"error",itemName:"descPanelDisplay",value:true})}},items:[{xtype:"spinnerfield",width:60,name:"error.descPanelHeight",module:"error",itemName:"descPanelHeight",value:PhDOE.user.conf.error.descPanelHeight||150,fieldLabel:_("Panel height"),minValue:0,maxValue:10000,accelerate:true,enableKeyEvents:true,listeners:{keyup:function(){ui.cmp._EditorConf.CommitChange.delay(1000,null,this)},spin:function(){ui.cmp._EditorConf.CommitChange.delay(1000,null,this)}}}]}]}]}]});ui.cmp._EditorConf.card4.superclass.initComponent.call(this)}});ui.cmp._EditorConf.card5=Ext.extend(Ext.TabPanel,{id:"conf-card-5",autoScroll:true,activeTab:0,defaults:{bodyStyle:"padding: 5px;",autoHeight:true,autoScroll:true},initComponent:function(){Ext.apply(this,{items:[{title:_("Menu"),iconCls:"iconMenu",items:[{xtype:"fieldset",title:_("Nb files to display"),iconCls:"iconFilesToDisplay",defaults:{hideLabel:true},defaultType:"spinnerfield",items:[{width:60,name:"reviewed.nbDisplay",module:"reviewed",itemName:"nbDisplay",value:PhDOE.user.conf.reviewed.nbDisplay||0,boxLabel:_("files to display"),minValue:0,maxValue:10000,accelerate:true,enableKeyEvents:true,listeners:{keyup:function(){ui.cmp._EditorConf.CommitChange.delay(1000,null,this)},spin:function(){ui.cmp._EditorConf.CommitChange.delay(1000,null,this)}}},{xtype:"displayfield",value:_("0 means no limit"),style:{fontStyle:"italic"}}]}]},{title:_("User Interface"),iconCls:"iconUI",items:[{xtype:"fieldset",title:_("ScrollBars"),iconCls:"iconScrollBar",defaults:{hideLabel:true},defaultType:"checkbox",items:[{name:"reviewed.syncScrollbars",checked:PhDOE.user.conf.reviewed.syncScrollbars,boxLabel:_("Synchronize scroll bars"),listeners:{check:function(c){new ui.task.UpdateConfTask({module:"reviewed",itemName:"syncScrollbars",value:c.getValue()})}}}]},{xtype:"fieldset",title:_("Tools"),iconCls:"iconConf",defaults:{hideLabel:true},defaultType:"checkbox",items:[{name:"reviewed.toolsPanelLogLoad",checked:PhDOE.user.conf.reviewed.toolsPanelLogLoad,boxLabel:_("Automatically load the log when displaying the file"),listeners:{check:function(c){new ui.task.UpdateConfTask({module:"reviewed",itemName:"toolsPanelLogLoad",value:c.getValue()})}}},{xtype:"fieldset",checkboxToggle:true,collapsed:!PhDOE.user.conf.reviewed.toolsPanelDisplay,title:_("Start with the panel open"),listeners:{collapse:function(){new ui.task.UpdateConfTask({module:"reviewed",itemName:"toolsPanelDisplay",value:false})},expand:function(){new ui.task.UpdateConfTask({module:"reviewed",itemName:"toolsPanelDisplay",value:true})}},items:[{xtype:"spinnerfield",width:60,name:"reviewed.toolsPanelWidth",module:"reviewed",itemName:"toolsPanelWidth",value:PhDOE.user.conf.reviewed.toolsPanelWidth||375,fieldLabel:_("Panel width"),minValue:0,maxValue:10000,accelerate:true,enableKeyEvents:true,listeners:{keyup:function(){ui.cmp._EditorConf.CommitChange.delay(1000,null,this)},spin:function(){ui.cmp._EditorConf.CommitChange.delay(1000,null,this)}}}]}]}]}]});ui.cmp._EditorConf.card5.superclass.initComponent.call(this)}});ui.cmp._EditorConf.card6=Ext.extend(Ext.TabPanel,{id:"conf-card-6",autoScroll:true,activeTab:0,defaults:{bodyStyle:"padding: 5px;",autoHeight:true,autoScroll:true},initComponent:function(){Ext.apply(this,{items:[{title:_("User Interface"),iconCls:"iconUI",items:[{xtype:"fieldset",title:_("Tools"),iconCls:"iconConf",defaults:{hideLabel:true},defaultType:"checkbox",items:[{name:"allFiles.toolsPanelLogLoad",checked:PhDOE.user.conf.allFiles.toolsPanelLogLoad,boxLabel:_("Automatically load the log when displaying the file"),listeners:{check:function(c){new ui.task.UpdateConfTask({module:"allFiles",itemName:"toolsPanelLogLoad",value:c.getValue()})}}},{name:"allFiles.toolsPanelEntitiesLoad",checked:PhDOE.user.conf.allFiles.toolsPanelEntitiesLoad,boxLabel:_("Automatically load entities data when displaying the file"),listeners:{check:function(c){new ui.task.UpdateConfTask({module:"allFiles",itemName:"toolsPanelEntitiesLoad",value:c.getValue()})}}},{name:"allFiles.toolsPanelAcronymsLoad",checked:PhDOE.user.conf.allFiles.toolsPanelAcronymsLoad,boxLabel:_("Automatically load acronyms data when displaying the file"),listeners:{check:function(c){new ui.task.UpdateConfTask({module:"allFiles",itemName:"toolsPanelAcronymsLoad",value:c.getValue()})}}},{xtype:"fieldset",checkboxToggle:true,collapsed:!PhDOE.user.conf.allFiles.toolsPanelDisplay,title:_("Start with the panel open"),listeners:{collapse:function(){new ui.task.UpdateConfTask({module:"allFiles",itemName:"toolsPanelDisplay",value:false})},expand:function(){new ui.task.UpdateConfTask({module:"allFiles",itemName:"toolsPanelDisplay",value:true})}},items:[{xtype:"spinnerfield",width:60,name:"allFiles.toolsPanelWidth",module:"allFiles",itemName:"toolsPanelWidth",value:PhDOE.user.conf.allFiles.toolsPanelWidth||375,fieldLabel:_("Panel width"),minValue:0,maxValue:10000,accelerate:true,enableKeyEvents:true,listeners:{keyup:function(){ui.cmp._EditorConf.CommitChange.delay(1000,null,this)},spin:function(){ui.cmp._EditorConf.CommitChange.delay(1000,null,this)}}}]}]}]}]});ui.cmp._EditorConf.card6.superclass.initComponent.call(this)}});ui.cmp.EditorConf=Ext.extend(Ext.Window,{id:"win-conf",layout:"border",width:700,height:470,iconCls:"iconConf",title:_("Configuration"),modal:true,plain:true,bodyBorder:false,closeAction:"hide",buttons:[{text:_("Close"),handler:function(){Ext.getCmp("win-conf").hide()}}],listeners:{show:function(){var c=Ext.getCmp("conf-menu-view");c.select(c.getNode(0))}},initComponent:function(){if(PhDOE.user.lang==="en"){ui.cmp._EditorConf.menuStore.loadData(ui.cmp._EditorConf.menuDefEn)}else{ui.cmp._EditorConf.menuStore.loadData(ui.cmp._EditorConf.menuDefNonEn)}Ext.apply(this,{items:[{id:"confMenu",region:"west",border:false,width:190,autoScroll:true,items:[new ui.cmp._EditorConf.viewMenu()]},{id:"confCard",region:"center",border:false,layout:"card",width:375,frame:true,activeItem:0,bbar:new Ext.ux.StatusBar({defaultText:_("All changes take effect immediately"),defaultIconCls:"confStatusBar"}),items:[new ui.cmp._EditorConf.card1(),new ui.cmp._EditorConf.card2(),new ui.cmp._EditorConf.card3(),new ui.cmp._EditorConf.card4(),new ui.cmp._EditorConf.card5(),new ui.cmp._EditorConf.card6()]}]});ui.cmp.EditorConf.superclass.initComponent.call(this)}});Ext.namespace("ui","ui.cmp","ui.cmp._EmailPrompt");ui.cmp.EmailPrompt=Ext.extend(Ext.Window,{title:_("Send an email"),width:500,height:300,minWidth:300,minHeight:200,layout:"fit",plain:true,bodyStyle:"padding:5px;",buttonAlign:"center",iconCls:"iconSendEmail",closeAction:"hide",buttons:[{text:_("Send"),handler:function(){var d=this.ownerCt.ownerCt,c=d.findByType("form").shift().getForm().getValues();XHR({params:{task:"sendEmail",to:c.to,subject:c.subject,msg:c.msg},success:function(){d.hide();Ext.Msg.alert(_("Status"),String.format(_("Email sent to {0} with success!"),d.name.ucFirst()),Ext.emptyFn)},failure:function(){PhDOE.winForbidden()}})}},{text:_("Cancel"),handler:function(){this.ownerCt.ownerCt.hide()}}],setData:function(d,c){this.name=d;this.email=c;this.items.items[0].items.items[0].setValue('"'+this.name.ucFirst()+'" <'+this.email+">");this.items.items[0].items.items[1].setValue("");this.items.items[0].items.items[2].setValue("")},initComponent:function(){Ext.apply(this,{items:new Ext.form.FormPanel({baseCls:"x-plain",labelWidth:55,defaultType:"textfield",items:[{name:"to",fieldLabel:_("Send To"),readOnly:true,anchor:"100%",value:""},{name:"subject",fieldLabel:_("Subject"),anchor:"100%"},{name:"msg",xtype:"textarea",hideLabel:true,anchor:"100% -53"}]})});ui.cmp.EmailPrompt.superclass.initComponent.call(this)}});Ext.namespace("ui","ui.cmp","ui.cmp._EntitiesAcronymsPanel");ui.cmp._EntitiesAcronymsPanel.grid=Ext.extend(Ext.grid.GridPanel,{onRowClick:function(c){var d=c.getSelectionModel().getSelected().data;Ext.getCmp(this.dataType+"-details-"+this.fid).update(d.value)},onRowDblClick:function(d){var f=d.getSelectionModel().getSelected().data,e=Ext.getCmp(this.prefix+"-"+this.ftype+"-FILE-"+this.fid),c=Ext.util.JSON.decode(e.getCursorPosition()),g=(this.dataType==="entities")?"&"+f.items+";":""+f.items+"";e.insertIntoLine(c.line,c.caracter,g)},initComponent:function(){var c;if(this.dataType==="entities"){c="./do/getEntities"}else{if(this.dataType==="acronyms"){c="./do/getAcronyms"}}Ext.apply(this,{region:"center",split:true,loadMask:true,autoScroll:true,bodyBorder:false,border:false,autoExpandColumn:this.dataType,columns:[{id:"items",header:_("Items"),sortable:true,dataIndex:"items"},{header:_("From"),sortable:true,dataIndex:"from",width:50}],viewConfig:{forceFit:true,emptyText:'
'+_("You must manually load this data. Use the refresh button !")+"
"+_("(You can change this behavior by setting an option in the configuration window)")+"
",deferEmptyText:false},sm:new Ext.grid.RowSelectionModel({singleSelect:true}),store:new Ext.data.Store({autoLoad:this.loadStore,proxy:new Ext.data.HttpProxy({url:c}),listeners:{scope:this,load:function(){if(this.dataType==="entities"){Ext.getCmp(this.prefix+"-"+this.fid).panEntities=true}else{if(this.dataType==="acronyms"){Ext.getCmp(this.prefix+"-"+this.fid).panAcronyms=true}}Ext.getCmp("main-panel").fireEvent("tabLoaded",this.prefix,this.fid)}},reader:new Ext.data.JsonReader({root:"Items",totalProperty:"nbItems",idProperty:"id",fields:[{name:"id"},{name:"from"},{name:"items"},{name:"value"}]})}),tbar:[{scope:this,tooltip:_("Load/Refresh"),iconCls:"iconRefresh",handler:function(){this.store.reload()}},_("Filter: ")," ",new Ext.form.TwinTriggerField({width:180,hideTrigger1:true,enableKeyEvents:true,validateOnBlur:false,validationEvent:false,trigger1Class:"x-form-clear-trigger",trigger2Class:"x-form-search-trigger",listeners:{specialkey:function(d,g){if(g.getKey()===g.ENTER){this.onTrigger2Click()}}},onTrigger1Click:function(){this.setValue("");this.triggers[0].hide();this.setSize(180,10);this.ownerCt.ownerCt.store.clearFilter()},onTrigger2Click:function(){var d=this.getValue(),e;if(d===""||d.length<3){this.markInvalid(_("Your filter must contain at least 3 characters"));return}this.clearInvalid();this.triggers[0].show();this.setSize(180,10);e=new RegExp(d,"i");this.ownerCt.ownerCt.store.filterBy(function(f){if(e.test(f.data.from)||e.test(f.data.items)||e.test(f.data.value)){return true}else{return false}},this)}})]});ui.cmp._EntitiesAcronymsPanel.grid.superclass.initComponent.call(this);this.on("rowclick",this.onRowClick,this);this.on("rowdblclick",this.onRowDblClick,this)}});ui.cmp.EntitiesAcronymsPanel=Ext.extend(Ext.Panel,{initComponent:function(){var c;if(this.dataType==="entities"){c=_("Click on a row to display the content of the entitie. Double-click on it to insert it at the cursor position.")}else{if(this.dataType==="acronyms"){c=_("Click on a row to display the content of the acronym. Double-click on it to insert it at the cursor position.")}}Ext.apply(this,{layout:"border",border:false,items:[new ui.cmp._EntitiesAcronymsPanel.grid({dataType:this.dataType,prefix:this.prefix,fid:this.fid,ftype:this.ftype,loadStore:this.loadStore}),{xtype:"panel",id:this.dataType+"-details-"+this.fid,region:"south",split:true,height:100,autoScroll:true,bodyBorder:false,bodyCssClass:this.dataType+"-details",html:c}]});ui.cmp.EntitiesAcronymsPanel.superclass.initComponent.call(this)}});Ext.namespace("ui","ui.cmp","ui.cmp._ErrorFileGrid");ui.cmp._ErrorFileGrid.store=new Ext.data.GroupingStore({proxy:new Ext.data.HttpProxy({url:"./do/getFilesError"}),reader:new Ext.data.JsonReader({root:"Items",totalProperty:"nbItems",idProperty:"id",fields:[{name:"id"},{name:"path"},{name:"name"},{name:"maintainer"},{name:"type"},{name:"value_en"},{name:"value_lang"},{name:"fileModifiedEN"},{name:"fileModifiedLang"}]}),sortInfo:{field:"path",direction:"ASC"},groupField:"path",listeners:{datachanged:function(e){var c=e.getCount(),d=false;if(PhDOE.user.haveKarma){e.each(function(f){if(f.data.maintainer==PhDOE.user.login){d++}},this)}Ext.getDom("acc-error-nb").innerHTML=c+(d?(" - "+String.format(_("{0} mine"),d)):"")}}});ui.cmp._ErrorFileGrid.columns=[{id:"name",header:_("Files"),sortable:true,dataIndex:"name",renderer:function(d,g,e){var j="",h,f,c;c=(PhDOE.user.isAnonymous)?"anonymous":PhDOE.user.login;if(e.data.fileModifiedEN){h=Ext.util.JSON.decode(e.data.fileModifiedEN);if(h.user===c&&h.anonymousIdent===PhDOE.user.anonymousIdent){j=_("File EN modified by me")+" "}else{j=String.format(_("File EN modified by {0}"),h.user)+" "}}if(e.data.fileModifiedLang){f=Ext.util.JSON.decode(e.data.fileModifiedLang);if(f.user===c&&f.anonymousIdent===PhDOE.user.anonymousIdent){j+=String.format(_("File {0} modified by me"),PhDOE.user.lang.ucFirst())}else{j+=String.format(_("File {0} modified by {1}"),PhDOE.user.lang.ucFirst(),f.user)}}if(j!==""){return""+d+""}else{return d}}},{header:_("Type"),width:45,sortable:true,dataIndex:"type"},{header:_("Maintainer"),width:45,sortable:true,dataIndex:"maintainer"},{header:_("Path"),dataIndex:"path",hidden:true}];ui.cmp._ErrorFileGrid.view=new Ext.grid.GroupingView({emptyText:'
'+_("No Files")+"
",deferEmptyText:false,forceFit:true,startCollapsed:true,groupTextTpl:'{[values.rs[0].data.path]} ({[values.rs.length]} {[values.rs.length > 1 ? "'+_("Files")+'" : "'+_("File")+'"]})',getRowClass:function(d){if(d.data.fileModifiedEN||d.data.fileModifiedLang){var f=Ext.util.JSON.decode(d.data.fileModifiedEN),e=Ext.util.JSON.decode(d.data.fileModifiedLang),c;c=(PhDOE.user.isAnonymous)?"anonymous":PhDOE.user.login;return((f.user===c&&f.anonymousIdent===PhDOE.user.anonymousIdent)||(e.user===c&&e.anonymousIdent===PhDOE.user.anonymousIdent))?"fileModifiedByMe":"fileModifiedByAnother"}return false}});ui.cmp._ErrorFileGrid.menu=function(c){Ext.apply(this,c);this.init();ui.cmp._ErrorFileGrid.menu.superclass.constructor.call(this)};Ext.extend(ui.cmp._ErrorFileGrid.menu,Ext.menu.Menu,{init:function(){Ext.apply(this,{items:[{scope:this,text:""+_("Edit in a new tab")+"",iconCls:"iconFilesError",handler:function(){this.grid.fireEvent("rowdblclick",this.grid,this.rowIdx,this.event)}},{scope:this,hidden:this.hideDiffMenu,text:_("View diff..."),iconCls:"iconViewDiff",menu:new Ext.menu.Menu({items:[{scope:this,hidden:(this.grid.store.getAt(this.rowIdx).data.fileModifiedEN===false),text:String.format(_("... of the {0} file"),"EN"),handler:function(){Ext.getCmp("main-panel").openDiffTab({DiffType:"file",FileName:this.fname,FilePath:"en"+this.fpath})}},{scope:this,hidden:(this.grid.store.getAt(this.rowIdx).data.fileModifiedLang===false),text:String.format(_("... of the {0} file"),PhDOE.user.lang.ucFirst()),handler:function(){Ext.getCmp("main-panel").openDiffTab({DiffType:"file",FileName:this.fname,FilePath:PhDOE.user.lang+this.fpath})}}]})},"-",{text:_("About error type"),iconCls:"iconHelp",handler:function(){if(!Ext.getCmp("main-panel").findById("FE-help")){Ext.getCmp("main-panel").add({id:"FE-help",title:_("About error type"),iconCls:"iconHelp",closable:true,autoScroll:true,autoLoad:"./error"})}Ext.getCmp("main-panel").setActiveTab("FE-help")}}]})}});ui.cmp.ErrorFileGrid=Ext.extend(Ext.grid.GridPanel,{loadMask:true,border:false,autoExpandColumn:"name",enableDragDrop:true,ddGroup:"mainPanelDDGroup",view:ui.cmp._ErrorFileGrid.view,columns:ui.cmp._ErrorFileGrid.columns,listeners:{render:function(c){c.view.refresh()}},onRowContextMenu:function(d,j,h){h.stopEvent();var g=d.store.getAt(j).data,f=g.path,c=g.name;d.getSelectionModel().selectRow(j);new ui.cmp._ErrorFileGrid.menu({hideDiffMenu:(g.fileModifiedEN===false&&g.fileModifiedLang===false),grid:d,event:h,rowIdx:j,lang:PhDOE.user.lang,fpath:f,fname:c}).showAt(h.getXY())},onRowDblClick:function(c,f,d){this.openFile(c.store.getAt(f).data.id)},openFile:function(j){var g=this.store.getById(j),f=g.data.path,c=g.data.name,h=Ext.util.md5("FE-"+PhDOE.user.lang+f+c),d=[],k,e;if(!Ext.getCmp("main-panel").findById("FE-"+h)){d=[];this.store.each(function(l){if(l.data.path===f&&l.data.name===c&&!d[l.data.type]){d.push(l.data.type)}});k=(PhDOE.user.lang==="en")?[new ui.cmp.VCSLogGrid({layout:"fit",title:String.format(_("{0} Log"),PhDOE.user.lang.ucFirst()),prefix:"FE-LANG",fid:h,fpath:PhDOE.user.lang+f,fname:c,loadStore:PhDOE.user.conf.error.toolsPanelLogLoad})]:[new ui.cmp.VCSLogGrid({layout:"fit",title:String.format(_("{0} Log"),PhDOE.user.lang.ucFirst()),prefix:"FE-LANG",fid:h,fpath:PhDOE.user.lang+f,fname:c,loadStore:PhDOE.user.conf.error.toolsPanelLogLoad}),new ui.cmp.VCSLogGrid({layout:"fit",title:String.format(_("{0} Log"),"En"),prefix:"FE-EN",fid:h,fpath:"en"+f,fname:c,loadStore:PhDOE.user.conf.error.toolsPanelLogLoad})];e=(PhDOE.user.lang==="en")?[new ui.cmp.FilePanel({id:"FE-LANG-PANEL-"+h,region:"center",title:String.format(_("{0} File: "),PhDOE.user.lang)+f+c,prefix:"FE",ftype:"LANG",spellCheck:PhDOE.user.conf.error.enableSpellCheckLang,spellCheckConf:{module:"error",itemName:"enableSpellCheckLang"},fid:h,fpath:f,fname:c,lang:PhDOE.user.lang,parser:"xml",storeRecord:g,syncScrollCB:false,syncScroll:false})]:[new ui.cmp.FilePanel({id:"FE-LANG-PANEL-"+h,region:"center",title:String.format(_("{0} File: "),PhDOE.user.lang.ucFirst())+f+c,prefix:"FE",ftype:"LANG",spellCheck:PhDOE.user.conf.error.enableSpellCheckLang,spellCheckConf:{module:"error",itemName:"enableSpellCheckLang"},fid:h,fpath:f,fname:c,lang:PhDOE.user.lang,parser:"xml",storeRecord:g,syncScrollCB:true,syncScroll:true,syncScrollConf:{module:"error",itemName:"syncScrollbars"}}),new ui.cmp.FilePanel({id:"FE-EN-PANEL-"+h,region:"east",title:_("en File: ")+f+c,prefix:"FE",ftype:"EN",original:true,readOnly:true,openInNewTabBtn:true,fid:h,fpath:f,fname:c,lang:"en",parser:"xml",storeRecord:g,syncScroll:true,syncScrollConf:{module:"error",itemName:"syncScrollbars"}})];Ext.getCmp("main-panel").add({id:"FE-"+h,title:c,layout:"border",iconCls:"iconTabError",closable:true,tabLoaded:false,panVCSLang:!PhDOE.user.conf.errorDisplayLog,panVCSEn:(PhDOE.user.lang==="en")?true:!PhDOE.user.conf.errorDisplayLog,panLANGLoaded:false,panENLoaded:(PhDOE.user.lang==="en")?true:false,originTitle:c,defaults:{split:true},tabTip:String.format(_("File with error : in {0}"),f),listeners:{resize:function(l){(PhDOE.user.lang!=="en")?Ext.getCmp("FE-EN-PANEL-"+h).setWidth(l.getWidth()/2):""}},items:[{xtype:"panel",id:"FE-error-desc-"+h,region:"north",layout:"fit",title:_("Error description"),iconCls:"iconFilesError",collapsedIconCls:"iconFilesError",plugins:[Ext.ux.PanelCollapsedTitle],height:PhDOE.user.conf.error.descPanelHeight||150,collapsible:true,collapsed:!PhDOE.user.conf.error.descPanelDisplay,autoScroll:true,autoLoad:"./error?dir="+f+"&file="+c,listeners:{collapse:function(){if(this.ownerCt.tabLoaded){new ui.task.UpdateConfTask({module:"error",itemName:"descPanelDisplay",value:false})}},expand:function(){if(this.ownerCt.tabLoaded){new ui.task.UpdateConfTask({module:"error",itemName:"descPanelDisplay",value:true})}},resize:function(o,l,m){if(this.ownerCt.tabLoaded&&m&&m>50&&m!=PhDOE.user.conf.error.descPanelHeight){new ui.task.UpdateConfTask({module:"error",itemName:"descPanelHeight",value:m})}}}},{region:"west",xtype:"panel",title:_("Tools"),iconCls:"iconConf",collapsedIconCls:"iconConf",plugins:[Ext.ux.PanelCollapsedTitle],collapsible:true,collapsed:!PhDOE.user.conf.error.toolsPanelDisplay,layout:"fit",bodyBorder:false,width:PhDOE.user.conf.error.toolsPanelWidth||375,listeners:{collapse:function(){if(this.ownerCt.tabLoaded){new ui.task.UpdateConfTask({module:"error",itemName:"toolsPanelDisplay",value:false})}},expand:function(){if(this.ownerCt.tabLoaded){new ui.task.UpdateConfTask({module:"error",itemName:"toolsPanelDisplay",value:true})}},resize:function(l,m){if(this.ownerCt.tabLoaded&&m&&m!=PhDOE.user.conf.error.toolsPanelWidth){new ui.task.UpdateConfTask({module:"error",itemName:"toolsPanelWidth",value:m})}}},items:{xtype:"tabpanel",activeTab:0,tabPosition:"bottom",enableTabScroll:true,defaults:{autoScroll:true},items:[k,new ui.cmp.DictionaryGrid({layout:"fit",title:_("Dictionary"),prefix:"FE",fid:h}),{title:_("Entities"),layout:"fit",items:[new ui.cmp.EntitiesAcronymsPanel({dataType:"entities",prefix:"FE",ftype:"LANG",fid:h,loadStore:PhDOE.user.conf.error.toolsPanelEntitiesLoad})]},{title:_("Acronyms"),layout:"fit",items:[new ui.cmp.EntitiesAcronymsPanel({dataType:"acronyms",prefix:"FE",ftype:"LANG",fid:h,loadStore:PhDOE.user.conf.error.toolsPanelAcronymsLoad})]}]}},e]})}Ext.getCmp("main-panel").setActiveTab("FE-"+h)},initComponent:function(){Ext.apply(this,{store:ui.cmp._ErrorFileGrid.store,tbar:[_("Filter: ")," ",new Ext.form.TwinTriggerField({id:"FE-filter",width:180,hideTrigger1:true,enableKeyEvents:true,validateOnBlur:false,validationEvent:false,trigger1Class:"x-form-clear-trigger",trigger2Class:"x-form-search-trigger",listeners:{keypress:function(c,d){if(d.getKey()===d.ENTER){this.onTrigger2Click()}}},onTrigger1Click:function(){this.setValue("");this.triggers[0].hide();this.setSize(180,10);ui.cmp._ErrorFileGrid.instance.store.clearFilter()},onTrigger2Click:function(){var c=this.getValue(),d;if(c===""||c.length<3){this.markInvalid(_("Your filter must contain at least 3 characters"));return}this.clearInvalid();this.triggers[0].show();this.setSize(180,10);d=new RegExp(c,"i");ui.cmp._ErrorFileGrid.instance.store.filterBy(function(e){if(d.test(e.data.path)||d.test(e.data.name)||d.test(e.data.maintainer)||d.test(e.data.type)){return true}else{return false}},this)}})]});ui.cmp.ErrorFileGrid.superclass.initComponent.call(this);this.on("rowcontextmenu",this.onRowContextMenu,this);this.on("rowdblclick",this.onRowDblClick,this);if(PhDOE.user.lang==="en"){this.getColumnModel().setHidden(2,true)}}});ui.cmp._ErrorFileGrid.instance=null;ui.cmp.ErrorFileGrid.getInstance=function(c){if(!ui.cmp._ErrorFileGrid.instance){if(!c){c={}}ui.cmp._ErrorFileGrid.instance=new ui.cmp.ErrorFileGrid(c)}return ui.cmp._ErrorFileGrid.instance};Ext.namespace("ui","ui.cmp");ui.cmp.ExecDiff=Ext.extend(Ext.Panel,{layout:"fit",title:_("Diff From VCS"),iconCls:"iconDiffView",collapsedIconCls:"iconDiffView",autoScroll:true,plugins:[Ext.ux.PanelCollapsedTitle],onRender:function(d,c){ui.cmp.ExecDiff.superclass.onRender.call(this,d,c);this.el.mask(' '+_("Loading..."));XHR({scope:this,params:{task:"getDiff",DiffType:"vcs",FilePath:"en"+this.fpath,FileName:this.fname,Rev1:this.rev1,Rev2:this.rev2},success:function(e){var f=Ext.util.JSON.decode(e.responseText);Ext.get(this.prefix+"-diff-"+this.fid).dom.innerHTML=f.content;this.el.unmask()},callback:function(){Ext.getCmp(this.prefix+"-"+this.fid).panDiffLoaded=true;Ext.getCmp("main-panel").fireEvent("tabLoaded",this.prefix,this.fid)}})},initComponent:function(){Ext.apply(this,{html:''});ui.cmp.ExecDiff.superclass.initComponent.call(this)}});Ext.namespace("ui","ui.cmp","ui.cmp._FilePanel");Ext.namespace("ui.cmp._FilePanel.tbar.menu");Ext.namespace("ui.cmp._FilePanel.tbar.items");ui.cmp._FilePanel.tbar.items.undoRedo=function(c){Ext.apply(this,c);this.init();ui.cmp._FilePanel.tbar.items.undoRedo.superclass.constructor.call(this)};Ext.extend(ui.cmp._FilePanel.tbar.items.undoRedo,Ext.ButtonGroup,{init:function(){Ext.apply(this,{id:this.id_prefix+"-FILE-"+this.fid+"-grp-undoRedo",items:[{id:this.id_prefix+"-FILE-"+this.fid+"-btn-undo",scope:this,tooltip:_("Undo"),disabled:true,iconCls:"iconUndo",handler:function(){Ext.getCmp(this.id_prefix+"-FILE-"+this.fid).undo()}},{id:this.id_prefix+"-FILE-"+this.fid+"-btn-redo",scope:this,tooltip:_("Redo"),disabled:true,iconCls:"iconRedo",handler:function(){Ext.getCmp(this.id_prefix+"-FILE-"+this.fid).redo()}}]})}});ui.cmp._FilePanel.tbar.items.usernotes=function(c){Ext.apply(this,c);this.init();ui.cmp._FilePanel.tbar.items.usernotes.superclass.constructor.call(this)};Ext.extend(ui.cmp._FilePanel.tbar.items.usernotes,Ext.ButtonGroup,{init:function(){Ext.apply(this,{items:[{xtype:"usernotes",file:this.file,fid:Ext.id()}]})}});ui.cmp._FilePanel.tbar.items.common=function(c){Ext.apply(this,c);this.init();ui.cmp._FilePanel.tbar.items.common.superclass.constructor.call(this)};Ext.extend(ui.cmp._FilePanel.tbar.items.common,Ext.ButtonGroup,{init:function(){Ext.apply(this,{items:[{scope:this,tooltip:_("Close Tab"),iconCls:"iconClose",handler:function(){Ext.getCmp("main-panel").remove(this.prefix+"-"+this.fid)}},{id:this.prefix+"-"+this.fid+"-btn-tabLeft-"+this.ftype,scope:this,tooltip:_("Go to previous tab"),iconCls:"iconArrowLeft",handler:this.goToPreviousTab},{id:this.prefix+"-"+this.fid+"-btn-tabRight-"+this.ftype,scope:this,tooltip:_("Go to next tab"),disabled:true,iconCls:"iconArrowRight",handler:this.goToNextTab}]})}});ui.cmp._FilePanel.tbar.menu.lang=function(c){Ext.apply(this,c);this.init();ui.cmp._FilePanel.tbar.menu.lang.superclass.constructor.call(this)};Ext.extend(ui.cmp._FilePanel.tbar.menu.lang,Ext.Toolbar.Button,{text:_("MarkUp"),iconCls:"iconInsertCode",init:function(){Ext.apply(this,{menu:new Ext.menu.Menu({items:[{scope:this,text:_("Reviewed tag"),handler:function(){Ext.getCmp(this.comp_id).insertLine(2,"");Ext.getCmp(this.comp_id).focus()}},{scope:this,text:_("Revcheck tag"),handler:function(){Ext.getCmp(this.comp_id).insertLine(1,"");Ext.getCmp(this.comp_id).focus()}}]})})}});ui.cmp._FilePanel.tbar.menu.en=function(c){Ext.apply(this,c);this.init();ui.cmp._FilePanel.tbar.menu.en.superclass.constructor.call(this)};Ext.extend(ui.cmp._FilePanel.tbar.menu.en,Ext.Toolbar.Button,{text:_("MarkUp"),iconCls:"iconInsertCode",init:function(){Ext.apply(this,{menu:new Ext.menu.Menu({items:[{scope:this,text:_("Description section"),handler:function(){var c=Ext.getCmp(this.comp_id).getCursor();Ext.getCmp(this.comp_id).insertLine(c.line,[' \r\n ',"&reftitle.description;\r\n ","\r\n ","\r\n ","thereturned typefunc_name\r\n ","\r\n ","param1typefirstparameter\r\n ","\r\n ",'intsecondparameter\r\n ',"\r\n ","\r\n ","\r\n ","\r\n ","The function description goes here.\r\n ","\r\n ",""].join(""));Ext.getCmp(this.comp_id).focus()}},{scope:this,text:_("Parameters section"),handler:function(){var c=Ext.getCmp(this.comp_id).getCursor();Ext.getCmp(this.comp_id).insertLine(c.line,['\r\n\r\n',"&reftitle.parameters;\r\n","\r\n","\r\n","\r\n","firstparameter\r\n","\r\n","\r\n","Its description\r\n","\r\n","\r\n","\r\n","\r\n","\r\n","secondparameter\r\n","\r\n","\r\n","\r\n","Its description\r\n","\r\n","\r\n","\r\n","\r\n","\r\n",""].join(""));Ext.getCmp(this.comp_id).focus()}},{scope:this,text:_("Return section"),handler:function(){var c=Ext.getCmp(this.comp_id).getCursor();Ext.getCmp(this.comp_id).insertLine(c.line,['\r\n\r\n',"&reftitle.returnvalues;\r\n","\r\n","What this function returns, first on success, then failure.\r\n","If simply true on success and false on failure, just use &return.success; here.\r\n","\r\n",""].join(""));Ext.getCmp(this.comp_id).focus()}},{scope:this,text:_("Error section"),handler:function(){var c=Ext.getCmp(this.comp_id).getCursor();Ext.getCmp(this.comp_id).insertLine(c.line,['\r\n\r\n',"&reftitle.errors;\r\n","\r\n","When does this function issue E_* level errors, and/or throw exceptions.\r\n","\r\n","\r\n"].join(""));Ext.getCmp(this.comp_id).focus()}},{scope:this,text:_("Unicode section"),handler:function(){var c=Ext.getCmp(this.comp_id).getCursor();Ext.getCmp(this.comp_id).insertLine(c.line,['\r\n\r\n',"&reftitle.unicode;\r\n","\r\n","Information specific to unicode, from the PHP 6 changes.\r\n","\r\n",""].join(""));Ext.getCmp(this.comp_id).focus()}},{scope:this,text:_("Changelog section"),handler:function(){var c=Ext.getCmp(this.comp_id).getCursor();Ext.getCmp(this.comp_id).insertLine(c.line,['\r\n\r\n',"&reftitle.changelog;\r\n","\r\n","\r\n",'\r\n',"\r\n","\r\n","&Version;\r\n","&Description;\r\n","\r\n","\r\n","\r\n","\r\n","Enter the version of change here\r\n","\r\n","Describe the change\r\n","\r\n","\r\n","\r\n","\r\n","\r\n","\r\n",""].join(""));Ext.getCmp(this.comp_id).focus()}},{scope:this,text:_("Examples section"),handler:function(){var c=Ext.getCmp(this.comp_id).getCursor();Ext.getCmp(this.comp_id).insertLine(c.line,['\r\n\r\n',"&reftitle.examples;\r\n","\r\n",'\r\n',"function-name example\r\n","\r\n","Any text that describes the purpose of the example, or what\r\n","goes on in the example should be here. (Inside the tag, not out).\r\n","\r\n",'\r\n',"\r\n","]]>\r\n","\r\n","&example.outputs.similar;\r\n","\r\n","\r\n","\r\n","\r\n","\r\n",""].join(""));Ext.getCmp(this.comp_id).focus()}},{scope:this,text:_("Notes section"),handler:function(){var c=Ext.getCmp(this.comp_id).getCursor();Ext.getCmp(this.comp_id).insertLine(c.line,['\r\n\r\n',"&reftitle.notes;\r\n","\r\n","\r\n","Any notes that don't fit anywhere else should go here.\r\n","90% of the time, notes, warnings or cautions are better placed in the\r\n","parameters section. Consider that before using this section!\r\n","\r\n","\r\n","¬e.language-construct;\r\n","¬e.not-bin-safe;\r\n","¬e.registerglobals;\r\n",""].join(""));Ext.getCmp(this.comp_id).focus()}},{scope:this,text:_("SeeAlso section"),handler:function(){var c=Ext.getCmp(this.comp_id).getCursor();Ext.getCmp(this.comp_id).insertLine(c.line,['\r\n\r\n',"&reftitle.seealso;\r\n","\r\n","\r\n","somefunc\r\n","another_func\r\n",'The something appendix\r\n',"\r\n","\r\n",""].join(""));Ext.getCmp(this.comp_id).focus()}}]})})}});ui.cmp._FilePanel.tbar.items.reindentTags=function(c){Ext.apply(this,c);this.init();ui.cmp._FilePanel.tbar.items.reindentTags.superclass.constructor.call(this)};Ext.extend(ui.cmp._FilePanel.tbar.items.reindentTags,Ext.ButtonGroup,{init:function(){Ext.apply(this,{id:this.id_prefix+"-FILE-"+this.fid+"-grp-tools",items:[{scope:this,tooltip:_("Check XML with XmlLint"),iconCls:"iconXml",handler:function(c){new ui.task.CheckXml({idPrefix:this.id_prefix,fid:this.fid})}},(this.lang==="en")?new ui.cmp._FilePanel.tbar.menu.en({comp_id:this.id_prefix+"-FILE-"+this.fid}):new ui.cmp._FilePanel.tbar.menu.lang({comp_id:this.id_prefix+"-FILE-"+this.fid}),{scope:this,text:_("Editor option"),iconCls:"iconConf",menu:[{scope:this,text:_("Re-indent all this file"),iconCls:"iconIndent",handler:function(){Ext.getCmp(this.id_prefix+"-FILE-"+this.fid).reIndentAll()}},{scope:this,text:_("Enable line wrapping"),checked:((PhDOE.user.conf.main.lineWrapping===true)?true:false),checkHandler:function(d,c){var e=(c)?true:false;Ext.getCmp(this.id_prefix+"-FILE-"+this.fid).setOption("lineWrapping",e);new ui.task.UpdateConfTask({module:"main",itemName:"lineWrapping",value:c,notify:false})}},{scope:this,text:_("Choose a Theme"),iconCls:"iconThemes",onThemeChange:function(){var c=Ext.getCmp(this.ownerCt.ownerCt.ownerCt.id_prefix+"-FILE-"+this.ownerCt.ownerCt.ownerCt.fid);Ext.each(this.menu.items.items,function(d){if(d.checked===true){c.switchTheme(d.themeName);new ui.task.UpdateConfTask({module:"main",itemName:"editorTheme",value:d.themeName,notify:false})}})},menu:{items:[{text:_("No theme"),themeName:false,checked:(PhDOE.user.conf.main.editorTheme===false),group:"cmd2-theme",checkHandler:function(){this.ownerCt.ownerCt.onThemeChange()}},{text:_("Default theme"),themeName:"default",checked:(PhDOE.user.conf.main.editorTheme==="default"||PhDOE.user.conf.main.editorTheme==="undefined"),group:"cmd2-theme",checkHandler:function(){this.ownerCt.ownerCt.onThemeChange()}},{text:_("Cobalt"),themeName:"cobalt",checked:(PhDOE.user.conf.main.editorTheme==="cobalt"),group:"cmd2-theme",checkHandler:function(){this.ownerCt.ownerCt.onThemeChange()}},{text:_("Eclipse"),themeName:"eclipse",checked:(PhDOE.user.conf.main.editorTheme==="eclipse"),group:"cmd2-theme",checkHandler:function(){this.ownerCt.ownerCt.onThemeChange()}},{text:_("Elegant"),themeName:"elegant",checked:(PhDOE.user.conf.main.editorTheme==="elegant"),group:"cmd2-theme",checkHandler:function(){this.ownerCt.ownerCt.onThemeChange()}},{text:_("Monokai"),themeName:"monokai",checked:(PhDOE.user.conf.main.editorTheme==="monokai"),group:"cmd2-theme",checkHandler:function(){this.ownerCt.ownerCt.onThemeChange()}},{text:_("Neat"),themeName:"neat",checked:(PhDOE.user.conf.main.editorTheme==="neat"),group:"cmd2-theme",checkHandler:function(){this.ownerCt.ownerCt.onThemeChange()}},{text:_("Night"),themeName:"night",checked:(PhDOE.user.conf.main.editorTheme==="night"),group:"cmd2-theme",checkHandler:function(){this.ownerCt.ownerCt.onThemeChange()}},{text:_("RubyBlue"),themeName:"rubyblue",checked:(PhDOE.user.conf.main.editorTheme==="rubyblue"),group:"cmd2-theme",checkHandler:function(){this.ownerCt.ownerCt.onThemeChange()}}]}}]}]})}});ui.cmp.FilePanel=Ext.extend(Ext.form.FormPanel,{activeScroll:false,goToPreviousTab:function(){var c=this.prefix+"-"+this.fid,e=Ext.getCmp("main-panel").layout.container.items.items,g,f,d;for(d=0;d','',_("Line: "),'-',' ',_("Col: "),'-'," "].join(""))}}}]:[{xtype:"panel",height:22,baseCls:"",bodyStyle:"padding-top:5px;",html:['
','',_("Line: "),'-',' ',_("Col: "),'-',"
"].join("")}];if(!this.readOnly){this.tbar=[new ui.cmp._FilePanel.tbar.items.common({prefix:this.prefix,fid:this.fid,ftype:this.ftype,goToPreviousTab:this.goToPreviousTab,goToNextTab:this.goToNextTab}),{xtype:"buttongroup",id:c+"-FILE-"+this.fid+"-grp-save",items:[{id:c+"-FILE-"+this.fid+"-btn-save",scope:this,tooltip:_("Save this file (CTRL+s)"),iconCls:"iconSaveFile",disabled:true,handler:function(){if(this.prefix==="AF"){new ui.task.SaveFileTask({prefix:this.prefix,ftype:this.ftype,fid:this.fid,fpath:this.fpath,fname:this.fname,lang:this.lang,storeRecord:this.storeRecord});return}if(this.prefix==="FNT"){new ui.task.SaveTransFileTask({prefix:this.prefix,ftype:this.ftype,fid:this.fid,fpath:this.fpath,fname:this.fname,lang:this.lang,storeRecord:this.storeRecord});return}if(!PhDOE.user.conf.main.onSaveFile){PhDOE.user.conf.main.onSaveFile="ask-me"}switch(PhDOE.user.conf.main.onSaveFile){case"always":new ui.task.CheckFileTask({prefix:this.prefix,ftype:this.ftype,fid:this.fid,fpath:this.fpath,fname:this.fname,lang:this.lang,storeRecord:this.storeRecord});break;case"never":new ui.task.SaveFileTask({prefix:this.prefix,ftype:this.ftype,fid:this.fid,fpath:this.fpath,fname:this.fname,lang:this.lang,storeRecord:this.storeRecord});break;case"ask-me":Ext.MessageBox.show({title:_("Confirm"),msg:_("Do you want to check for errors before saving?"),icon:Ext.MessageBox.INFO,buttons:Ext.MessageBox.YESNOCANCEL,scope:this,fn:function(d){if(d==="no"){new ui.task.SaveFileTask({prefix:this.prefix,ftype:this.ftype,fid:this.fid,fpath:this.fpath,fname:this.fname,lang:this.lang,storeRecord:this.storeRecord})}else{if(d==="yes"){new ui.task.CheckFileTask({prefix:this.prefix,ftype:this.ftype,fid:this.fid,fpath:this.fpath,fname:this.fname,lang:this.lang,storeRecord:this.storeRecord})}}}});break}}}]},new ui.cmp._FilePanel.tbar.items.undoRedo({id_prefix:c,fid:this.fid}),new ui.cmp._FilePanel.tbar.items.reindentTags({id_prefix:c,fid:this.fid,lang:this.lang}),{scope:this,iconCls:"iconZoom",tooltip:_("Expand in a popup"),handler:function(d){var e=new Ext.Window({title:this.originTitle,bodyStyle:"background-color:white",maximized:true,animateTarget:d.el,items:[{xtype:"codemirror",id:c+"-FILE-"+this.fid+"maximized",readOnly:false,lineWrapping:PhDOE.user.conf.main.lineWrapping,theme:PhDOE.user.conf.main.editorTheme,parser:this.parser,isModified:false,listeners:{scope:this,initialize:function(){var h=Ext.getCmp(c+"-FILE-"+this.fid+"maximized"),f=Ext.getCmp(c+"-FILE-"+this.fid).getValue();h.setValue(f);var g=new Ext.util.DelayedTask(function(){if(e.rendered){h.resize(false,e.getInnerHeight()+89)}else{g.delay(500)}});g.delay(500)}}}],listeners:{scope:this,beforeclose:function(g){var f=g.items.items[0].getValue();Ext.getCmp(c+"-FILE-"+this.fid).setValue(f)}}});e.show()}},{scope:this,iconCls:"iconView",hidden:!(this.lang==="en"&&this.fname.substr(-3)==="xml"),tooltip:_("Preview in a popup"),handler:function(){var d=Ext.getCmp(c+"-FILE-"+this.fid).isModified;if(d){Ext.Msg.alert(_("Information"),_("You must save your file in order to preview the result."),function(e){if(e=="ok"){new ui.cmp.PreviewFile({path:this.lang+this.fpath+this.fname})}},this)}else{new ui.cmp.PreviewFile({path:this.lang+this.fpath+this.fname})}}},"->",new ui.cmp._FilePanel.tbar.items.usernotes({fid:this.fid,file:this.lang+this.fpath+this.fname})]}else{this.tbar=[new ui.cmp._FilePanel.tbar.items.common({prefix:this.prefix,fid:this.fid,ftype:this.ftype,goToPreviousTab:this.goToPreviousTab,goToNextTab:this.goToNextTab}),{xtype:"buttongroup",hidden:(this.openInNewTabBtn!==true),scope:this,items:[{tooltip:_("Open for editing in a new Tab"),iconCls:"iconEditInNewTab",scope:this,handler:function(){ui.cmp.RepositoryTree.getInstance().openFile("byPath",this.lang+this.fpath,this.fname)}}]},"->",((this.ftype!=="GGTRANS")?new ui.cmp._FilePanel.tbar.items.usernotes({fid:this.fid,file:this.lang+this.fpath+this.fname}):"")]}Ext.apply(this,{title:this.title,cls:"code-mirror-panel",originTitle:this.title,items:[{xtype:"codemirror",id:c+"-FILE-"+this.fid,readOnly:this.readOnly,lineWrapping:PhDOE.user.conf.main.lineWrapping,theme:PhDOE.user.conf.main.editorTheme,parser:this.parser,isModified:false,listeners:{scope:this,initialize:function(){var e,d;if(this.isTrans){if(this.storeRecord.data.fileModified){e=this.lang+this.fpath;d=this.fname}else{e="en"+this.fpath;d=this.fname}}else{e=this.lang+this.fpath;d=this.fname}new ui.task.GetFileTask({prefix:this.prefix,ftype:this.ftype,original:this.original,fid:this.fid,fpath:e,freadOnly:this.readOnly,fname:d,skeleton:this.skeleton,storeRecord:this.storeRecord})},coderestored:function(){if(this.readOnly){return}if(Ext.getCmp(c+"-FILE-"+this.fid).isModified){Ext.getCmp(c+"-PANEL-"+this.fid).setTitle(Ext.getCmp(c+"-PANEL-"+this.fid).permlink+Ext.getCmp(c+"-PANEL-"+this.fid).originTitle);if((this.ftype==="LANG"&&PhDOE.user.lang!=="en")||this.ftype==="EN"){if((this.ftype==="EN"&&!Ext.getCmp(this.prefix+"-LANG-FILE-"+this.fid).isModified)||(this.ftype==="LANG"&&!Ext.getCmp(this.prefix+"-EN-FILE-"+this.fid).isModified)){Ext.getCmp(this.prefix+"-"+this.fid).setTitle(Ext.getCmp(this.prefix+"-"+this.fid).originTitle)}}else{Ext.getCmp(this.prefix+"-"+this.fid).setTitle(Ext.getCmp(this.prefix+"-"+this.fid).originTitle)}Ext.getCmp(c+"-FILE-"+this.fid+"-btn-save").disable();Ext.getCmp(c+"-FILE-"+this.fid).isModified=false}},codemodified:function(){if(this.readOnly){return}if(Ext.getCmp(c+"-FILE-"+this.fid+"-grp-save").disabled){return}var e=Ext.getCmp(c+"-FILE-"+this.fid),d=Ext.getCmp(c+"-PANEL-"+this.fid);if(!e.isModified){d.setTitle(d.permlink+d.originTitle+' ['+_("modified")+"]");Ext.getCmp(this.prefix+"-"+this.fid).setTitle(Ext.getCmp(this.prefix+"-"+this.fid).originTitle+' *');Ext.getCmp(c+"-FILE-"+this.fid+"-btn-save").enable();Ext.getCmp(c+"-FILE-"+this.fid+"-btn-undo").enable();e.isModified=true}},cursormove:function(d,e){Ext.get(c+"-status-line-"+this.fid).dom.innerHTML=d;Ext.get(c+"-status-col-"+this.fid).dom.innerHTML=e},scroll:function(g){var e,f,d;if(this.syncScroll&&PhDOE.user.conf[this.syncScrollConf.module][this.syncScrollConf.itemName]){switch(this.ftype){case"EN":if(this.prefix=="FNT"){e=this.prefix+"-TRANS"}else{e=this.prefix+"-LANG"}break;case"LANG":e=this.prefix+"-EN";break;case"TRANS":if(PhDOE.user.conf.newFile.secondPanel=="google"){e=this.prefix+"-GGTRANS"}if(PhDOE.user.conf.newFile.secondPanel=="originalFile"){e=this.prefix+"-EN"}break;case"GGTRANS":e=this.prefix+"-TRANS";break}f=Ext.getCmp(e+"-PANEL-"+this.fid);d=Ext.getCmp(e+"-FILE-"+this.fid);if(f.activeScroll===false){this.activeScroll=true;d.scrollTo(g)}else{f.activeScroll=false}}}}}]});ui.cmp.FilePanel.superclass.initComponent.call(this)}});Ext.namespace("ui","ui.cmp");ui.cmp.GoogleTranslationPanel=Ext.extend(Ext.FormPanel,{border:false,labelAlign:"top",bodyStyle:"padding:5px",autoScroll:true,getTranslation:function(c){new ui.task.GetGGTranslation({str:c})},initComponent:function(){Ext.apply(this,{items:[{xtype:"textarea",anchor:"90%",fieldLabel:String.format(_("String to translate (en => {0})"),PhDOE.user.lang),name:"GGTranslate-string",id:"GGTranslate-string",allowBlank:false},{scope:this,xtype:"button",text:_("Translate !"),id:"GGTranslate-btn",handler:function(){this.getTranslation(Ext.getCmp("GGTranslate-string").getValue())}},{xtype:"panel",anchor:"100%",border:false,bodyStyle:"padding:5px",html:''}]});ui.cmp.GoogleTranslationPanel.superclass.initComponent.call(this)}});Ext.namespace("ui","ui.cmp","ui.cmp._MainMenu");ui.cmp.MainMenu=function(c){Ext.apply(this,c);this.init();ui.cmp.MainMenu.superclass.constructor.call(this)};ui.cmp._MainMenu.store=new Ext.data.Store({proxy:new Ext.data.HttpProxy({url:"./do/getAvailableLanguage"}),reader:new Ext.data.JsonReader({root:"Items",totalProperty:"nbItems",idProperty:"code",fields:[{name:"code"},{name:"iconCls"},{name:"name"}]})});ui.cmp._MainMenu.store.on("load",function(c){Ext.getDom("Info-Language").innerHTML=Ext.getDom("Topic-Language").innerHTML=c.getById(PhDOE.user.lang).data.name;c.each(function(d){var e=new Ext.menu.Item({text:d.data.name+" ("+d.data.code+")",iconCls:"mainMenuLang flags "+d.data.iconCls,disabled:(d.data.code===PhDOE.user.lang),handler:function(){XHR({params:{task:"switchLang",lang:d.data.code},success:function(){window.location.reload()}})}});Ext.getCmp("MenuLang-ct").add(e)})},this);Ext.extend(ui.cmp.MainMenu,Ext.menu.Menu,{id:"mainMenu",init:function(){var c=new Ext.menu.Menu({id:"MenuLang-ct"});Ext.apply(this,{items:[{text:_("Refresh all data"),disabled:(!PhDOE.user.isGlobalAdmin),iconCls:"iconRefresh",handler:function(){Ext.getBody().mask(' '+_("Verify if there is an update in progress. Please, wait..."));XHR({params:{task:"checkLockFile",lockFiles:"project_"+PhDOE.project+"_lock_update_repository|project_"+PhDOE.project+"_lock_apply_tools"},success:function(){Ext.getBody().unmask();Ext.MessageBox.show({title:_("Status"),msg:_("There is currently an update in progress. You can't perform an update now."),buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.INFO})},failure:function(){Ext.getBody().unmask();new ui.cmp.SystemUpdatePrompt().show(Ext.get("acc-need-update"))}})}},{text:_("Build tools"),handler:function(){return false},menu:new Ext.menu.Menu({items:[{text:_("Check build"),disabled:(!PhDOE.user.isGlobalAdmin&&!PhDOE.user.isLangAdmin),iconCls:"iconCheckBuild",handler:function(){Ext.getBody().mask(' '+_("Verify if there is a check in progress. Please, wait..."));XHR({params:{task:"checkLockFile",lockFile:"project_"+PhDOE.project+"_lock_check_build_"+PhDOE.user.lang},success:function(){Ext.getBody().unmask();Ext.MessageBox.show({title:_("Status"),msg:_("There is currently a check in progress for this language. You can't perform a new check now."),buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.INFO})},failure:function(){Ext.getBody().unmask();new ui.cmp.CheckBuildPrompt().show(Ext.get("acc-need-update"))}})}},{text:_("Show last failed build"),iconCls:"iconBuildStatus",handler:function(){var d=Ext.getCmp("tab-build-status");if(!d){Ext.getCmp("main-panel").add({id:"tab-build-status",title:_("Last failed build"),iconCls:"iconBuildStatus",layout:"fit",closable:true,items:[new ui.cmp.BuildStatus()]})}Ext.getCmp("main-panel").setActiveTab("tab-build-status")}}]})},{text:_("EN tools"),handler:function(){return false},menu:new Ext.menu.Menu({items:[{text:_("Script check entities"),iconCls:"iconCheckEntities",handler:function(){return false},menu:new Ext.menu.Menu({items:[{text:_("View the last result"),id:"btn-check-entities-view-last-result",iconCls:"iconTabView",handler:function(){var d=Ext.getCmp("tab-check-entities");if(!d){Ext.getCmp("main-panel").add({id:"tab-check-entities",title:_("Check entities"),iconCls:"iconCheckEntities",layout:"fit",closable:true,items:[new ui.cmp.CheckEntities()]})}Ext.getCmp("main-panel").setActiveTab("tab-check-entities")}},{text:_("Run this script"),iconCls:"iconRun",disabled:!PhDOE.user.haveKarma,handler:function(){Ext.getBody().mask(' '+_("Verify if there is an entities check in progress. Please, wait..."));XHR({params:{task:"checkLockFile",lockFile:"project_"+PhDOE.project+"_lock_check_entities"},success:function(){Ext.getBody().unmask();Ext.MessageBox.show({title:_("Status"),msg:_("There is currently a check in progress for the entities. You can't perform a new check now."),buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.INFO})},failure:function(){Ext.getBody().unmask();if(!Ext.getCmp("win-check-entities")){new ui.cmp.CheckEntitiesPrompt()}Ext.getCmp("win-check-entities").show(Ext.get("mainMenu"))}})}}]})},{text:_("Script check document"),iconCls:"iconCheckDoc",handler:function(){var d=Ext.getCmp("tab-check-doc");if(!d){Ext.getCmp("main-panel").add({id:"tab-check-doc",title:"Check Doc",iconCls:"iconCheckDoc",layout:"fit",closable:true,items:[new ui.cmp.CheckDoc()]})}Ext.getCmp("main-panel").setActiveTab("tab-check-doc")}}]})},"-",{text:_("Configure"),iconCls:"iconConf",tooltip:"Configure this tool",id:"winconf-btn",handler:function(){if(!Ext.getCmp("win-conf")){new ui.cmp.EditorConf()}Ext.getCmp("win-conf").show(Ext.get("mainMenu"))}},"-",{id:"menuLang",iconCls:"iconSwitchLang",text:_("Switch to language..."),handler:function(){return false},menu:c},{text:_("Erase my personal data"),iconCls:"iconErasePersonalData",disabled:!PhDOE.user.haveKarma,handler:function(){Ext.MessageBox.confirm(_("Confirm"),_("This action will erase your personal data. All content about this account will be deleted definitively. Are you sure you want to do that ?"),function(d){if(d==="yes"){Ext.getBody().mask(' '+_("Please, wait..."));XHR({params:{task:"erasePersonalData"},success:function(){Ext.getBody().unmask();Ext.MessageBox.show({title:_("Thanks !"),msg:_("Thank you for using this application !"),icon:Ext.MessageBox.INFO,buttons:Ext.MessageBox.OK,fn:function(){window.location.href="./do/logout?csrfToken="+csrfToken}})},failure:function(){Ext.getBody().unmask();PhDOE.winForbidden()}})}})}},{text:_("Log out"),iconCls:"iconLogOut",handler:function(){Ext.MessageBox.confirm(_("Confirm"),_("Are you sure you want to logout?"),function(d){if(d==="yes"){window.location.href="./do/logout?csrfToken="+csrfToken}})}},"-",{id:"tab-report-bug-btn",text:_("Report bugs"),iconCls:"iconBugs",handler:function(){if(!Ext.getCmp("main-panel").findById("tab-report-bug")){Ext.getCmp("main-panel").add({id:"tab-report-bug",xtype:"panel",title:_("Report bugs"),iconCls:"iconBugs",closable:true,layout:"fit",items:[new Ext.ux.IFrameComponent({id:"frame-tab-report-bug",url:"http://bugs.php.net/"})]});Ext.getCmp("main-panel").setActiveTab("tab-report-bug")}else{Ext.getCmp("main-panel").setActiveTab("tab-report-bug")}}},{id:"tab-documentation-btn",text:_("Documentation"),iconCls:"iconBook",handler:function(){if(!Ext.getCmp("main-panel").findById("tab-documentation")){Ext.getCmp("main-panel").add({id:"tab-documentation",xtype:"panel",title:_("Documentation"),iconCls:"iconBook",closable:true,layout:"fit",items:[new Ext.ux.IFrameComponent({id:"frame-tab-documentation",url:"https://wiki.php.net/doc/editor/"})]});Ext.getCmp("main-panel").setActiveTab("tab-documentation")}else{Ext.getCmp("main-panel").setActiveTab("tab-documentation")}}},{id:"tab-chat-btn",text:_("Chat with us on IRC !"),iconCls:"iconChat",handler:function(){if(!Ext.getCmp("main-panel").findById("tab-chat")){var d=PhDOE.user.login;if(PhDOE.user.isAnonymous){d="an%3F%3F%3F"}Ext.getCmp("main-panel").add({id:"tab-chat",xtype:"panel",title:_("Chat"),iconCls:"iconChat",closable:true,layout:"fit",items:[new Ext.ux.IFrameComponent({id:"frame-tab-chat",url:"https://widget.mibbit.com/?settings=8eec4034df2eb666b0600bdfe151529a&server=irc.umich.edu&channel=%23php.doc&nick=poe_"+d})]})}Ext.getCmp("main-panel").setActiveTab("tab-chat")}},"-",{id:"winabout-btn",text:_("About"),iconCls:"iconHelp",handler:function(){new ui.cmp.About().show(Ext.get("winabout-btn"))}}]})}});Ext.namespace("ui","ui.cmp","ui.cmp.MainPanel");ui.cmp.MainPanel=Ext.extend(Ext.ux.SlidingTabPanel,{activeTab:0,enableTabScroll:true,plugins:["tabclosemenu","dblclickclosetabs"],initComponent:function(c){Ext.apply(this,c);ui.cmp.MainPanel.superclass.initComponent.call(this);this.addEvents({tabLoaded:true});this.on("beforeremove",this.onBeforeRemove,this);this.on("tabchange",this.onTabChange,this);this.on("endDrag",this.onTabChange,this);this.on("tabLoaded",this.onTabLoaded,this)},onTabLoaded:function(d,e){var c=Ext.getCmp(d+"-"+e);if(d==="FNT"){if(c.panTRANSLoaded&&c.panTRANSSecondLoaded){c.tabLoaded=true;c.panTRANSLoaded=c.panTRANSSecondLoaded=false;if(PhDOE.FNTfilePendingOpen[0]){ui.cmp.PendingTranslateGrid.getInstance().openFile(PhDOE.FNTfilePendingOpen[0].id);PhDOE.FNTfilePendingOpen.shift()}}}if(d==="FNU"){if(c.panLANGLoaded&&c.panENLoaded&&c.panDiffLoaded&&c.panVCSLang&&c.panVCSEn){c.tabLoaded=true;c.panLANGLoaded=c.panENLoaded=c.panDiffLoaded=c.panVCSLang=c.panVCSEn=false;if(PhDOE.FNUfilePendingOpen[0]){ui.cmp.StaleFileGrid.getInstance().openFile(PhDOE.FNUfilePendingOpen[0].id);PhDOE.FNUfilePendingOpen.shift()}}}if(d==="FE"){if(c.panLANGLoaded&&c.panENLoaded&&c.panVCSLang&&c.panVCSEn){c.tabLoaded=true;c.panLANGLoaded=c.panENLoaded=c.panVCSLang=c.panVCSEn=false;if(PhDOE.FEfilePendingOpen[0]){ui.cmp.ErrorFileGrid.getInstance().openFile(PhDOE.FEfilePendingOpen[0].id);PhDOE.FEfilePendingOpen.shift()}}}if(d==="FNR"){if(c.panLANGLoaded&&c.panENLoaded&&c.panVCSLang&&c.panVCSEn){c.tabLoaded=true;c.panLANGLoaded=c.panENLoaded=c.panVCSLang=c.panVCSEn=false;if(PhDOE.FNRfilePendingOpen[0]){ui.cmp.PendingReviewGrid.getInstance().openFile(PhDOE.FNRfilePendingOpen[0].id);PhDOE.FNRfilePendingOpen.shift()}}}if(d==="FNIEN"){if(c.panLANGLoaded){c.tabLoaded=true;c.panLANGLoaded=false;if(PhDOE.FNIENfilePendingOpen[0]){ui.cmp.NotInENGrid.getInstance().openFile(PhDOE.FNIENfilePendingOpen[0].id);PhDOE.FNIENfilePendingOpen.shift()}}}if(d==="AF"){if(c.panLoaded&&c.panVCS&&c.panEntities&&c.panAcronyms){c.tabLoaded=true;c.panLoaded=c.panVCS=false;if(PhDOE.AFfilePendingOpen[0]){ui.cmp.RepositoryTree.getInstance().openFile((PhDOE.AFfilePendingOpen[0].nodeID)?"byId":"byPath",(PhDOE.AFfilePendingOpen[0].nodeID)?PhDOE.AFfilePendingOpen[0].nodeID:PhDOE.AFfilePendingOpen[0].fpath,(PhDOE.AFfilePendingOpen[0].nodeID)?false:PhDOE.AFfilePendingOpen[0].fname);PhDOE.AFfilePendingOpen.shift()}}}if(d==="PP"){if(c.panPatchLoaded&&c.panOriginLoaded&&c.panVCS&&c.panPatchContent){c.tabLoaded=true;c.panPatchLoaded=c.panOriginLoaded=c.panVCS=c.panPatchContent=false;if(PhDOE.PPfilePendingOpen[0]){ui.cmp.PendingPatchGrid.getInstance().openFile(PhDOE.PPfilePendingOpen[0].id);PhDOE.PPfilePendingOpen.shift()}}}},onTabChange:function(d,g){if(Ext.getCmp(g.id+"-btn-tabRight-LANG")||Ext.getCmp(g.id+"-btn-tabRight-EN")||Ext.getCmp(g.id+"-btn-tabRight-ALL")||Ext.getCmp(g.id+"-btn-tabRight-NotInEN")||Ext.getCmp(g.id+"-btn-tabRight-PATCH")||Ext.getCmp(g.id+"-btn-tabRight-TRANS")||Ext.getCmp(g.id+"-btn-tabRight-NEW")){var c=g.id,f=Ext.getCmp("main-panel").layout.container.items.items,h,e;for(e=0;eDo you really want to close?"),buttons:Ext.Msg.YESNO,icon:Ext.Msg.QUESTION,fn:function(j,k){if(j==="yes"){f.un("beforeremove",this.onBeforeRemove,this);f.remove(g);f.addListener("beforeremove",this.onBeforeRemove,this)}}});return false}else{return true}}else{return true}},openDiffTab:function(d){var f=d.DiffType,k=d.currentOwner||"",h=d.fileIdDB||"",j=d.FileName||"",e=d.FilePath||"",p=d.patchID||"",o=d.patchName||"",g,l=Ext.util.md5(o+p+e+j),q,c,m;if(p!=""){q=String.format(_("Diff for patch: {0}"),o);g="./do/downloadPatch?patchID="+p+"&csrfToken="+csrfToken;c=_("Download the unified diff as a patch")}else{q=String.format(_("Diff for file: {0}"),e+j);g="./do/downloadPatch?FilePath="+e+"&FileName="+j+"&csrfToken="+csrfToken;c=_("Download the diff as a patch")}if(!Ext.getCmp("main-panel").findById("diff_panel_"+l)){m=[{xtype:"buttongroup",items:[{xtype:"button",iconCls:"iconEdit",tooltip:_("Edit in a new tab"),handler:function(){ui.cmp.RepositoryTree.getInstance().openFile("byPath",e,j)}},{xtype:"button",iconCls:"iconDownloadDiff",tooltip:c,handler:function(){window.location.href=g}}]},((PhDOE.user.isGlobalAdmin||PhDOE.user.isLangAdmin)?{xtype:"buttongroup",items:[{xtype:"button",iconCls:"iconPageDelete",tooltip:_("Clear this change"),handler:function(){new ui.task.ClearLocalChangeTask({ftype:"update",fpath:e,fname:j});Ext.getCmp("main-panel").remove("diff_panel_"+l)}},{xtype:"button",iconCls:"iconSwitchLang",tooltip:_("Change file's owner"),handler:function(){new ui.cmp.ChangeFileOwner({fileIdDB:h,fileFolder:e,fileName:j,currentOwner:k})}}]}:"")];Ext.getCmp("main-panel").add({xtype:"panel",id:"diff_panel_"+l,title:_("Diff"),tabTip:q,closable:true,autoScroll:true,iconCls:"iconTabLink",html:'',tbar:m});Ext.getCmp("main-panel").setActiveTab("diff_panel_"+l);Ext.get("diff_panel_"+l).mask(''+_("Please, wait..."));XHR({params:{task:"getDiff",DiffType:f,FilePath:e,FileName:j,patchID:p},success:function(s){var u=Ext.util.JSON.decode(s.responseText),t="";if(p==""){t='
"}u.content=t+u.content;Ext.get("diff_content_"+l).dom.innerHTML=u.content;Ext.get("diff_panel_"+l).unmask()}})}else{Ext.getCmp("main-panel").setActiveTab("diff_panel_"+l)}}});Ext.reg("mainpanel",ui.cmp.MainPanel);Ext.namespace("ui","ui.cmp");ui.cmp.ManagePatchPrompt=Ext.extend(Ext.Window,{title:"",width:450,height:260,minWidth:450,minHeight:300,layout:"fit",plain:true,bodyStyle:"padding:5px;",buttonAlign:"center",iconCls:"iconPatch",closeAction:"hide",nodesToAdd:false,patchName:"",patchDescription:"",patchEmail:"",patchID:false,initComponent:function(){Ext.apply(this,{buttons:[{text:(this.patchID)?_("Save"):_("Create"),handler:function(){var d=this.ownerCt.ownerCt,c=d.findByType("form").shift().getForm().getValues();XHR({params:{task:"managePatch",name:c.name,description:c.description,email:c.email,patchID:d.patchID},success:function(e){var f=Ext.util.JSON.decode(e.responseText);d.hide();if(d.patchID){ui.cmp.PatchesTreeGrid.getInstance().modPatchName({newPatchName:c.name,newPatchDescription:c.description,newPatchEmail:c.email,patchID:d.patchID})}if(d.nodesToAdd){ui.task.MoveToPatch({patchID:f.patchID,patchName:c.name,patchDescription:c.description,patchEmail:c.email,nodesToAdd:d.nodesToAdd})}}})}},{text:_("Cancel"),handler:function(){this.ownerCt.ownerCt.hide()}}],items:[{xtype:"form",baseCls:"x-plain",labelWidth:110,defaultType:"textfield",labelAlign:"top",items:[{name:"name",fieldLabel:_("Patch name"),anchor:"100%",value:this.patchName},{name:"description",xtype:"textarea",fieldLabel:_("Patch description"),tooltipText:_("This description will be the default during the validation of the patch by a valid user."),anchor:"100%",value:this.patchDescription},{name:"email",fieldLabel:_("Email"),tooltipText:_("If provided, an email will be send to you to inform that the patch is commited."),anchor:"100%",value:this.patchEmail}]}]});ui.cmp.ManagePatchPrompt.superclass.initComponent.call(this)}});Ext.namespace("ui","ui.cmp","ui.cmp._NotInENGrid");ui.cmp._NotInENGrid.store=new Ext.data.GroupingStore({proxy:new Ext.data.HttpProxy({url:"./do/getFilesNotInEn"}),reader:new Ext.data.JsonReader({root:"Items",totalProperty:"nbItems",idProperty:"id",fields:[{name:"id"},{name:"path"},{name:"name"},{name:"fileModified"}]}),sortInfo:{field:"path",direction:"ASC"},groupField:"path",listeners:{datachanged:function(c){Ext.getDom("acc-notInEn-nb").innerHTML=c.getCount()}}});ui.cmp._NotInENGrid.columns=[{id:"name",header:_("Files"),sortable:true,dataIndex:"name",renderer:function(d,c,e){if(e.data.fileModified){var f=Ext.util.JSON.decode(e.data.fileModified);if(f.user===PhDOE.user.login&&f.anonymousIdent===PhDOE.user.anonymousIdent){return""+d+""}else{return""+d+""}}else{return d}}},{header:_("Path"),dataIndex:"path",hidden:true}];ui.cmp._NotInENGrid.view=new Ext.grid.GroupingView({forceFit:true,startCollapsed:true,groupTextTpl:'{[values.rs[0].data["path"]]} ({[values.rs.length]} {[values.rs.length > 1 ? "'+_("Files")+'" : "'+_("File")+'"]})',deferEmptyText:false,emptyText:'
'+_("No Files")+"
",getRowClass:function(c){if(c.data.fileModified){var d=Ext.util.JSON.decode(c.data.fileModified);return(d.user===PhDOE.user.login&&d.anonymousIdent===PhDOE.user.anonymousIdent)?"fileModifiedByMe":"fileModifiedByAnother"}return false}});ui.cmp._NotInENGrid.menu=function(c){Ext.apply(this,c);this.init();ui.cmp._NotInENGrid.menu.superclass.constructor.call(this)};Ext.extend(ui.cmp._NotInENGrid.menu,Ext.menu.Menu,{init:function(){Ext.apply(this,{items:[{scope:this,text:""+_("View in a new tab")+"",iconCls:"iconView",handler:function(){this.grid.fireEvent("rowdblclick",this.grid,this.rowIdx,this.event)}},{scope:this,text:_("Remove this file"),hidden:(this.grid.store.getAt(this.rowIdx).data.fileModified),iconCls:"iconTrash",handler:function(){var e=this.grid.store.getAt(this.rowIdx),d=e.data.path,c=e.data.name;new ui.task.MarkDeleteTask({fpath:d,fname:c,storeRecord:e})}}]})}});ui.cmp.NotInENGrid=Ext.extend(Ext.grid.GridPanel,{loadMask:true,border:false,autoExpandColumn:"name",enableDragDrop:true,ddGroup:"mainPanelDDGroup",view:ui.cmp._NotInENGrid.view,columns:ui.cmp._NotInENGrid.columns,onRowContextMenu:function(c,f,d){d.stopEvent();c.getSelectionModel().selectRow(f);new ui.cmp._NotInENGrid.menu({grid:c,rowIdx:f,event:d}).showAt(d.getXY())},onRowDblClick:function(c,f,d){this.openFile(c.store.getAt(f).data.id)},openFile:function(g){var e=this.store.getById(g),d=e.data.path,c=e.data.name,f=Ext.util.md5("FNIEN-"+PhDOE.user.lang+d+c);if(!Ext.getCmp("main-panel").findById("FNIEN-"+f)){Ext.getCmp("main-panel").add({id:"FNIEN-"+f,layout:"border",title:c,originTitle:c,iconCls:"iconTabView",closable:true,tabLoaded:false,panLANGLoaded:false,defaults:{split:true},tabTip:String.format(_("Not In EN: in {0}"),d),items:[new ui.cmp.FilePanel({id:"FNIEN-NotInEN-PANEL-"+f,region:"center",title:_("File: ")+d+c,prefix:"FNIEN",ftype:"NotInEN",fid:f,fpath:d,fname:c,original:true,readOnly:true,lang:PhDOE.user.lang,parser:"xml",storeRecord:e,syncScroll:false})]})}Ext.getCmp("main-panel").setActiveTab("FNIEN-"+f)},initComponent:function(){Ext.apply(this,{store:ui.cmp._NotInENGrid.store});ui.cmp.NotInENGrid.superclass.initComponent.call(this);this.on("rowcontextmenu",this.onRowContextMenu,this);this.on("rowdblclick",this.onRowDblClick,this)}});ui.cmp._NotInENGrid.instance=null;ui.cmp.NotInENGrid.getInstance=function(c){if(!ui.cmp._NotInENGrid.instance){if(!c){c={}}ui.cmp._NotInENGrid.instance=new ui.cmp.NotInENGrid(c)}return ui.cmp._NotInENGrid.instance};Ext.namespace("ui","ui.cmp","ui.cmp._PatchesTreeGrid","ui.cmp._PatchesTreeGrid.menu");ui.cmp._PatchesTreeGrid.menu.users=function(c){Ext.apply(this,c);this.init();ui.cmp._PatchesTreeGrid.menu.users.superclass.constructor.call(this)};Ext.extend(ui.cmp._PatchesTreeGrid.menu.users,Ext.menu.Menu,{init:function(){var c=[];this.node.cascade(function(d){if(d.attributes.type!=="folder"&&d.attributes.type!=="patch"&&d.attributes.type!=="user"){c.push(d)}},this);Ext.apply(this,{items:[{scope:this,text:String.format(_("Send an email to {0}"),""+this.node.attributes.task+""),iconCls:"iconSendEmail",hidden:(this.node.attributes.task===PhDOE.user.login||!this.node.attributes.email),handler:function(){var d=new ui.cmp.EmailPrompt();d.setData(this.node.attributes.task,this.node.attributes.email);d.show(this.node.el)}},{text:_("Back all files to work in progress module"),hidden:(this.node.attributes.task!==PhDOE.user.login),disabled:Ext.isEmpty(c),iconCls:"iconWorkInProgress",handler:function(){ui.task.MoveToWork({nodesToAdd:c})}},{xtype:"menuseparator",hidden:!(PhDOE.user.haveKarma&&this.node.attributes.task==PhDOE.user.login)},new ui.cmp._WorkTreeGrid.menu.commit({hidden:!(PhDOE.user.haveKarma&&this.node.attributes.task==PhDOE.user.login),module:"patches",from:"user",node:false,folderNode:false,patchNode:false,userNode:this.node})]})}});ui.cmp._PatchesTreeGrid.menu.patches=function(c){Ext.apply(this,c);this.init();ui.cmp._PatchesTreeGrid.menu.patches.superclass.constructor.call(this)};Ext.extend(ui.cmp._PatchesTreeGrid.menu.patches,Ext.menu.Menu,{init:function(){var e=this.node,f=[],d=e.parentNode.attributes.task,c=e.parentNode.attributes.isAnonymous,g=e.parentNode.attributes.haveKarma;this.node.cascade(function(h){if(h.attributes.type!=="folder"&&h.attributes.type!=="patch"&&h.attributes.type!=="user"){f.push(h)}},this);Ext.apply(this,{items:[{text:_("Edit the description of this patch"),iconCls:"iconPendingPatch",hidden:(d!==PhDOE.user.login),handler:function(){var h=new ui.cmp.ManagePatchPrompt({title:_("Modify this patch description"),patchName:e.attributes.task,patchDescription:e.attributes.patchDescription,patchEmail:e.attributes.patchEmail,patchID:e.attributes.idDB});h.show(this.el)}},{text:_("Delete this patch"),iconCls:"iconTrash",hidden:(d!==PhDOE.user.login),handler:function(){ui.task.DeletePatchTask({patchID:e.attributes.idDB})}},{xtype:"menuseparator",hidden:!(d==PhDOE.user.login)},{text:_("Back all this patch to work in progress module"),iconCls:"iconWorkInProgress",hidden:!(d==PhDOE.user.login),disabled:Ext.isEmpty(f),handler:function(){ui.task.MoveToWork({nodesToAdd:f})}},{xtype:"menuseparator"},{text:_("View unified diff"),iconCls:"iconViewDiff",handler:function(){Ext.getCmp("main-panel").openDiffTab({DiffType:"file",patchID:e.attributes.idDB,patchName:e.attributes.task})}},{text:_("Download the unified diff as a patch"),iconCls:"iconDownloadDiff",handler:function(){window.location.href="./do/downloadPatch?patchID="+e.attributes.idDB+"&csrfToken="+csrfToken}},{xtype:"menuseparator",hidden:!(PhDOE.user.haveKarma&&(d===PhDOE.user.login||!g))},new ui.cmp._WorkTreeGrid.menu.commit({hidden:!(PhDOE.user.haveKarma&&(d===PhDOE.user.login||!g)),module:"patches",from:c?"anonymousPatch":"patch",node:false,folderNode:false,patchNode:this.node,userNode:this.node.parentNode}),{xtype:"menuseparator",hidden:!(PhDOE.user.isGlobalAdmin||PhDOE.user.isLangAdmin)},new ui.cmp._WorkTreeGrid.menu.admin({hidden:!(PhDOE.user.isGlobalAdmin||PhDOE.user.isLangAdmin),from:"patch",node:this.node})]})}});ui.cmp._PatchesTreeGrid.menu.folders=function(c){Ext.apply(this,c);this.init();ui.cmp._PatchesTreeGrid.menu.folders.superclass.constructor.call(this)};Ext.extend(ui.cmp._PatchesTreeGrid.menu.folders,Ext.menu.Menu,{init:function(){var c=[];if(this.node.parentNode.parentNode.attributes.task!==PhDOE.user.login){return false}this.node.cascade(function(d){if(d.attributes.type!=="folder"&&d.attributes.type!=="patch"&&d.attributes.type!=="user"){c.push(d)}},this);Ext.apply(this,{items:[{text:_("Back all this folder to work in progress module"),iconCls:"iconWorkInProgress",handler:function(){ui.task.MoveToWork({nodesToAdd:c})}},{xtype:"menuseparator",hidden:!PhDOE.user.haveKarma},new ui.cmp._WorkTreeGrid.menu.commit({hidden:!PhDOE.user.haveKarma,module:"patches",from:"folder",node:false,folderNode:this.node,patchNode:this.node.parentNode,userNode:this.node.parentNode.parentNode})]})}});ui.cmp._PatchesTreeGrid.menu.files=function(c){Ext.apply(this,c);this.init();ui.cmp._PatchesTreeGrid.menu.files.superclass.constructor.call(this)};Ext.extend(ui.cmp._PatchesTreeGrid.menu.files,Ext.menu.Menu,{init:function(){var j=this.node,o=j.attributes.type,h,d=j.parentNode.attributes.task,g=j.attributes.task,l=j.ownerTree,m=j.attributes.idDB,e=[],f=this.node.parentNode.parentNode.parentNode.attributes.task,c=this.node.parentNode.parentNode.parentNode.attributes.haveKarma,k;k=j.parentNode.attributes.task.split("/");h=k[0];this.node.cascade(function(p){if(p.attributes.type!=="folder"&&p.attributes.type!=="patch"&&p.attributes.type!=="user"){e.push(p)}},this);Ext.apply(this,{items:[{text:""+((o==="delete")?_("View in a new tab"):_("Edit in a new tab"))+"",iconCls:"iconEdit",handler:function(){ui.cmp.WorkTreeGrid.getInstance().openFile(j)}},{text:_("Back this file to work in progress module"),hidden:(f!==PhDOE.user.login),iconCls:"iconWorkInProgress",handler:function(){ui.task.MoveToWork({nodesToAdd:e})}},"-",{text:_("View diff"),iconCls:"iconViewDiff",handler:function(){Ext.getCmp("main-panel").openDiffTab({DiffType:"file",FileName:g,FilePath:d,currentOwner:f,fileIdDB:j.attributes.idDB})}},{text:_("Download the diff as a patch"),iconCls:"iconDownloadDiff",handler:function(){window.location.href="./do/downloadPatch?FilePath="+d+"&FileName="+g+"&csrfToken="+csrfToken}},{xtype:"menuseparator",hidden:!(f==PhDOE.user.login)},{text:((o==="delete")?_("Cancel this deletion"):_("Clear this change")),hidden:!(f==PhDOE.user.login),iconCls:"iconPageDelete",handler:function(){new ui.task.ClearLocalChangeTask({ftype:o,fpath:d,fname:g})}},{xtype:"menuseparator",hidden:!(PhDOE.user.haveKarma&&(f===PhDOE.user.login||!c))},new ui.cmp._WorkTreeGrid.menu.commit({module:"patches",hidden:!(PhDOE.user.haveKarma&&(f===PhDOE.user.login||!c)),from:"file",node:this.node,folderNode:this.node.parentNode,patchNode:this.node.parentNode.parentNode,userNode:this.node.parentNode.parentNode.parentNode}),{xtype:"menuseparator",hidden:!(PhDOE.user.isGlobalAdmin||PhDOE.user.isLangAdmin)},new ui.cmp._WorkTreeGrid.menu.admin({hidden:!(PhDOE.user.isGlobalAdmin||PhDOE.user.isLangAdmin),fileLang:h,from:"file",node:this.node,folderNode:this.node.parentNode,userNode:this.node.parentNode.parentNode.parentNode})]})}});ui.cmp.PatchesTreeGrid=Ext.extend(Ext.ux.tree.TreeGrid,{onContextMenu:function(f,g){g.stopEvent();var d=f.attributes.type,c;switch(d){case"user":f.select();c=new ui.cmp._PatchesTreeGrid.menu.users({node:f});break;case"folder":f.select();c=new ui.cmp._PatchesTreeGrid.menu.folders({node:f});break;case"patch":f.select();c=new ui.cmp._PatchesTreeGrid.menu.patches({node:f});break;default:f.select();c=new ui.cmp._PatchesTreeGrid.menu.files({node:f});break}c.showAt(g.getXY())},modPatchName:function(c){var d=this.getRootNode(),e=d.findChild("idDB",c.patchID,true);e.setText(c.newPatchName);e.attributes.patchDescription=c.newPatchDescription;e.attributes.patchEmail=c.newPatchEmail;e.attributes.task=c.newPatchName},initComponent:function(){Ext.apply(this,{animate:true,useArrows:true,autoScroll:true,border:false,containerScroll:true,selModel:new Ext.tree.MultiSelectionModel(),columns:[{header:_("Users"),dataIndex:"task",uiProvider:{editable:true,qtip:"help"},tpl:new Ext.XTemplate("{task:this.formatUserName}",{formatUserName:function(c,d){if(d.type==="user"){if(d.userID){d.qtip=_("userID: ")+d.userID}return c}if(d.type==="patch"){if(d.creationDate){d.qtip=_("Creation date: ")+Date.parseDate(d.creationDate,"Y-m-d H:i:s").format(_("Y-m-d, H:i"))}return c}return c}})},{header:_("Last modified"),width:120,dataIndex:"last_modified",align:"center",tpl:new Ext.XTemplate("{last_modified:this.formatDate}",{formatDate:function(c,d){if(d.type!=="user"&&d.type!=="folder"&&d.type!=="patch"){return Date.parseDate(c,"Y-m-d H:i:s").format(_("Y-m-d, H:i"))}else{return""}}})}],loader:{dataUrl:"./do/getWork",baseParams:{module:"PatchesForReview"}}});ui.cmp.PatchesTreeGrid.superclass.initComponent.call(this);this.on("contextmenu",this.onContextMenu,this);this.on("resize",this.resizeCmp,this);this.on("dblclick",ui.cmp.WorkTreeGrid.getInstance().openFile,this);this.getRootNode().on("beforechildrenrendered",function(){this.updateFilesCounter.defer(200,this)},this)},resizeCmp:function(g,f,d,e){this.columns[0].width=e-(this.columns[1].width+5);this.updateColumnWidths()},deletePatch:function(q){var e=this.getRootNode(),o,c,d,f,r=[],p,m,h,g;for(p=0;p"}else{j=String.format(_("File EN modified by {0}"),h.user)+" "}}if(f.data.fileModifiedLang){g=Ext.util.JSON.decode(f.data.fileModifiedLang);if(g.user===c&&g.anonymousIdent===PhDOE.user.anonymousIdent){j+=String.format(_("File {0} modified by me"),PhDOE.user.lang.ucFirst())}else{j+=String.format(_("File {0} modified by {1}"),PhDOE.user.lang.ucFirst(),g.user)}}if(j!==""){return""+e+""}else{return e}}},{header:_("Reviewed"),width:45,sortable:true,dataIndex:"reviewed"},{header:_("Reviewer"),width:45,sortable:true,dataIndex:"maintainer"},{header:_("Path"),dataIndex:"path",hidden:true}];ui.cmp._PendingReviewGrid.view=new Ext.grid.GroupingView({forceFit:true,startCollapsed:true,groupTextTpl:'{[values.rs[0].data["path"]]} ({[values.rs.length]} {[values.rs.length > 1 ? "'+_("Files")+'" : "'+_("File")+'"]})',getRowClass:function(d){if(d.data.fileModifiedEN||d.data.fileModifiedLang){var f=Ext.util.JSON.decode(d.data.fileModifiedEN),e=Ext.util.JSON.decode(d.data.fileModifiedLang),c;c=(PhDOE.user.isAnonymous)?"anonymous":PhDOE.user.login;return((f.user===c&&f.anonymousIdent===PhDOE.user.anonymousIdent)||(e.user===c&&e.anonymousIdent===PhDOE.user.anonymousIdent))?"fileModifiedByMe":"fileModifiedByAnother"}return false},deferEmptyText:false,emptyText:'
'+_("No Files")+"
"});Ext.namespace("ui.cmp._PendingReviewGrid.menu");ui.cmp._PendingReviewGrid.menu.group=function(c){Ext.apply(this,c);this.init();ui.cmp._PendingReviewGrid.menu.group.superclass.constructor.call(this)};Ext.extend(ui.cmp._PendingReviewGrid.menu.group,Ext.menu.Item,{iconCls:"iconViewDiff",init:function(){Ext.apply(this,{text:String.format(_("Open all files about {0} extension"),this.gname.ucFirst()),handler:function(){Ext.getBody().mask(' '+String.format(_("Open all files about {0} extension"),this.gname.ucFirst())+". "+_("Please, wait..."));XHR({params:{task:"getAllFilesAboutExtension",ExtName:this.gname},success:function(d){var e=Ext.util.JSON.decode(d.responseText),c;PhDOE.AFfilePendingOpen=[];for(c=0;c"+_("Edit in a new tab")+"",iconCls:"iconFilesNeedReviewed",scope:this,handler:function(){this.grid.fireEvent("rowdblclick",this.grid,this.rowIdx,this.event)}},{scope:this,hidden:this.hideDiffMenu,text:_("View diff..."),iconCls:"iconViewDiff",menu:new Ext.menu.Menu({items:[{scope:this,hidden:(this.grid.store.getAt(this.rowIdx).data.fileModifiedEN===false),text:String.format(_("... of the {0} file"),"EN"),handler:function(){Ext.getCmp("main-panel").openDiffTab({DiffType:"file",FileName:this.fname,FilePath:"en"+this.fpath})}},{scope:this,hidden:(this.grid.store.getAt(this.rowIdx).data.fileModifiedLang===false),text:String.format(_("... of the {0} file"),PhDOE.user.lang.ucFirst()),handler:function(){Ext.getCmp("main-panel").openDiffTab({DiffType:"file",FileName:this.fname,FilePath:PhDOE.user.lang+this.fpath})}}]})},new Ext.menu.Separator({hidden:this.hideGroup}),new ui.cmp._PendingReviewGrid.menu.group({gname:this.gname,hidden:this.hideGroup})]})}});ui.cmp.PendingReviewGrid=Ext.extend(Ext.grid.GridPanel,{loadMask:true,border:false,autoExpandColumn:"name",enableDragDrop:true,ddGroup:"mainPanelDDGroup",columns:ui.cmp._PendingReviewGrid.columns,view:ui.cmp._PendingReviewGrid.view,onRowContextMenu:function(d,k,h){h.stopEvent();var g=d.store.getAt(k),f=g.data.path,c=g.data.name,j=f.split("/");d.getSelectionModel().selectRow(k);new ui.cmp._PendingReviewGrid.menu.main({grid:d,rowIdx:k,event:h,fpath:f,fname:c,hideDiffMenu:(g.data.fileModifiedEN===false&&g.data.fileModifiedLang===false),hideGroup:(j[1]!=="reference"),gname:(j[2])?j[2]:""}).showAt(h.getXY())},onRowDblClick:function(c,f,d){this.openFile(c.store.getAt(f).data.id)},openFile:function(g){var e=this.store.getById(g),d=e.data.path,c=e.data.name,f=Ext.util.md5("FNR-"+PhDOE.user.lang+d+c);if(!Ext.getCmp("main-panel").findById("FNR-"+f)){Ext.getCmp("main-panel").add({id:"FNR-"+f,title:c,layout:"border",iconCls:"iconTabNeedReviewed",closable:true,tabLoaded:false,panVCSLang:!PhDOE.user.conf.reviewed.toolsPanelLogLoad,panVCSEn:!PhDOE.user.conf.reviewed.toolsPanelLogLoad,panLANGLoaded:false,panENLoaded:false,originTitle:c,defaults:{split:true},tabTip:String.format(_("Need Reviewed in: {0}"),d),listeners:{resize:function(h){Ext.getCmp("FNR-EN-PANEL-"+f).setWidth(h.getWidth()/2)}},items:[{region:"west",xtype:"panel",title:_("Tools"),iconCls:"iconConf",collapsedIconCls:"iconConf",plugins:[Ext.ux.PanelCollapsedTitle],collapsible:true,collapsed:!PhDOE.user.conf.reviewed.toolsPanelDisplay,layout:"fit",bodyBorder:false,width:PhDOE.user.conf.reviewed.toolsPanelWidth||375,listeners:{collapse:function(){if(this.ownerCt.tabLoaded){new ui.task.UpdateConfTask({module:"reviewed",itemName:"toolsPanelDisplay",value:false,notify:false})}},expand:function(){if(this.ownerCt.tabLoaded){new ui.task.UpdateConfTask({module:"reviewed",itemName:"toolsPanelDisplay",value:true,notify:false})}},resize:function(h,j){if(this.ownerCt.tabLoaded&&j&&j!=PhDOE.user.conf.reviewed.toolsPanelWidth){new ui.task.UpdateConfTask({module:"reviewed",itemName:"toolsPanelWidth",value:j,notify:false})}}},items:{xtype:"tabpanel",activeTab:0,tabPosition:"bottom",enableTabScroll:true,defaults:{autoScroll:true},items:[new ui.cmp.VCSLogGrid({layout:"fit",title:String.format(_("{0} Log"),PhDOE.user.lang.ucFirst()),prefix:"FNR-LANG",fid:f,fpath:PhDOE.user.lang+d,fname:c,loadStore:PhDOE.user.conf.reviewed.toolsPanelLogLoad}),new ui.cmp.VCSLogGrid({layout:"fit",title:String.format(_("{0} Log"),"En"),prefix:"FNR-EN",fid:f,fpath:"en"+d,fname:c,loadStore:PhDOE.user.conf.reviewed.toolsPanelLogLoad}),new ui.cmp.DictionaryGrid({layout:"fit",title:_("Dictionary"),prefix:"FNR",fid:f})]}},new ui.cmp.FilePanel({id:"FNR-LANG-PANEL-"+f,region:"center",title:String.format(_("{0} File: "),PhDOE.user.lang.ucFirst())+d+c,prefix:"FNR",ftype:"LANG",spellCheck:PhDOE.user.conf.reviewed.enableSpellCheckLang,spellCheckConf:{module:"reviewed",itemName:"enableSpellCheckLang"},fid:f,fpath:d,fname:c,lang:PhDOE.user.lang,parser:"xml",storeRecord:e,syncScrollCB:true,syncScroll:true,syncScrollConf:{module:"reviewed",itemName:"syncScrollbars"}}),new ui.cmp.FilePanel({id:"FNR-EN-PANEL-"+f,region:"east",title:_("en File: ")+d+c,prefix:"FNR",ftype:"EN",original:true,readOnly:true,openInNewTabBtn:true,fid:f,fpath:d,fname:c,lang:"en",parser:"xml",storeRecord:e,syncScroll:true,syncScrollConf:{module:"reviewed",itemName:"syncScrollbars"}})]})}Ext.getCmp("main-panel").setActiveTab("FNR-"+f)},initComponent:function(){Ext.apply(this,{store:ui.cmp._PendingReviewGrid.store,tbar:[_("Filter: ")," ",new Ext.form.TwinTriggerField({id:"FNR-filter",width:180,hideTrigger1:true,enableKeyEvents:true,validateOnBlur:false,validationEvent:false,trigger1Class:"x-form-clear-trigger",trigger2Class:"x-form-search-trigger",listeners:{keypress:function(d,c){if(c.getKey()===c.ENTER){this.onTrigger2Click()}}},onTrigger1Click:function(){this.setValue("");this.triggers[0].hide();this.setSize(180,10);ui.cmp._PendingReviewGrid.instance.store.clearFilter()},onTrigger2Click:function(){var c=this.getValue(),d;if(c===""||c.length<3){this.markInvalid(_("Your filter must contain at least 3 characters"));return}this.clearInvalid();this.triggers[0].show();this.setSize(180,10);d=new RegExp(c,"i");ui.cmp._PendingReviewGrid.instance.store.filterBy(function(e){if(d.test(e.data.path)||d.test(e.data.name)||d.test(e.data.reviewed)||d.test(e.data.maintainer)){return true}else{return false}},this)}})]});ui.cmp.PendingReviewGrid.superclass.initComponent.call(this);this.on("rowcontextmenu",this.onRowContextMenu,this);this.on("rowdblclick",this.onRowDblClick,this)}});ui.cmp._PendingReviewGrid.instance=null;ui.cmp.PendingReviewGrid.getInstance=function(c){if(!ui.cmp._PendingReviewGrid.instance){if(!c){c={}}ui.cmp._PendingReviewGrid.instance=new ui.cmp.PendingReviewGrid(c)}return ui.cmp._PendingReviewGrid.instance};Ext.namespace("ui","ui.cmp","ui.cmp._PendingTranslateGrid");ui.cmp._PendingTranslateGrid.store=new Ext.data.GroupingStore({proxy:new Ext.data.HttpProxy({url:"./do/getFilesNeedTranslate"}),reader:new Ext.data.JsonReader({root:"Items",totalProperty:"nbItems",idProperty:"id",fields:[{name:"id"},{name:"path"},{name:"name"},{name:"fileModified"}]}),sortInfo:{field:"name",direction:"ASC"},groupField:"path",listeners:{datachanged:function(c){Ext.getDom("acc-need-translate-nb").innerHTML=c.getCount()}}});ui.cmp._PendingTranslateGrid.view=new Ext.grid.GroupingView({forceFit:true,startCollapsed:true,groupTextTpl:'{[values.rs[0].data["path"]]} ({[values.rs.length]} {[values.rs.length > 1 ? "'+_("Files")+'" : "'+_("File")+'"]})',deferEmptyText:false,getRowClass:function(d){if(d.data.fileModified){var e=Ext.util.JSON.decode(d.data.fileModified),c;c=(PhDOE.user.isAnonymous)?"anonymous":PhDOE.user.login;return(e.user===c&&e.anonymousIdent===PhDOE.user.anonymousIdent)?"fileModifiedByMe":"fileModifiedByAnother"}return false},emptyText:'
'+_("No Files")+"
"});ui.cmp._PendingTranslateGrid.columns=[{id:"name",header:_("Files"),sortable:true,dataIndex:"name",renderer:function(d,g,e){if(e.data.fileModified){var f=Ext.util.JSON.decode(e.data.fileModified),c;c=(PhDOE.user.isAnonymous)?"anonymous":PhDOE.user.login;if(f.user===c&&f.anonymousIdent===PhDOE.user.anonymousIdent){return""+d+""}else{return""+d+""}}else{return d}}},{header:_("Path"),dataIndex:"path",hidden:true}];ui.cmp._PendingTranslateGrid.menu=function(c){Ext.apply(this,c);this.init();ui.cmp._StaleFileGrid.menu.superclass.constructor.call(this)};Ext.extend(ui.cmp._PendingTranslateGrid.menu,Ext.menu.Menu,{init:function(){Ext.apply(this,{items:[{scope:this,text:""+_("Edit in a new tab")+"",iconCls:"iconTabNeedTranslate",handler:function(){this.grid.fireEvent("rowdblclick",this.grid,this.rowIdx,this.event)}}]})}});ui.cmp.PendingTranslateGrid=Ext.extend(Ext.grid.GridPanel,{view:ui.cmp._PendingTranslateGrid.view,loadMask:true,autoExpandColumn:"name",enableDragDrop:true,ddGroup:"mainPanelDDGroup",border:false,onRowContextMenu:function(c,f,d){d.stopEvent();c.getSelectionModel().selectRow(f);new ui.cmp._PendingTranslateGrid.menu({grid:c,event:d,rowIdx:f}).showAt(d.getXY())},onRowDblClick:function(c,d){this.openFile(c.store.getAt(d).data.id)},openFile:function(g){var e=this.store.getById(g),d=e.data.path,c=e.data.name,f=Ext.util.md5("FNT-"+PhDOE.user.lang+d+c),h;if(!Ext.getCmp("main-panel").findById("FNT-"+f)){if(PhDOE.user.conf.newFile.secondPanel=="google"||PhDOE.user.conf.newFile.secondPanel=="originalFile"){h=true}else{h=false}Ext.getCmp("main-panel").add({id:"FNT-"+f,layout:"border",title:c,originTitle:c,iconCls:"iconTabNeedTranslate",closable:true,tabLoaded:false,panTRANSLoaded:false,panTRANSSecondLoaded:!h,defaults:{split:true},tabTip:String.format(_("Need translate: in {0}"),d),listeners:{resize:function(j){if(PhDOE.user.conf.newFile.secondPanel=="google"){Ext.getCmp("FNT-GGTRANS-PANEL-"+f).setWidth(j.getWidth()/2)}if(PhDOE.user.conf.newFile.secondPanel=="originalFile"){Ext.getCmp("FNT-EN-PANEL-"+f).setWidth(j.getWidth()/2)}}},items:[{region:"west",xtype:"panel",title:_("Tools"),iconCls:"iconConf",collapsedIconCls:"iconConf",plugins:[Ext.ux.PanelCollapsedTitle],collapsible:true,collapsed:!PhDOE.user.conf.newFile.toolsPanelDisplay,layout:"fit",bodyBorder:false,width:PhDOE.user.conf.newFile.toolsPanelWidth||375,listeners:{collapse:function(){if(this.ownerCt.tabLoaded){new ui.task.UpdateConfTask({module:"newFile",itemName:"toolsPanelDisplay",value:false,notify:false})}},expand:function(){if(this.ownerCt.tabLoaded){new ui.task.UpdateConfTask({module:"newFile",itemName:"toolsPanelDisplay",value:true,notify:false})}},resize:function(j,k){if(this.ownerCt.tabLoaded&&k&&k!=PhDOE.user.conf.newFile.toolsPanelWidth){new ui.task.UpdateConfTask({module:"newFile",itemName:"toolsPanelWidth",value:k,notify:false})}}},items:{xtype:"tabpanel",activeTab:0,tabPosition:"bottom",defaults:{autoScroll:true},items:[new ui.cmp.DictionaryGrid({layout:"fit",title:_("Dictionary"),prefix:"FNT",fid:f})]}},new ui.cmp.FilePanel({id:"FNT-TRANS-PANEL-"+f,region:"center",title:_("New file: ")+PhDOE.user.lang+d+c,isTrans:true,prefix:"FNT",ftype:"TRANS",spellCheck:PhDOE.user.conf.newFile.enableSpellCheck,spellCheckConf:{module:"newFile",itemName:"enableSpellCheck"},fid:f,fpath:d,fname:c,lang:PhDOE.user.lang,parser:"xml",storeRecord:e,syncScrollCB:h,syncScroll:h,syncScrollConf:{module:"newFile",itemName:"syncScrollbars"}}),((PhDOE.user.conf.newFile.secondPanel=="google")?new ui.cmp.FilePanel({id:"FNT-GGTRANS-PANEL-"+f,region:"east",title:_("Automatic translation: ")+PhDOE.user.lang+d+c,isTrans:true,prefix:"FNT",ftype:"GGTRANS",fid:f,fpath:d,fname:c,readOnly:true,lang:PhDOE.user.lang,parser:"xml",storeRecord:e,syncScroll:true,syncScrollConf:{module:"newFile",itemName:"syncScrollbars"}}):false),((PhDOE.user.conf.newFile.secondPanel=="originalFile")?new ui.cmp.FilePanel({id:"FNT-EN-PANEL-"+f,region:"east",title:_("File: ")+"en"+d+c,prefix:"FNT",ftype:"EN",fid:f,fpath:d,fname:c,original:true,readOnly:true,lang:"en",parser:"xml",storeRecord:e,syncScroll:true,syncScrollConf:{module:"newFile",itemName:"syncScrollbars"}}):false)]})}Ext.getCmp("main-panel").setActiveTab("FNT-"+f)},initComponent:function(){Ext.apply(this,{columns:ui.cmp._PendingTranslateGrid.columns,store:ui.cmp._PendingTranslateGrid.store,tbar:[_("Filter: ")," ",new Ext.form.TwinTriggerField({id:"FNT-filter",width:180,hideTrigger1:true,enableKeyEvents:true,validateOnBlur:false,validationEvent:false,trigger1Class:"x-form-clear-trigger",trigger2Class:"x-form-search-trigger",listeners:{keypress:function(d,c){if(c.getKey()===c.ENTER){this.onTrigger2Click()}}},onTrigger1Click:function(){this.setValue("");this.triggers[0].hide();this.setSize(180,10);ui.cmp._PendingTranslateGrid.instance.store.clearFilter()},onTrigger2Click:function(){var c=this.getValue(),d;if(c===""||c.length<3){this.markInvalid(_("Your filter must contain at least 3 characters"));return}this.clearInvalid();this.triggers[0].show();this.setSize(180,10);d=new RegExp(c,"i");ui.cmp._PendingTranslateGrid.instance.store.filterBy(function(e){if(d.test(e.data.path)||d.test(e.data.name)){return true}else{return false}},this)}})]});ui.cmp.PendingTranslateGrid.superclass.initComponent.call(this);this.on("rowcontextmenu",this.onRowContextMenu,this);this.on("rowdblclick",this.onRowDblClick,this)}});ui.cmp._PendingTranslateGrid.instance=null;ui.cmp.PendingTranslateGrid.getInstance=function(c){if(!ui.cmp._PendingTranslateGrid.instance){if(!c){c={}}ui.cmp._PendingTranslateGrid.instance=new ui.cmp.PendingTranslateGrid(c)}return ui.cmp._PendingTranslateGrid.instance};Ext.namespace("ui","ui.cmp","ui.cmp._PortletBugs");ui.cmp._PortletBugs.store=new Ext.data.Store({proxy:new Ext.data.HttpProxy({url:"./do/getOpenBugs"}),reader:new Ext.data.JsonReader({root:"Items",totalProperty:"nbItems",idProperty:"id",fields:[{name:"id"},{name:"title"},{name:"link"},{name:"description"},{name:"xmlID"}]})});ui.cmp._PortletBugs.gridFormatTitle=function(c){return String.format('
";return"x-grid3-row-expanded"}return"x-grid3-row-collapsed"}});ui.cmp._PortletBugs.grid=Ext.extend(Ext.grid.GridPanel,{loadMask:true,autoScroll:true,height:250,autoExpandColumn:"GridBugTitle",id:"PortletBugs-grid-id",store:ui.cmp._PortletBugs.store,columns:ui.cmp._PortletBugs.gridColumns,view:ui.cmp._PortletBugs.gridView,sm:new Ext.grid.RowSelectionModel({singleSelect:true}),onRowDblClick:function(e,g){var c=e.store.getAt(g).data.id,d=e.store.getAt(g).data.link,f=e.store.getAt(g).data.title;if(!Ext.getCmp("main-panel").findById("bugs-"+c)){Ext.getCmp("main-panel").add({id:"bugs-"+c,xtype:"panel",title:Ext.util.Format.substr(f,0,20)+"...",tabTip:f,iconCls:"iconBugs",closable:true,layout:"fit",items:[new Ext.ux.IFrameComponent({id:"frame-bugs-"+c,url:d})]})}Ext.getCmp("main-panel").setActiveTab("bugs-"+c)},openRelatedFile:function(c){new ui.task.GetFileInfoByXmlID({xmlID:c})},onContextClick:function(c,f,d){if(!this.menu){this.menu=new Ext.menu.Menu({id:"submenu-bugs",items:[{scope:this,text:""+_("Open in a new Tab")+"",iconCls:"iconOpenInTab",handler:function(){this.fireEvent("rowdblclick",c,this.ctxIndex,d);this.menu.hide()}},"-",{scope:this,text:_("Refresh this grid"),iconCls:"iconRefresh",handler:function(){this.ctxIndex=null;ui.cmp._PortletBugs.reloadData()}},{scope:this,text:_("Open the related file"),iconCls:"iconAllFiles",id:"bugs-open-related-file",handler:function(){this.openRelatedFile(this.ctxXmlID)}}]})}this.getSelectionModel().selectRow(f);d.stopEvent();if(this.ctxIndex){this.ctxIndex=null}if(this.ctxXmlID){this.ctxXmlID=null}this.ctxIndex=f;this.ctxXmlID=c.store.getAt(this.ctxIndex).data.xmlID;this.menu.showAt(d.getXY());if(!this.ctxXmlID){Ext.getCmp("bugs-open-related-file").disable()}else{Ext.getCmp("bugs-open-related-file").enable()}},togglePreview:function(c){this.view.showPreview=c;this.view.refresh()},initComponent:function(c){this.tbar=[{text:_("Summary"),pressed:false,enableToggle:true,iconCls:"iconSummary",scope:this,toggleHandler:function(d,e){this.togglePreview(e)}}];ui.cmp._PortletBugs.grid.superclass.initComponent.call(this);Ext.apply(this,c);this.on("rowcontextmenu",this.onContextClick,this);this.on("rowdblclick",this.onRowDblClick,this)}});ui.cmp._PortletBugs.reloadData=function(){ui.cmp._PortletBugs.store.reload({callback:function(c,e,d){if(!d){Ext.getCmp("PortletBugs-grid-id").getView().mainBody.update('
'+_("Error when loading open bugs from Php.net !")+"
");Ext.get("PortletBugs-grid-defaultMess-id").highlight()}}}})};ui.cmp.PortletBugs=Ext.extend(Ext.ux.Portlet,{title:"",iconCls:"iconBugs",layout:"fit",store:ui.cmp._PortletBugs.store,reloadData:ui.cmp._PortletBugs.reloadData,tools:[{id:"refresh",qtip:_("Refresh this grid"),handler:function(){ui.cmp._PortletBugs.reloadData()}}],listeners:{expand:function(){if(PhDOE.app.loaded){new ui.task.UpdateConfTask({item:"portletBugsCollapsed",value:false,notify:false})}},collapse:function(){if(PhDOE.app.loaded){new ui.task.UpdateConfTask({item:"portletBugsCollapsed",value:true,notify:false})}},afterrender:function(c){if(PhDOE.user.conf.portletBugsCollapsed){c.collapse()}else{c.expand()}}},initComponent:function(c){this.id="portletBugs";this.title=String.format(_("Open bugs for {0}"),"doc-"+this.lang);Ext.apply(this,c);ui.cmp.PortletBugs.superclass.initComponent.apply(this);this.add(new ui.cmp._PortletBugs.grid())}});ui.cmp._PortletBugs.instance=null;ui.cmp.PortletBugs.getInstance=function(c){if(!ui.cmp._PortletBugs.instance){if(!c){c={}}ui.cmp._PortletBugs.instance=new ui.cmp.PortletBugs(c)}return ui.cmp._PortletBugs.instance};Ext.namespace("ui","ui.cmp","ui.cmp._PortletInfo");ui.cmp._PortletInfo.store=new Ext.data.Store({proxy:new Ext.data.HttpProxy({url:"./do/getInfos"}),baseParams:{start:0,limit:10},reader:new Ext.data.JsonReader({root:"Items",totalProperty:"nbItems",idProperty:"id",fields:[{name:"id"},{name:"field"},{name:"value"},{name:"date",type:"date",dateFormat:"Y-m-d H:i:s"},{name:"elapsedTime"}]}),listeners:{load:function(c){var e=c.data.items[0].data.date;PhDOE.lastInfoDate=e.format("Y-m-d H:i:s")}}});ui.cmp._PortletInfo.store.setDefaultSort("date","desc");ui.cmp._PortletInfo.typeRenderer=function(l,j,g){var d,c,m,o,e,k,h,f;switch(l){case"updateData":d=g.data.value.user;return String.format(_("{0} updated app's data"),d);break;case"changeFilesOwner":d=g.data.value.user;return String.format(_("{0} changed file's owner"),d);break;case"checkEntities":d=g.data.value.user;return String.format(_("{0} check all entitites"),d);break;case"logout":d=g.data.value.user;return String.format(_("{0} logged out"),d);break;case"login":d=g.data.value.user;c=g.data.value.lang;authService=g.data.value.authService;f="";if(authService=="google"){f=' '}else{if(authService=="facebook"){f=' '}}return f+String.format(_("{0} is logged in using the {1} language"),d,c.ucFirst());break;case"commitFolders":d=g.data.value.user;c=g.data.value.lang;m=g.data.value.nbFolders;return String.format(_("{0} committed {1} new folder(s) in the {2} language"),d,m,c.ucFirst());break;case"commitFiles":d=g.data.value.user;c=g.data.value.lang;o=g.data.value.nbFilesCreate;e=g.data.value.nbFilesDelete;k=g.data.value.nbFilesUpdate;h=o+e+k;return String.format(_("{0} committed {1} file(s) ({2} new, {3} update, {4} delete) in the language {5}"),d,h,o,k,e,c.ucFirst());break}};ui.cmp._PortletInfo.gridColumns=[new Ext.grid.RowNumberer(),{id:"Type",header:_("Type"),width:180,sortable:true,dataIndex:"field",renderer:ui.cmp._PortletInfo.typeRenderer},{header:_("Since"),width:110,sortable:false,dataIndex:"elapsedTime",renderer:function(d,c,e){if(!d){d=_("Less than one second")}else{d=String.format(_("{0} "+d.units),d.value)}return""+d+""}},{header:_("Date"),width:110,sortable:true,dataIndex:"date",hidden:true,renderer:Ext.util.Format.dateRenderer(_("Y-m-d, H:i"))}];ui.cmp._PortletInfo.grid=Ext.extend(Ext.grid.GridPanel,{autoExpandColumn:"Type",loadMask:true,autoScroll:true,autoHeight:true,store:ui.cmp._PortletInfo.store,columns:ui.cmp._PortletInfo.gridColumns,view:ui.cmp._PortletInfo.gridView,initComponent:function(){Ext.apply(this,{bbar:new Ext.PagingToolbar({pageSize:10,store:this.store,displayInfo:true})});ui.cmp._PortletInfo.grid.superclass.initComponent.call(this);this.on("rowdblclick",this.onRowdblclick,this)}});ui.cmp.PortletInfo=Ext.extend(Ext.ux.Portlet,{title:_("Information"),iconCls:"iconInfo",layout:"fit",store:ui.cmp._PortletInfo.store,tools:[{id:"refresh",qtip:_("Refresh this grid"),handler:function(){ui.cmp._PortletInfo.store.reload()}}],listeners:{expand:function(){if(PhDOE.app.loaded){new ui.task.UpdateConfTask({item:"portletInfoCollapsed",value:false,notify:false})}},collapse:function(){if(PhDOE.app.loaded){new ui.task.UpdateConfTask({item:"portletInfoCollapsed",value:true,notify:false})}},afterrender:function(c){if(PhDOE.user.conf.portletInfoCollapsed){c.collapse()}else{c.expand()}}},initComponent:function(c){this.id="portletInfo";Ext.apply(this,c);ui.cmp.PortletInfo.superclass.initComponent.apply(this);this.add(new ui.cmp._PortletInfo.grid())}});ui.cmp._PortletInfo.instance=null;ui.cmp.PortletInfo.getInstance=function(c){if(!ui.cmp._PortletInfo.instance){if(!c){c={}}ui.cmp._PortletInfo.instance=new ui.cmp.PortletInfo(c)}return ui.cmp._PortletInfo.instance};Ext.namespace("ui","ui.cmp","ui.cmp._PortletLocalMail");ui.cmp._PortletLocalMail.store=new Ext.data.Store({proxy:new Ext.data.HttpProxy({url:"./do/getLastNews"}),reader:new Ext.data.JsonReader({root:"Items",totalProperty:"nbItems",idProperty:"id",fields:[{name:"id"},{name:"title"},{name:"link"},{name:"description"},{name:"pubDate",type:"date",dateFormat:"Y/m/d H:i:s"}]})});ui.cmp._PortletLocalMail.store.setDefaultSort("pubDate","desc");ui.cmp._PortletLocalMail.columns=[new Ext.grid.RowNumberer(),{id:"GridMailingTitle",header:_("Title"),sortable:true,dataIndex:"title"},{header:_("By"),width:100,sortable:true,dataIndex:"description"},{header:_("Date"),width:100,sortable:true,dataIndex:"pubDate",renderer:Ext.util.Format.dateRenderer(_("Y-m-d, H:i"))}];ui.cmp._PortletLocalMail.grid=Ext.extend(Ext.grid.GridPanel,{loadMask:true,autoScroll:true,height:250,autoExpandColumn:"GridMailingTitle",id:"PortletLocalMail-grid-id",store:ui.cmp._PortletLocalMail.store,columns:ui.cmp._PortletLocalMail.columns,sm:new Ext.grid.RowSelectionModel({singleSelect:true}),view:new Ext.grid.GridView({forceFit:true,enableRowBody:true,ignoreAdd:true,emptyText:'
'+_("You must manually load this data. Use the refresh button !")+"
",deferEmptyText:false}),onRowDblClick:function(d,g){var c=d.store.getAt(g).data.pubDate,f=d.store.getAt(g).data.link,e=d.store.getAt(g).data.title;if(!Ext.getCmp("main-panel").findById("mail-"+c)){Ext.getCmp("main-panel").add({xtype:"panel",id:"mail-"+c,title:Ext.util.Format.substr(e,0,20)+"...",tabTip:e,iconCls:"iconMailing",closable:true,layout:"fit",items:[new Ext.ux.IFrameComponent({id:"frame-mail-"+c,url:f})]})}Ext.getCmp("main-panel").setActiveTab("mail-"+c)},onContextClick:function(c,f,d){if(!this.menu){this.menu=new Ext.menu.Menu({id:"submenu-mail",items:[{scope:this,text:""+_("Open in a new Tab")+"",iconCls:"iconOpenInTab",handler:function(){this.fireEvent("rowdblclick",c,this.ctxIndex,d);this.menu.hide()}},"-",{scope:this,text:_("Refresh this grid"),iconCls:"iconRefresh",handler:function(){this.ctxIndex=null;ui.cmp._PortletLocalMail.reloadData()}}]})}this.getSelectionModel().selectRow(f);d.stopEvent();if(this.ctxIndex){this.ctxIndex=null}this.ctxIndex=f;this.menu.showAt(d.getXY())},initComponent:function(c){ui.cmp._PortletLocalMail.grid.superclass.initComponent.call(this);Ext.apply(this,c);this.on("rowcontextmenu",this.onContextClick,this);this.on("rowdblclick",this.onRowDblClick,this)}});ui.cmp._PortletLocalMail.reloadData=function(){ui.cmp._PortletLocalMail.store.reload({callback:function(d,e,c){if(!c){Ext.getCmp("PortletLocalMail-grid-id").getView().mainBody.update('
'+_("Error when loading mails from this mailing list !")+"
");Ext.get("PortletLocalMail-grid-defaultMess-id").highlight()}}})};ui.cmp.PortletLocalMail=Ext.extend(Ext.ux.Portlet,{title:"",iconCls:"iconMailing",layout:"fit",store:ui.cmp._PortletLocalMail.store,reloadData:ui.cmp._PortletLocalMail.reloadData,tools:[{id:"refresh",qtip:_("Refresh this grid"),handler:function(){ui.cmp._PortletLocalMail.reloadData()}}],listeners:{expand:function(){if(PhDOE.app.loaded){new ui.task.UpdateConfTask({item:"portletLocalMailCollapsed",value:false,notify:false})}},collapse:function(){if(PhDOE.app.loaded){new ui.task.UpdateConfTask({item:"portletLocalMailCollapsed",value:true,notify:false})}},afterrender:function(c){if(PhDOE.user.conf.portletLocalMailCollapsed){c.collapse()}else{c.expand()}}},initComponent:function(c){this.id="portletLocalMail";Ext.apply(this,c);ui.cmp.PortletLocalMail.superclass.initComponent.apply(this);this.title=String.format(_("Mail from {0}"),"doc-"+this.lang);this.add(new ui.cmp._PortletLocalMail.grid())}});ui.cmp._PortletLocalMail.instance=null;ui.cmp.PortletLocalMail.getInstance=function(c){if(!ui.cmp._PortletLocalMail.instance){if(!c){c={}}ui.cmp._PortletLocalMail.instance=new ui.cmp.PortletLocalMail(c)}return ui.cmp._PortletLocalMail.instance};Ext.namespace("ui","ui.cmp","ui.cmp._PortletSummary");ui.cmp._PortletSummary.store=new Ext.data.Store({proxy:new Ext.data.HttpProxy({url:"./do/getSummaryInfo"}),reader:new Ext.data.JsonReader({root:"Items",totalProperty:"nbItems",idProperty:"id",fields:[{name:"id"},{name:"libel"},{name:"nbFiles"},{name:"percentFiles"},{name:"sizeFiles"},{name:"percentSize"}]}),listeners:{load:function(){this.each(function(c){switch(c.id){case 1:c.set("libel",_("Up to date files"));break;case 2:c.set("libel",_("Stale files"));break;case 3:c.set("libel",_("Files available for translation"));break;case 4:c.set("libel",_("Total"));break;default:c.set("libel","");break}c.commit()})}}});ui.cmp._PortletSummary.gridColumns=[new Ext.grid.RowNumberer(),{id:"StatusType",header:_("File status type"),width:180,sortable:true,dataIndex:"libel"},{header:_("Number of files"),width:110,sortable:true,dataIndex:"nbFiles"},{header:_("Percent of files"),width:110,sortable:true,dataIndex:"percentFiles"},{header:_("Size of files (kB)"),width:110,sortable:true,dataIndex:"sizeFiles"},{header:_("Percent of size"),width:110,sortable:true,dataIndex:"percentSize"}];ui.cmp._PortletSummary.gridView=new Ext.grid.GridView({getRowClass:function(c){switch(c.data.id){case 1:return"summary_1";case 2:return"summary_2";case 3:return"summary_3";case 4:return"summary_4";default:return""}}});ui.cmp._PortletSummary.grid=Ext.extend(Ext.grid.GridPanel,{loadMask:true,autoScroll:true,autoHeight:true,store:ui.cmp._PortletSummary.store,columns:ui.cmp._PortletSummary.gridColumns,view:ui.cmp._PortletSummary.gridView,onRowdblclick:function(c,e){var d=c.store.getAt(e).data.id;if(d===2){Ext.getCmp("acc-need-update").expand()}if(d===3){Ext.getCmp("acc-need-translate").expand()}},initComponent:function(c){ui.cmp._PortletSummary.grid.superclass.initComponent.call(this);Ext.apply(this,c);this.on("rowdblclick",this.onRowdblclick,this)}});ui.cmp.PortletSummary=Ext.extend(Ext.ux.Portlet,{title:_("Summary"),iconCls:"",layout:"fit",store:ui.cmp._PortletSummary.store,tools:[{id:"refresh",qtip:_("Refresh this grid"),handler:function(){ui.cmp._PortletSummary.store.reload()}}],listeners:{expand:function(){if(PhDOE.app.loaded){new ui.task.UpdateConfTask({item:"portletSummaryCollapsed",value:false,notify:false})}},collapse:function(){if(PhDOE.app.loaded){new ui.task.UpdateConfTask({item:"portletSummaryCollapsed",value:true,notify:false})}}},initComponent:function(c){this.id="portletSummary";Ext.apply(this,c);ui.cmp.PortletSummary.superclass.initComponent.apply(this);this.add(new ui.cmp._PortletSummary.grid())},afterRender:function(){ui.cmp.PortletSummary.superclass.afterRender.call(this);var c={cs:"cz",sr:"rs",sv:"se"};this.header.insertFirst({tag:"div",id:Ext.id(),style:"float: left; margin-right: 2px;",cls:"flags flag-"+(c[this.lang]||this.lang)},"first");if(PhDOE.user.conf.portletSummaryCollapsed){this.collapse()}else{this.expand()}}});ui.cmp._PortletSummary.instance=null;ui.cmp.PortletSummary.getInstance=function(c){if(!ui.cmp._PortletSummary.instance){if(!c){c={}}ui.cmp._PortletSummary.instance=new ui.cmp.PortletSummary(c)}return ui.cmp._PortletSummary.instance};Ext.namespace("ui","ui.cmp","ui.cmp._PortletTranslationGraph");function renderLibel(c){return _(c)}ui.cmp._PortletTranslationGraph.store=new Ext.data.Store({proxy:new Ext.data.HttpProxy({url:"./do/getGraphLang"}),reader:new Ext.data.JsonReader({root:"Items",totalProperty:"nbItems",idProperty:"id",fields:[{name:"id"},{name:"libel",convert:renderLibel},{name:"total"}]})});ui.cmp._PortletTranslationGraph.chart=Ext.extend(Ext.chart.PieChart,{height:400,url:"js/ExtJs/resources/charts.swf",dataField:"total",categoryField:"libel",store:ui.cmp._PortletTranslationGraph.store,series:[{style:{colors:["#68D888","#FF6347","#EEE8AA"]}}],extraStyle:{legend:{display:"bottom",padding:5,font:{family:"Tahoma",size:13}}},initComponent:function(c){ui.cmp._PortletTranslationGraph.chart.superclass.initComponent.call(this);Ext.apply(this,c)}});ui.cmp.PortletTranslationGraph=Ext.extend(Ext.ux.Portlet,{title:_("Graphics"),iconCls:"iconGraphic",layout:"fit",store:ui.cmp._PortletTranslationGraph.store,tools:[{id:"refresh",qtip:_("Refresh this graph"),handler:function(){ui.cmp._PortletTranslationGraph.store.reload()}}],initComponent:function(c){this.id="portletTranslationGraph";Ext.apply(this,c);ui.cmp.PortletTranslationGraph.superclass.initComponent.apply(this);this.add(new ui.cmp._PortletTranslationGraph.chart())}});ui.cmp._PortletTranslationGraph.instance=null;ui.cmp.PortletTranslationGraph.getInstance=function(c){if(!ui.cmp._PortletTranslationGraph.instance){if(!c){c={}}ui.cmp._PortletTranslationGraph.instance=new ui.cmp.PortletTranslationGraph(c)}return ui.cmp._PortletTranslationGraph.instance};Ext.namespace("ui","ui.cmp","ui.cmp._PortletTranslationsGraph");ui.cmp._PortletTranslationsGraph.store=new Ext.data.Store({proxy:new Ext.data.HttpProxy({url:"./do/getGraphLangs"}),reader:new Ext.data.JsonReader({root:"Items",totalProperty:"nbItems",idProperty:"id",fields:[{name:"id"},{name:"libel",type:"string"},{name:"fullLibel",type:"string"},{name:"total",type:"int"},{name:"percent",type:"float"}]})});ui.cmp._PortletTranslationsGraph.chart=Ext.extend(Ext.chart.ColumnChart,{height:400,url:"js/ExtJs/resources/charts.swf",xField:"libel",tipRenderer:function(d,c){return _("Lang:")+" "+c.data.fullLibel+"\r"+_("Total:")+" "+c.data.total+" "+_("files")+" ("+c.data.percent+"%)"},series:[{type:"column",displayName:"Total",yField:"total",style:{image:"themes/img/bar.gif",mode:"stretch",color:10075112}}],store:ui.cmp._PortletTranslationsGraph.store,initComponent:function(c){ui.cmp._PortletTranslationsGraph.chart.superclass.initComponent.call(this);Ext.apply(this,c)}});ui.cmp.PortletTranslationsGraph=Ext.extend(Ext.ux.Portlet,{title:_("Graphics for all languages"),iconCls:"iconGraphic",layout:"fit",store:ui.cmp._PortletTranslationsGraph.store,tools:[{id:"refresh",qtip:_("Refresh this graph"),handler:function(){ui.cmp._PortletTranslationsGraph.store.reload()}}],initComponent:function(c){this.id="portletTranslationsGraph";Ext.apply(this,c);ui.cmp.PortletTranslationsGraph.superclass.initComponent.apply(this);this.add(new ui.cmp._PortletTranslationsGraph.chart())}});ui.cmp._PortletTranslationsGraph.instance=null;ui.cmp.PortletTranslationsGraph.getInstance=function(c){if(!ui.cmp._PortletTranslationsGraph.instance){if(!c){c={}}ui.cmp._PortletTranslationsGraph.instance=new ui.cmp.PortletTranslationsGraph(c)}return ui.cmp._PortletTranslationsGraph.instance};Ext.namespace("ui","ui.cmp","ui.cmp._PortletTranslator","ui.cmp._PortletReviewer");ui.cmp._PortletTranslator.store=new Ext.data.Store({proxy:new Ext.data.HttpProxy({url:"./do/getTranslatorInfo"}),reader:new Ext.data.JsonReader({root:"Items",totalProperty:"nbItems",idProperty:"id",fields:[{name:"id"},{name:"name"},{name:"email",mapping:"mail"},{name:"nick"},{name:"vcs"},{name:"uptodate",type:"int"},{name:"stale",type:"int"},{name:"sum",type:"int"}]}),listeners:{load:function(){var d=this.getCount(),c=d*20;ui.cmp.PortletTranslator.getInstance().setHeight(c+124);ui.cmp.PortletTranslator.getInstance().doLayout()}}});ui.cmp._PortletTranslator.store.setDefaultSort("nick","asc");ui.cmp._PortletReviewer.store=new Ext.data.Store({proxy:new Ext.data.HttpProxy({url:"./do/getReviewerInfo"}),reader:new Ext.data.JsonReader({root:"Items",totalProperty:"nbItems",idProperty:"id",fields:[{name:"id"},{name:"name"},{name:"email",mapping:"mail"},{name:"nick"},{name:"vcs"},{name:"reviewedUptodate",type:"int"},{name:"reviewedStale",type:"int"},{name:"reviewedSum",type:"int"}]})});ui.cmp._PortletReviewer.store.setDefaultSort("nick","asc");ui.cmp._PortletTranslator.translatorSumRenderer=function(c){if(c){c=(c===0||c>1)?c:1;return String.format("("+_("{0} Translators")+")",c)}else{return false}};ui.cmp._PortletReviewer.translatorSumRenderer=function(c){if(c){c=(c===0||c>1)?c:1;return String.format("("+_("{0} Reviewers")+")",c)}else{return _("No reviewer")}};ui.cmp._PortletTranslator.uptodateRenderer=function(c){if(c==="0"){return false}else{return''+c+""}};ui.cmp._PortletReviewer.uptodateRenderer=function(c){if(c==="0"){return false}else{return''+c+""}};ui.cmp._PortletTranslator.staleRenderer=function(c){if(c==="0"){return false}else{return''+c+""}};ui.cmp._PortletReviewer.staleRenderer=function(c){if(c==="0"){return false}else{return''+c+""}};ui.cmp._PortletTranslator.sumRenderer=function(c){return(c==="0")?"":c};ui.cmp._PortletReviewer.sumRenderer=function(c){return(c==="0")?"":c};ui.cmp._PortletTranslator.gridColumns=[new Ext.grid.RowNumberer(),{id:"GridTransName",header:_("Name"),sortable:true,dataIndex:"name",summaryType:"count",summaryRenderer:ui.cmp._PortletTranslator.translatorSumRenderer},{header:_("Email"),width:110,sortable:true,dataIndex:"email"},{header:_("Nick"),width:70,sortable:true,dataIndex:"nick"},{header:_("VCS"),width:45,sortable:true,dataIndex:"vcs"},{header:_("UptoDate"),width:60,sortable:true,renderer:ui.cmp._PortletTranslator.uptodateRenderer,dataIndex:"uptodate",summaryType:"sum"},{header:_("Stale"),width:90,sortable:true,renderer:ui.cmp._PortletTranslator.staleRenderer,dataIndex:"stale",summaryType:"sum"},{header:_("Sum"),width:50,sortable:true,renderer:ui.cmp._PortletTranslator.sumRenderer,dataIndex:"sum",summaryType:"sum"}];ui.cmp._PortletReviewer.gridColumns=[new Ext.grid.RowNumberer(),{id:"GridTransName",header:_("Name"),sortable:true,dataIndex:"name",summaryType:"count",summaryRenderer:ui.cmp._PortletReviewer.translatorSumRenderer},{header:_("Email"),width:110,sortable:true,dataIndex:"email"},{header:_("Nick"),width:70,sortable:true,dataIndex:"nick"},{header:_("VCS"),width:45,sortable:true,dataIndex:"vcs"},{header:_("Reviewed"),width:60,sortable:true,renderer:ui.cmp._PortletReviewer.uptodateRenderer,dataIndex:"reviewedUptodate",summaryType:"sum"},{header:_("Must be reviewed"),width:90,sortable:true,renderer:ui.cmp._PortletReviewer.staleRenderer,dataIndex:"reviewedStale",summaryType:"sum"},{header:_("Sum"),width:50,sortable:true,renderer:ui.cmp._PortletReviewer.sumRenderer,dataIndex:"reviewedSum",summaryType:"sum"}];ui.cmp._PortletTranslator.grid=Ext.extend(Ext.grid.GridPanel,{title:_("Translators"),loadMask:true,autoScroll:true,autoHeight:true,plugins:[new Ext.ux.grid.GridSummary()],store:ui.cmp._PortletTranslator.store,columns:ui.cmp._PortletTranslator.gridColumns,autoExpandColumn:"GridTransName",sm:new Ext.grid.RowSelectionModel({singleSelect:true}),lang:this.lang,EmailPrompt:new ui.cmp.EmailPrompt(),onRowDblClick:function(d,e){this.getSelectionModel().selectRow(e);if(this.ctxTranslatorName){this.ctxTranslatorEmail=null;this.ctxTranslatorName=null}this.ctxTranslatorEmail=this.store.getAt(e).data.email;this.ctxTranslatorName=this.store.getAt(e).data.name;var c=this.store.getAt(e).data.nick;if(c==="nobody"){return}this.EmailPrompt.setData(this.ctxTranslatorName,this.ctxTranslatorEmail);this.EmailPrompt.show("lastUpdateTime")},onContextClick:function(d,g,f){if(!this.menu){this.menu=new Ext.menu.Menu({id:"submenu-translators",items:[{scope:this,text:"",iconCls:"iconSendEmail",handler:function(){this.EmailPrompt.setData(this.ctxTranslatorName,this.ctxTranslatorEmail);this.EmailPrompt.show("lastUpdateTime")}},"-",{scope:this,text:String.format(_("Send an email to the {0}"),String.format(PhDOE.app.conf.projectMailList,this.lang)),iconCls:"iconSendEmail",handler:function(){this.EmailPrompt.setData("Php Doc Team "+this.lang,String.format(PhDOE.app.conf.projectMailList,this.lang));this.EmailPrompt.show("lastUpdateTime")}}]})}this.getSelectionModel().selectRow(g);f.stopEvent();if(this.ctxTranslatorName){this.ctxTranslatorName=null;this.ctxTranslatorEmail=null}this.ctxTranslatorName=this.store.getAt(g).data.name;this.ctxTranslatorEmail=this.store.getAt(g).data.email;var c=this.store.getAt(g).data.nick;if(c==="nobody"){return}this.menu.items.items[0].setText(""+String.format(_("Send an email to {0}"),this.ctxTranslatorName)+"");this.menu.showAt(f.getXY())},initComponent:function(c){ui.cmp._PortletTranslator.grid.superclass.initComponent.call(this);Ext.apply(this,c);this.on("rowcontextmenu",this.onContextClick,this);this.on("rowdblclick",this.onRowDblClick,this)}});ui.cmp._PortletReviewer.grid=Ext.extend(Ext.grid.GridPanel,{title:_("Reviewers"),loadMask:true,autoScroll:true,autoHeight:true,plugins:[new Ext.ux.grid.GridSummary()],store:ui.cmp._PortletReviewer.store,columns:ui.cmp._PortletReviewer.gridColumns,autoExpandColumn:"GridTransName",sm:new Ext.grid.RowSelectionModel({singleSelect:true}),lang:this.lang,EmailPrompt:new ui.cmp.EmailPrompt(),onRowDblClick:function(d,e){this.getSelectionModel().selectRow(e);if(this.ctxTranslatorName){this.ctxTranslatorEmail=null;this.ctxTranslatorName=null}this.ctxTranslatorEmail=this.store.getAt(e).data.email;this.ctxTranslatorName=this.store.getAt(e).data.name;var c=this.store.getAt(e).data.nick;if(c==="nobody"){return}this.EmailPrompt.setData(this.ctxTranslatorName,this.ctxTranslatorEmail);this.EmailPrompt.show("lastUpdateTime")},onContextClick:function(d,g,f){if(!this.menu){this.menu=new Ext.menu.Menu({id:"submenu-translators",items:[{scope:this,text:"",iconCls:"iconSendEmail",handler:function(){this.EmailPrompt.setData(this.ctxTranslatorName,this.ctxTranslatorEmail);this.EmailPrompt.show("lastUpdateTime")}},"-",{scope:this,text:String.format(_("Send an email to the {0}"),String.format(PhDOE.app.conf.projectMailList,this.lang)),iconCls:"iconSendEmail",handler:function(){this.EmailPrompt.setData("Php Doc Team "+this.lang,String.format(PhDOE.app.conf.projectMailList,this.lang));this.EmailPrompt.show("lastUpdateTime")}}]})}this.getSelectionModel().selectRow(g);f.stopEvent();if(this.ctxTranslatorName){this.ctxTranslatorName=null;this.ctxTranslatorEmail=null}this.ctxTranslatorName=this.store.getAt(g).data.name;this.ctxTranslatorEmail=this.store.getAt(g).data.email;var c=this.store.getAt(g).data.nick;if(c==="nobody"){return}this.menu.items.items[0].setText(""+String.format(_("Send an email to {0}"),this.ctxTranslatorName)+"");this.menu.showAt(f.getXY())},initComponent:function(c){ui.cmp._PortletReviewer.grid.superclass.initComponent.call(this);Ext.apply(this,c);this.on("rowcontextmenu",this.onContextClick,this);this.on("rowdblclick",this.onRowDblClick,this)}});ui.cmp.PortletTranslator=Ext.extend(Ext.ux.Portlet,{title:_("Translators & Reviewer"),iconCls:"iconTranslator",layout:"fit",storeTranslator:ui.cmp._PortletTranslator.store,storeReviewer:ui.cmp._PortletReviewer.store,tools:[{id:"refresh",qtip:_("Refresh this grid"),handler:function(){ui.cmp._PortletTranslator.store.reload({callback:function(){ui.cmp._PortletReviewer.store.reload()}})}}],listeners:{expand:function(){if(PhDOE.app.loaded){new ui.task.UpdateConfTask({item:"portletTranslatorCollapsed",value:false,notify:false})}},collapse:function(){if(PhDOE.app.loaded){new ui.task.UpdateConfTask({item:"portletTranslatorCollapsed",value:true,notify:false})}},afterrender:function(c){if(PhDOE.user.conf.portletTranslatorCollapsed){c.collapse()}else{c.expand()}}},initComponent:function(c){this.id="portletTranslator";Ext.apply(this,c);ui.cmp.PortletTranslator.superclass.initComponent.apply(this);this.add({xtype:"tabpanel",activeTab:0,border:false,height:200,tabPosition:"bottom",autoScroll:true,items:[new ui.cmp._PortletTranslator.grid({lang:this.lang}),new ui.cmp._PortletReviewer.grid({lang:this.lang})]})}});ui.cmp._PortletTranslator.instance=null;ui.cmp.PortletTranslator.getInstance=function(c){if(!ui.cmp._PortletTranslator.instance){if(!c){c={}}ui.cmp._PortletTranslator.instance=new ui.cmp.PortletTranslator(c)}return ui.cmp._PortletTranslator.instance};Ext.namespace("ui","ui.cmp");ui.cmp.PreviewFile=Ext.extend(Ext.Window,{id:"winPreviewFile",layout:"fit",title:_("Preview"),iconCls:"iconView",closable:true,closeAction:"close",maximized:true,modal:true,buttons:[{text:_("Close"),handler:function(){this.ownerCt.ownerCt.close()}}],initComponent:function(){var c=this;ui.cmp.PreviewFile.superclass.initComponent.call(this);XHR({params:{task:"previewFile",path:this.path},success:function(d){var f=Ext.util.JSON.decode(d.responseText),e;f.url=f.url+"?"+Math.random();e=new Ext.ux.IFrameComponent({id:"frame-previewFile",url:f.url});c.add(e);c.show()},failure:function(){}})}});Ext.namespace("ui","ui.cmp","ui.cmp._RepositoryTree");ui.cmp._RepositoryTree.root={nodeType:"async",id:"/",text:_("Repository"),draggable:false};ui.cmp._RepositoryTree.loader=new Ext.tree.TreeLoader({dataUrl:"./do/getAllFiles"});ui.cmp._RepositoryTree.winAddNewFile=Ext.extend(Ext.Window,{title:_("Add a new file"),iconCls:"iconFilesNeedTranslate",id:"win-add-new-file",layout:"form",width:350,height:170,resizable:false,modal:true,bodyStyle:"padding:5px 5px 0",labelWidth:150,buttons:[{id:"win-add-new-file-btn",text:_("Open the editor"),disabled:true,handler:function(){var d=Ext.getCmp("win-add-new-file"),f=d.node.id,c=d.items.items[1].getValue(),e=d.items.items[2].getValue();if(d.node.findChild("id",f+"/"+c)){PhDOE.winForbidden("file_already_exist");return true}d.openFile(f+"/",c,e);d.close();return true}}],openFile:function(e,c,j){var h=Ext.util.md5("FNT-"+e+c),g={data:{fileModified:false,node:this.node}},d=e.split("/"),f;d.shift();f=d[0];d.shift();d.pop();e="/"+d.join("/")+"/";if(e==="//"){e="/"}h=Ext.util.md5("FNT-"+e+c);if(!Ext.getCmp("main-panel").findById("FNT-"+h)){Ext.getCmp("main-panel").add({id:"FNT-"+h,layout:"border",title:c,originTitle:c,iconCls:"iconTabNeedTranslate",closable:true,tabLoaded:false,panTRANSLoaded:false,panGGTRANSLoaded:true,defaults:{split:true},tabTip:String.format(_("New file: in {0}"),f+e),items:[new ui.cmp.FilePanel({id:"FNT-NEW-PANEL-"+h,region:"center",title:_("New file: ")+f+e+c,isTrans:true,prefix:"FNT",ftype:"NEW",fid:h,fpath:e,fname:c,lang:f,parser:"xml",storeRecord:g,syncScrollCB:false,syncScroll:false,skeleton:j})]})}Ext.getCmp("main-panel").setActiveTab("FNT-"+h)},initComponent:function(){Ext.apply(this,{items:[{xtype:"displayfield",fieldLabel:_("Parent Folder"),value:this.node.id},{xtype:"textfield",fieldLabel:_("Name for the new file"),name:"newFolderName",listeners:{valid:function(){Ext.getCmp("win-add-new-file-btn").enable()},invalid:function(){Ext.getCmp("win-add-new-file-btn").disable()}}},{xtype:"combo",triggerAction:"all",width:160,editable:false,store:new Ext.data.Store({proxy:new Ext.data.HttpProxy({url:"./do/getSkeletonsNames"}),reader:new Ext.data.JsonReader({root:"Items",idProperty:"name",fields:[{name:"name"},{name:"path"}]})}),listeners:{select:function(f,d,e){if(f.ownerCt.items.items[1].getValue()===""){f.ownerCt.items.items[1].setValue(d.data.name)}}},valueField:"path",displayField:"name",fieldLabel:_("Chose a skeleton")}]});ui.cmp._RepositoryTree.winAddNewFile.superclass.initComponent.call(this)}});ui.cmp._RepositoryTree.winAddNewFolder=Ext.extend(Ext.Window,{title:_("Add a new folder"),iconCls:"iconFolderNew",id:"win-add-new-folder",layout:"form",width:350,height:200,resizable:false,modal:true,bodyStyle:"padding:5px 5px 0",labelWidth:150,buttons:[{id:"win-add-new-folder-btn",text:"Add",disabled:true,handler:function(){var c=Ext.getCmp("win-add-new-folder"),e=c.node.id,d=c.items.items[1].getValue();XHR({params:{task:"addNewFolder",parentFolder:e,newFolderName:d},success:function(){Ext.getCmp("win-add-new-folder").close();c.node.reload();PhDOE.notify("info",_("Folder created"),String.format(_("Folder
{0}
was created sucessfully under {1} !"),d,e))},failure:function(f){var g=Ext.util.JSON.decode(f.responseText);if(g.type){PhDOE.winForbidden(g.type)}else{PhDOE.winForbidden()}}})}}],initComponent:function(){Ext.apply(this,{items:[{xtype:"displayfield",fieldLabel:_("Parent Folder"),value:this.node.id},{xtype:"textfield",fieldLabel:_("Name for the new folder"),name:"newFolderName",vtype:"alphanum",listeners:{valid:function(){Ext.getCmp("win-add-new-folder-btn").enable()},invalid:function(){Ext.getCmp("win-add-new-folder-btn").disable()}}},{xtype:"box",html:_("Info: This new folder won't be commited until a new file will be commited into it. If you don't commit any new file into it until 8 days, it will be automatically deleted.")}]});ui.cmp._RepositoryTree.winAddNewFolder.superclass.initComponent.call(this)}});Ext.namespace("ui.cmp._RepositoryTree.menu");ui.cmp._RepositoryTree.menu.folder=function(c){Ext.apply(this,c);this.init();ui.cmp._RepositoryTree.menu.folder.superclass.constructor.call(this)};Ext.extend(ui.cmp._RepositoryTree.menu.folder,Ext.menu.Menu,{init:function(){Ext.apply(this,{items:[{text:(this.node.isExpanded())?""+_("Collapse")+"":""+_("Expand")+"",iconCls:"iconFolderClose",scope:this,handler:function(){if(this.node.isExpanded()){this.node.collapse()}else{this.node.expand()}}},"-",{text:_("Update this folder"),iconCls:"iconFilesNeedUpdate",scope:this,handler:function(){this.node.expand();new ui.task.UpdateSingleFolderTask(this.node)}},{text:_("Add a new folder"),iconCls:"iconFolderNew",hidden:(this.node.id==="/"||(Ext.util.Format.substr(this.node.id,0,3)!=="/en"&&Ext.util.Format.substr(this.node.id,0,9)!=="/doc-base")),scope:this,handler:function(){this.node.expand();var c=new ui.cmp._RepositoryTree.winAddNewFolder({node:this.node});c.show(this.node.ui.getEl())}},{text:_("Add a new file"),iconCls:"iconFilesNeedTranslate",hidden:(this.node.id==="/"||(Ext.util.Format.substr(this.node.id,0,3)!=="/en"&&Ext.util.Format.substr(this.node.id,0,9)!=="/doc-base")),scope:this,handler:function(){this.node.expand();var c=new ui.cmp._RepositoryTree.winAddNewFile({node:this.node});c.show(this.node.ui.getEl())}}]})}});ui.cmp._RepositoryTree.menu.file=function(c){Ext.apply(this,c);this.init();ui.cmp._RepositoryTree.menu.file.superclass.constructor.call(this)};Ext.extend(ui.cmp._RepositoryTree.menu.file,Ext.menu.Menu,{init:function(){var c=this.node.attributes.text,d=this.node.attributes.id.split("/"),f,e;d.shift();f=d[0];d.shift();d.pop();e=d.join("/")+"/";Ext.apply(this,{items:[{text:""+_("Edit in a new tab")+"",iconCls:"iconTabNeedReviewed",scope:this,handler:function(){ui.cmp._RepositoryTree.instance.fireEvent("dblclick",this.node)}},{hidden:(this.node.attributes.from==="search"||PhDOE.user.lang==="en"),text:(f==="en")?String.format(_("Open the same file in {0}"),Ext.util.Format.uppercase(PhDOE.user.lang)):String.format(_("Open the same file in {0}"),"EN"),iconCls:"iconTabNeedReviewed",scope:this,handler:function(){if(f==="en"){ui.cmp._RepositoryTree.instance.openFile("byPath",PhDOE.user.lang+"/"+e,c)}else{ui.cmp._RepositoryTree.instance.openFile("byPath","en/"+e,c)}}}]})}});ui.cmp.RepositoryTree=Ext.extend(Ext.ux.MultiSelectTreePanel,{animate:true,enableDD:true,ddGroup:"mainPanelDDGroup",useArrows:true,autoScroll:true,border:false,containerScroll:true,root:ui.cmp._RepositoryTree.root,loader:ui.cmp._RepositoryTree.loader,onContextMenu:function(c,d){d.stopEvent();c.select();if(c.attributes.type==="folder"||c.isRoot){new ui.cmp._RepositoryTree.menu.folder({node:c}).showAt(d.getXY())}else{if(c.attributes.type==="file"){new ui.cmp._RepositoryTree.menu.file({node:c}).showAt(d.getXY())}}},onDblClick:function(c){if(c.attributes.type==="file"){this.openFile("byId",c.attributes.id,false)}},openFile:function(r,m,g){if(r==="byPath"){Ext.getCmp("acc-all-files").expand();var f=m,j=g,u=f.split("/"),l=function(w){w.ensureVisible();if(u[0]&&u[0]!==""){for(var t=0;t0)?"/"+u.join("/")+"/":"/";p=Ext.util.md5("AF-"+h+c+e);if(!Ext.getCmp("main-panel").findById("AF-"+p)){if(s!=="html"){d=s}else{d="xml"}if(s==="gif"||s==="png"||s==="jpg"){o={};q={id:"AF-ALL-FILE-"+p,xtype:"panel",region:"center",layout:"fit",bodyStyle:"padding:5px 5px 0",html:''}}else{o={xtype:"panel",region:"west",title:_("Tools"),iconCls:"iconConf",collapsedIconCls:"iconConf",plugins:[Ext.ux.PanelCollapsedTitle],layout:"fit",bodyBorder:false,split:true,collapsible:true,collapsed:!PhDOE.user.conf.allFiles.toolsPanelDisplay,width:PhDOE.user.conf.allFiles.toolsPanelWidth||375,listeners:{collapse:function(){if(this.ownerCt.tabLoaded){new ui.task.UpdateConfTask({module:"allFiles",itemName:"toolsPanelDisplay",value:false,notify:false})}},expand:function(){if(this.ownerCt.tabLoaded){new ui.task.UpdateConfTask({module:"allFiles",itemName:"toolsPanelDisplay",value:true,notify:false})}},resize:function(t,v){if(this.ownerCt.tabLoaded&&v&&v!=PhDOE.user.conf.allFiles.toolsPanelWidth){new ui.task.UpdateConfTask({module:"allFiles",itemName:"toolsPanelWidth",value:v,notify:false})}}},items:{xtype:"tabpanel",activeTab:0,defaults:{autoScroll:true},items:[{title:_("Log"),layout:"fit",items:[new ui.cmp.VCSLogGrid({prefix:"AF",fid:p,fpath:h+c,fname:e,loadStore:PhDOE.user.conf.allFiles.toolsPanelLogLoad})]},{title:_("Entities"),layout:"fit",items:[new ui.cmp.EntitiesAcronymsPanel({dataType:"entities",prefix:"AF",ftype:"ALL",fid:p,loadStore:PhDOE.user.conf.allFiles.toolsPanelEntitiesLoad})]},{title:_("Acronyms"),layout:"fit",items:[new ui.cmp.EntitiesAcronymsPanel({dataType:"acronyms",prefix:"AF",ftype:"ALL",fid:p,loadStore:PhDOE.user.conf.allFiles.toolsPanelAcronymsLoad})]}]}};q=new ui.cmp.FilePanel({id:"AF-ALL-PANEL-"+p,region:"center",title:_("File: ")+h+c+e,prefix:"AF",ftype:"ALL",spellCheck:PhDOE.user.conf.allFiles.enableSpellCheck,spellCheckConf:{module:"allFiles",itemName:"enableSpellCheck"},fid:p,fpath:c,fname:e,lang:h,parser:d,storeRecord:k,syncScrollCB:false,syncScroll:false})}Ext.getCmp("main-panel").add({id:"AF-"+p,layout:"border",title:e,originTitle:e,closable:true,tabLoaded:false,panEntities:!PhDOE.user.conf.allFiles.toolsPanelEntitiesLoad,panAcronyms:!PhDOE.user.conf.allFiles.toolsPanelAcronymsLoad,panVCS:!PhDOE.user.conf.allFiles.toolsPanelLogLoad,panLoaded:false,tabTip:String.format(_("in {0}"),c),iconCls:"iconAllFiles",items:[q,o]})}Ext.getCmp("main-panel").setActiveTab("AF-"+p)}},initComponent:function(){Ext.apply(this,{tbar:[_("Search: ")," ",new Ext.form.TwinTriggerField({id:"AF-search",validationEvent:false,validateOnBlur:false,trigger1Class:"x-form-clear-trigger",trigger2Class:"x-form-search-trigger",hideTrigger1:true,width:180,enableKeyEvents:true,listeners:{keypress:function(d,c){if(c.getKey()===c.ENTER){this.onTrigger2Click()}}},onTrigger1Click:function(){var c=ui.cmp._RepositoryTree.instance;this.setValue("");this.triggers[0].hide();this.setSize(180,10);c.root.setText(_("Repository"));delete c.loader.baseParams.search;c.root.reload()},onTrigger2Click:function(){var c=ui.cmp._RepositoryTree.instance,d=this.getValue();if(d===""||d.length<3){this.markInvalid(_("Your search must contain at least 3 characters"));return}this.clearInvalid();this.triggers[0].show();this.setSize(180,10);c.loader.baseParams.search=d;c.root.reload(function(){c.root.setText(String.format(_("Search result: {0}"),c.root.childNodes.length))})}})]});ui.cmp.RepositoryTree.superclass.initComponent.call(this);this.on("contextmenu",this.onContextMenu,this);this.on("dblclick",this.onDblClick,this);new Ext.tree.TreeSorter(this,{folderSort:true})}});ui.cmp._RepositoryTree.instance=null;ui.cmp.RepositoryTree.getInstance=function(c){if(!ui.cmp._RepositoryTree.instance){if(!c){c={}}ui.cmp._RepositoryTree.instance=new ui.cmp.RepositoryTree(c)}return ui.cmp._RepositoryTree.instance};Ext.namespace("ui","ui.cmp","ui.cmp._StaleFileGrid");ui.cmp._StaleFileGrid.store=new Ext.data.GroupingStore({proxy:new Ext.data.HttpProxy({url:"./do/getFilesNeedUpdate"}),reader:new Ext.data.JsonReader({root:"Items",totalProperty:"nbItems",idProperty:"id",fields:[{name:"id"},{name:"path"},{name:"name"},{name:"revision"},{name:"original_revision"},{name:"en_revision"},{name:"maintainer"},{name:"fileModifiedEN"},{name:"fileModifiedLang"}]}),sortInfo:{field:"name",direction:"ASC"},groupField:"path",listeners:{datachanged:function(e){var c=e.getCount(),d=false;if(PhDOE.user.haveKarma){e.each(function(f){if(f.data.maintainer==PhDOE.user.login){d++}},this)}if(d){Ext.getDom("acc-need-update-nb").innerHTML=c+" - "+String.format(_("{0} mine"),d)}else{Ext.getDom("acc-need-update-nb").innerHTML=c}}}});ui.cmp._StaleFileGrid.view=new Ext.grid.GroupingView({forceFit:true,startCollapsed:true,groupTextTpl:'{[values.rs[0].data["path"]]} ({[values.rs.length]} {[values.rs.length > 1 ? "'+_("Files")+'" : "'+_("File")+'"]})',deferEmptyText:false,getRowClass:function(d){if(d.data.fileModifiedEN||d.data.fileModifiedLang){var f=Ext.util.JSON.decode(d.data.fileModifiedEN),e=Ext.util.JSON.decode(d.data.fileModifiedLang),c;c=(PhDOE.user.isAnonymous)?"anonymous":PhDOE.user.login;return((f.user===c&&f.anonymousIdent===PhDOE.user.anonymousIdent)||(e.user===c&&e.anonymousIdent===PhDOE.user.anonymousIdent))?"fileModifiedByMe":"fileModifiedByAnother"}return false},emptyText:'
'+_("No Files")+"
"});ui.cmp._StaleFileGrid.columns=[{id:"name",header:_("Files"),sortable:true,dataIndex:"name",renderer:function(d,g,e){var j="",h,f,c;c=(PhDOE.user.isAnonymous)?"anonymous":PhDOE.user.login;if(e.data.fileModifiedEN){h=Ext.util.JSON.decode(e.data.fileModifiedEN);if(h.user===c&&h.anonymousIdent===PhDOE.user.anonymousIdent){j=_("File EN modified by me")+" "}else{j=String.format(_("File EN modified by {0}"),h.user)+" "}}if(e.data.fileModifiedLang){f=Ext.util.JSON.decode(e.data.fileModifiedLang);if(f.user===c&&f.anonymousIdent===PhDOE.user.anonymousIdent){j+=String.format(_("File {0} modified by me"),PhDOE.user.lang.ucFirst())}else{j+=String.format(_("File {0} modified by {1}"),PhDOE.user.lang.ucFirst(),f.user)}}if(j!==""){return""+d+""}else{return d}}},{header:_("EN revision"),width:45,sortable:true,dataIndex:"en_revision"},{header:"",width:45,sortable:true,dataIndex:"revision"},{header:_("Maintainer"),width:45,sortable:true,dataIndex:"maintainer"},{header:_("Path"),dataIndex:"path",hidden:true}];ui.cmp._StaleFileGrid.menu=function(c){Ext.apply(this,c);this.init();ui.cmp._StaleFileGrid.menu.superclass.constructor.call(this)};Ext.extend(ui.cmp._StaleFileGrid.menu,Ext.menu.Menu,{init:function(){Ext.apply(this,{items:[{scope:this,text:""+_("Edit in a new tab")+"",iconCls:"iconTabNeedUpdate",handler:function(){this.grid.fireEvent("rowdblclick",this.grid,this.rowIdx,this.event)}},{scope:this,hidden:this.hideDiffMenu,text:_("View diff..."),iconCls:"iconViewDiff",menu:new Ext.menu.Menu({items:[{scope:this,hidden:(this.grid.store.getAt(this.rowIdx).data.fileModifiedEN===false),text:String.format(_("... of the {0} file"),"EN"),handler:function(){Ext.getCmp("main-panel").openDiffTab({DiffType:"file",FileName:this.fname,FilePath:"en"+this.fpath})}},{scope:this,hidden:(this.grid.store.getAt(this.rowIdx).data.fileModifiedLang===false),text:String.format(_("... of the {0} file"),PhDOE.user.lang.ucFirst()),handler:function(){Ext.getCmp("main-panel").openDiffTab({DiffType:"file",FileName:this.fname,FilePath:PhDOE.user.lang+this.fpath})}}]})}]})}});ui.cmp.StaleFileGrid=Ext.extend(Ext.grid.GridPanel,{view:ui.cmp._StaleFileGrid.view,loadMask:true,autoExpandColumn:"name",border:false,enableDragDrop:true,ddGroup:"mainPanelDDGroup",onRowContextMenu:function(d,j,h){h.stopEvent();var g=this.store.getAt(j).data,f=g.path,c=g.name;this.getSelectionModel().selectRow(j);new ui.cmp._StaleFileGrid.menu({hideDiffMenu:(g.fileModifiedEN===false&&g.fileModifiedLang===false),grid:this,event:h,rowIdx:j,lang:PhDOE.user.lang,fpath:f,fname:c}).showAt(h.getXY())},onRowDblClick:function(c,d){this.openFile(this.store.getAt(d).data.id)},openFile:function(e){var g=this.store.getById(e),c=g.data.path,d=g.data.name,j=g.data.en_revision,h=g.data.revision,l=g.data.original_revision,f=Ext.util.md5("FNU-"+PhDOE.user.lang+c+d),k="";if(!Ext.getCmp("main-panel").findById("FNU-"+f)){if(PhDOE.user.conf.needUpdate.diffMethod==="using-viewvc"){k=ui.cmp.ViewVCDiff}else{if(PhDOE.user.conf.needUpdate.diffMethod==="using-exec"){k=ui.cmp.ExecDiff}}Ext.getCmp("main-panel").add({id:"FNU-"+f,layout:"border",title:d,originTitle:d,iconCls:"iconTabNeedUpdate",closable:true,tabLoaded:false,panVCSLang:!PhDOE.user.conf.needUpdate.toolsPanelLogLoad,panVCSEn:!PhDOE.user.conf.needUpdate.toolsPanelLogLoad,panDiffLoaded:(PhDOE.user.conf.needUpdate.diffMethod==="using-viewvc"),panLANGLoaded:false,panENLoaded:false,defaults:{split:true},tabTip:String.format(_("Need Update: in {0}"),c),listeners:{resize:function(m){Ext.getCmp("FNU-EN-PANEL-"+f).setWidth(m.getWidth()/2)}},items:[new k({region:"north",collapsible:true,height:PhDOE.user.conf.needUpdate.diffPanelHeight||150,prefix:"FNU",collapsed:!PhDOE.user.conf.needUpdate.diffPanelDisplay,fid:f,fpath:c,fname:d,rev1:(l)?l:h,rev2:j,listeners:{collapse:function(){if(this.ownerCt.tabLoaded){new ui.task.UpdateConfTask({module:"needUpdate",itemName:"diffPanelDisplay",value:false,notify:false})}},expand:function(){if(this.ownerCt.tabLoaded){new ui.task.UpdateConfTask({module:"needUpdate",itemName:"diffPanelDisplay",value:true,notify:false})}},resize:function(p,m,o){if(this.ownerCt.tabLoaded&&o&&o>50&&o!=PhDOE.user.conf.needUpdate.diffPanelHeight){new ui.task.UpdateConfTask({module:"needUpdate",itemName:"diffPanelHeight",value:o,notify:false})}}}}),{region:"west",xtype:"panel",title:_("Tools"),iconCls:"iconConf",collapsedIconCls:"iconConf",collapsible:true,collapsed:!PhDOE.user.conf.needUpdate.toolsPanelDisplay,layout:"fit",bodyBorder:false,plugins:[Ext.ux.PanelCollapsedTitle],width:PhDOE.user.conf.needUpdate.toolsPanelWidth||375,listeners:{collapse:function(){if(this.ownerCt.tabLoaded){new ui.task.UpdateConfTask({module:"needUpdate",itemName:"toolsPanelDisplay",value:false,notify:false})}},expand:function(){if(this.ownerCt.tabLoaded){new ui.task.UpdateConfTask({module:"needUpdate",itemName:"toolsPanelDisplay",value:true,notify:false})}},resize:function(m,o){if(this.ownerCt.tabLoaded&&o&&o!=PhDOE.user.conf.needUpdate.toolsPanelWidth){new ui.task.UpdateConfTask({module:"needUpdate",itemName:"toolsPanelWidth",value:o,notify:false})}}},items:{xtype:"tabpanel",activeTab:0,tabPosition:"bottom",enableTabScroll:true,defaults:{autoScroll:true},items:[new ui.cmp.VCSLogGrid({layout:"fit",title:String.format(_("{0} Log"),PhDOE.user.lang.ucFirst()),prefix:"FNU-LANG",fid:f,fpath:PhDOE.user.lang+c,fname:d,loadStore:PhDOE.user.conf.needUpdate.toolsPanelLogLoad}),new ui.cmp.VCSLogGrid({layout:"fit",title:String.format(_("{0} Log"),"En"),prefix:"FNU-EN",fid:f,fpath:"en"+c,fname:d,loadStore:PhDOE.user.conf.needUpdate.toolsPanelLogLoad}),new ui.cmp.DictionaryGrid({layout:"fit",title:_("Dictionary"),prefix:"FNU",fid:f})]}},new ui.cmp.FilePanel({id:"FNU-LANG-PANEL-"+f,region:"center",title:String.format(_("{0} File: "),PhDOE.user.lang)+c+d,prefix:"FNU",ftype:"LANG",spellCheck:PhDOE.user.conf.needUpdate.enableSpellCheckLang,spellCheckConf:{module:"needUpdate",itemName:"enableSpellCheckLang"},fid:f,fpath:c,fname:d,lang:PhDOE.user.lang,parser:"xml",storeRecord:g,syncScrollCB:true,syncScroll:true,syncScrollConf:{module:"needUpdate",itemName:"syncScrollbars"}}),new ui.cmp.FilePanel({id:"FNU-EN-PANEL-"+f,region:"east",title:_("en File: ")+c+d,prefix:"FNU",ftype:"EN",original:true,readOnly:true,openInNewTabBtn:true,fid:f,fpath:c,fname:d,lang:"en",parser:"xml",storeRecord:g,syncScroll:true,syncScrollConf:{module:"needUpdate",itemName:"syncScrollbars"}})]})}Ext.getCmp("main-panel").setActiveTab("FNU-"+f)},initComponent:function(){ui.cmp._StaleFileGrid.columns[2].header=String.format(_("{0} revision"),Ext.util.Format.uppercase(PhDOE.user.lang));Ext.apply(this,{columns:ui.cmp._StaleFileGrid.columns,store:ui.cmp._StaleFileGrid.store,tbar:[_("Filter: ")," ",new Ext.form.TwinTriggerField({id:"FNU-filter",width:180,hideTrigger1:true,enableKeyEvents:true,validateOnBlur:false,validationEvent:false,trigger1Class:"x-form-clear-trigger",trigger2Class:"x-form-search-trigger",listeners:{specialkey:function(d,c){if(c.getKey()===c.ENTER){this.onTrigger2Click()}}},onTrigger1Click:function(){this.setValue("");this.triggers[0].hide();this.setSize(180,10);ui.cmp._StaleFileGrid.instance.store.clearFilter()},onTrigger2Click:function(){var c=this.getValue(),d;if(c===""||c.length<3){this.markInvalid(_("Your filter must contain at least 3 characters"));return}this.clearInvalid();this.triggers[0].show();this.setSize(180,10);d=new RegExp(c,"i");ui.cmp._StaleFileGrid.instance.store.filterBy(function(e){if(d.test(e.data.path)||d.test(e.data.name)||d.test(e.data.revision)||d.test(e.data.en_revision)||d.test(e.data.maintainer)){return true}else{return false}},this)}})]});ui.cmp.StaleFileGrid.superclass.initComponent.call(this);this.on("rowcontextmenu",this.onRowContextMenu,this);this.on("rowdblclick",this.onRowDblClick,this)}});ui.cmp._StaleFileGrid.instance=null;ui.cmp.StaleFileGrid.getInstance=function(c){if(!ui.cmp._StaleFileGrid.instance){if(!c){c={}}ui.cmp._StaleFileGrid.instance=new ui.cmp.StaleFileGrid(c)}return ui.cmp._StaleFileGrid.instance};Ext.namespace("ui","ui.cmp");ui.cmp.SystemUpdatePrompt=Ext.extend(Ext.Window,{id:"sys-update-win",title:_("Refresh all data"),layout:"form",width:300,height:200,resizable:false,modal:true,bodyStyle:"padding:15px 15px 0",iconCls:"iconRefresh",html:['
',_("Update all files from VCS"),"
",'
',_("This may take time. Thank you for your patience..."),"
",'
',_("Apply all tools"),"
",'
',_("Reload data"),"
"].join(""),buttons:[{id:"btn-start-refresh",text:_("Start"),iconCls:"iconStartRefresh",handler:function(){Ext.getCmp("btn-start-refresh").disable();this.ownerCt.ownerCt.tools.close.setVisible(false);new ui.task.SystemUpdateTask()}}]});Ext.namespace("ui","ui.cmp","ui.cmp._VCSLogGrid");ui.cmp._VCSLogGrid.store=Ext.extend(Ext.data.Store,{reader:new Ext.data.JsonReader({root:"Items",totalProperty:"nbItems",idProperty:"id",fields:[{name:"id"},{name:"revision"},{name:"date",type:"date",dateFormat:"Y/m/d H:i:s"},{name:"author"},{name:"content"}]})});ui.cmp._VCSLogGrid.sm=Ext.extend(Ext.grid.CheckboxSelectionModel,{singleSelect:false,header:"",width:22,listeners:{beforerowselect:function(d){var c=d.getCount();if(c===2){return false}return true},rowselect:function(d){var c=d.getCount();if(c===2){Ext.getCmp(d.prefix+"-PANEL-btn-log-"+d.fid).enable();Ext.get(d.prefix+"-PANEL-btn-log-"+d.fid).frame("3F8538")}else{Ext.getCmp(d.prefix+"-PANEL-btn-log-"+d.fid).disable()}},rowdeselect:function(d){var c=d.getCount();if(c===2){Ext.getCmp(d.prefix+"-PANEL-btn-log-"+d.fid).enable();Ext.get(d.prefix+"-PANEL-btn-log-"+d.fid).frame("3F8538")}else{Ext.getCmp(d.prefix+"-PANEL-btn-log-"+d.fid).disable()}}}});ui.cmp._VCSLogGrid.columns=[{id:"id",header:_("Rev."),width:40,sortable:false,dataIndex:"revision"},{header:_("Content"),width:130,sortable:true,dataIndex:"content"},{header:_("By"),width:50,sortable:true,dataIndex:"author"},{header:_("Date"),width:85,sortable:true,dataIndex:"date",renderer:Ext.util.Format.dateRenderer(_("Y-m-d, H:i"))}];ui.cmp.VCSLogGrid=Ext.extend(Ext.grid.GridPanel,{loadMask:true,autoScroll:true,bodyBorder:false,border:false,autoExpandColumn:"content",initComponent:function(){var f=new ui.cmp._VCSLogGrid.sm({fid:this.fid,prefix:this.prefix}),c=new ui.cmp._VCSLogGrid.store({autoLoad:this.loadStore,proxy:new Ext.data.HttpProxy({url:"./do/getLog"}),baseParams:{Path:this.fpath,File:this.fname},listeners:{scope:this,load:function(h,g){if(this.prefix==="FNU-EN"){Ext.getCmp("FNU-"+this.fid).panVCSEn=true;Ext.getCmp("main-panel").fireEvent("tabLoaded","FNU",this.fid)}if(this.prefix==="FNU-LANG"){Ext.getCmp("FNU-"+this.fid).panVCSLang=true;Ext.getCmp("main-panel").fireEvent("tabLoaded","FNU",this.fid)}if(this.prefix==="FE-EN"){Ext.getCmp("FE-"+this.fid).panVCSEn=true;Ext.getCmp("main-panel").fireEvent("tabLoaded","FE",this.fid)}if(this.prefix==="FE-LANG"){Ext.getCmp("FE-"+this.fid).panVCSLang=true;Ext.getCmp("main-panel").fireEvent("tabLoaded","FE",this.fid)}if(this.prefix==="FNR-EN"){Ext.getCmp("FNR-"+this.fid).panVCSEn=true;Ext.getCmp("main-panel").fireEvent("tabLoaded","FNR",this.fid)}if(this.prefix==="FNR-LANG"){Ext.getCmp("FNR-"+this.fid).panVCSLang=true;Ext.getCmp("main-panel").fireEvent("tabLoaded","FNR",this.fid)}if(this.prefix==="AF"){Ext.getCmp("AF-"+this.fid).panVCS=true;Ext.getCmp("main-panel").fireEvent("tabLoaded","AF",this.fid)}if(this.prefix==="PP"){Ext.getCmp("PP-"+this.fid).panVCS=true;Ext.getCmp("main-panel").fireEvent("tabLoaded","PP",this.fid)}}}}),e=[],d;e.push(f);for(d=0;d'+_("You must manually load this data. Use the refresh button !")+"
"+_("(You can change this behavior by setting an option in the configuration window)")+"",deferEmptyText:false}),tbar:[{scope:this,id:this.prefix+"-PANEL-btn-refreshlog-"+this.fid,tooltip:_("Load/Refresh revisions"),iconCls:"iconRefresh",handler:function(){this.store.reload()}},{scope:this,id:this.prefix+"-PANEL-btn-log-"+this.fid,tooltip:_("View the diff"),iconCls:"iconViewDiff",disabled:true,handler:function(){var j=this.getSelectionModel().getSelections(),h=j[0].data.revision,g=j[1].data.revision;Ext.getBody().mask(' '+_("Finding the diff. Please, wait..."));XHR({params:{task:"getDiff",DiffType:"vcs",FilePath:this.fpath,FileName:this.fname,Rev1:h,Rev2:g},success:function(l){var m=Ext.util.JSON.decode(l.responseText),k;Ext.getBody().unmask();k=new Ext.Window({title:String.format(_("Diff between {0} & {1}"),h,g),width:650,height:350,resizable:false,modal:true,autoScroll:true,bodyStyle:"background-color: white; padding: 5px;",html:'
'+m.content+"
",buttons:[{text:_("Close"),handler:function(){k.close()}}]});k.show()}})}}]});ui.cmp.VCSLogGrid.superclass.initComponent.call(this)}});Ext.namespace("ui","ui.cmp");ui.cmp.ViewVCDiff=Ext.extend(Ext.Panel,{layout:"fit",title:_("Diff From VCS"),iconCls:"iconDiffView",collapsedIconCls:"iconDiffView",plugins:[Ext.ux.PanelCollapsedTitle],initComponent:function(){Ext.apply(this,{items:{id:this.prefix+"-diff-"+this.fid,xtype:"panel",layout:"fit",items:[new Ext.ux.IFrameComponent({id:"frame-"+this.prefix+"-diff-"+this.fid,url:String.format(PhDOE.app.conf.viewVcUrl,this.fpath+this.fname,this.rev1,this.rev2)})]}});ui.cmp.ViewVCDiff.superclass.initComponent.call(this)}});Ext.namespace("ui","ui.cmp","ui.cmp._WorkTreeGrid","ui.cmp._WorkTreeGrid.menu");ui.cmp._WorkTreeGrid.SetProgress=new Ext.util.DelayedTask(function(){new ui.task.SetFileProgressTask({idDB:this.node.attributes.idDB,progress:this.node.attributes.progress})});ui.cmp._WorkTreeGrid.menu.admin=function(c){Ext.apply(this,c);this.init();ui.cmp._WorkTreeGrid.menu.admin.superclass.constructor.call(this)};Ext.extend(ui.cmp._WorkTreeGrid.menu.admin,Ext.menu.Item,{init:function(){var c;switch(this.from){case"file":c=[{scope:this,iconCls:"iconSwitchLang",text:_("Change file's owner"),handler:function(){new ui.cmp.ChangeFileOwner({fileIdDB:this.node.attributes.idDB,fileFolder:this.folderNode.attributes.task,fileName:this.node.attributes.task,currentOwner:this.userNode.attributes.task})}},{scope:this,iconCls:"iconPageDelete",text:((this.node.attributes.type==="delete")?_("Cancel this deletion"):_("Clear this change")),handler:function(){new ui.task.ClearLocalChangeTask({ftype:this.node.attributes.type,fpath:this.folderNode.attributes.task,fname:this.node.attributes.task})}}];break;case"patch":c=[{scope:this,iconCls:"iconTrash",text:_("Delete this patch"),handler:function(){ui.task.DeletePatchTask({patchID:this.node.attributes.idDB})}}];break}Ext.apply(this,{text:_("Administrator menu"),iconCls:"iconAdmin",handler:function(){return false},menu:new Ext.menu.Menu({items:c})})}});ui.cmp._WorkTreeGrid.menu.commit=function(c){Ext.apply(this,c);this.init();ui.cmp._WorkTreeGrid.menu.commit.superclass.constructor.call(this)};Ext.extend(ui.cmp._WorkTreeGrid.menu.commit,Ext.menu.Item,{init:function(){Ext.apply(this,{text:_("Commit..."),iconCls:"iconCommitFileVcs",disabled:(!PhDOE.user.haveKarma),handler:function(){return false},menu:new Ext.menu.Menu({items:[{scope:this,text:_("...this file"),hidden:(this.from==="user"||this.from==="folder"||this.from==="patch"||this.from==="anonymousPatch"),iconCls:"iconCommitFileVcs",handler:function(){var c=[{fid:Ext.util.md5(this.folderNode.attributes.task+this.node.attributes.task),fpath:this.folderNode.attributes.task,fname:this.node.attributes.task,fdbid:this.node.attributes.idDB,ftype:this.node.attributes.type,fdate:Date.parseDate(this.node.attributes.last_modified,"Y-m-d H:i:s"),fby:this.userNode.attributes.task}];new ui.cmp.CommitPrompt({files:c}).show()}},{scope:this,text:_("...all files from this folder"),hidden:(this.from==="user"||this.from==="patch"||this.from==="anonymousPatch"),iconCls:"iconCommitFileVcs",handler:function(){var c=[];this.folderNode.cascade(function(d){if(d.attributes.type!=="folder"&&d.attributes.type!=="user"){c.push({fid:Ext.util.md5(this.folderNode.attributes.task+d.attributes.task),fpath:this.folderNode.attributes.task,fname:d.attributes.task,fdbid:d.attributes.idDB,ftype:d.attributes.type,fdate:Date.parseDate(d.attributes.last_modified,"Y-m-d H:i:s"),fby:this.userNode.attributes.task})}},this);new ui.cmp.CommitPrompt({files:c}).show()}},{scope:this,text:_("...all files from this patch"),hidden:(this.module!=="patches"||this.from==="user"),iconCls:"iconCommitFileVcs",handler:function(){var e=[],c="",d=false;if(this.from==="anonymousPatch"){c=this.patchNode.attributes.patchDescription+"\n\n-- \nProvided by "+this.patchNode.parentNode.attributes.task+" ("+this.patchNode.attributes.patchEmail+")";d=this.patchNode.attributes.idDB}this.patchNode.cascade(function(f){if(f.attributes.type!=="folder"&&f.attributes.type!=="user"&&f.attributes.type!=="patch"){e.push({fid:Ext.util.md5(f.parentNode.attributes.task+f.attributes.task),fpath:f.parentNode.attributes.task,fname:f.attributes.task,fdbid:f.attributes.idDB,ftype:f.attributes.type,fdate:Date.parseDate(f.attributes.last_modified,"Y-m-d H:i:s"),fby:this.userNode.attributes.task})}},this);new ui.cmp.CommitPrompt({files:e,defaultMessage:c,patchID:d}).show()}},{scope:this,text:_("...all files modified by me"),hidden:(this.from==="anonymousPatch"),iconCls:"iconCommitFileVcs",handler:function(){var c=[];this.userNode.cascade(function(d){if(d.attributes.type!=="folder"&&d.attributes.type!=="user"&&d.attributes.type!=="patch"){c.push({fid:Ext.util.md5(d.parentNode.attributes.task+d.attributes.task),fpath:d.parentNode.attributes.task,fname:d.attributes.task,fdbid:d.attributes.idDB,ftype:d.attributes.type,fdate:Date.parseDate(d.attributes.last_modified,"Y-m-d H:i:s"),fby:this.userNode.attributes.task})}},this);new ui.cmp.CommitPrompt({files:c}).show()}}]})})}});ui.cmp._WorkTreeGrid.menu.usersPatch=function(d){Ext.apply(this,d);var f=Ext.getCmp(this.menuID),e,c;if(!f.itemRendered){f.removeAll();f.doLayout();c=ui.cmp.PatchesTreeGrid.getInstance().getUserPatchesList();if(c){Ext.each(c,function(g){e=new Ext.menu.Item({id:Ext.id(),text:g.attributes.task,handler:function(){ui.task.MoveToPatch({patchID:g.attributes.idDB,patchName:g.attributes.task,nodesToAdd:f.nodesToAdd})}});f.add(e)},this)}else{e=new Ext.menu.Item({disabled:true,text:_("You have no patch currently. You must create one.")});f.add(e)}e=new Ext.menu.Item({text:_("Create a new patch"),iconCls:"iconAdd",handler:function(){var g=new ui.cmp.ManagePatchPrompt({title:_("Create a new patch"),nodesToAdd:f.nodesToAdd});g.show(this.el)}});f.add("-",e);f.doLayout();f.itemRendered=true}};ui.cmp._WorkTreeGrid.menu.users=function(c){Ext.apply(this,c);this.init();ui.cmp._WorkTreeGrid.menu.users.superclass.constructor.call(this)};Ext.extend(ui.cmp._WorkTreeGrid.menu.users,Ext.menu.Menu,{listeners:{show:function(){if(this.node.attributes.task===PhDOE.user.login){ui.cmp._WorkTreeGrid.menu.usersPatch({menuID:"usersPatchesMenu"})}}},init:function(){var d=[],c;this.node.cascade(function(e){if(e.attributes.type!=="user"&&e.attributes.type!=="folder"){d.push(e)}},this);c=(this.node.attributes.task===PhDOE.user.login)?[{text:_("Submit all files for review in patch:"),iconCls:"iconPendingPatch",handler:function(){return false},menu:new Ext.menu.Menu({id:"usersPatchesMenu",itemRendered:false,nodesToAdd:d})},{xtype:"menuseparator",hidden:!PhDOE.user.haveKarma},new ui.cmp._WorkTreeGrid.menu.commit({hidden:!PhDOE.user.haveKarma,from:"user",node:false,folderNode:false,userNode:this.node})]:[{scope:this,text:String.format(_("Send an email to {0}"),""+this.node.attributes.task+""),iconCls:"iconSendEmail",hidden:!this.node.attributes.email,handler:function(){var e=new ui.cmp.EmailPrompt();e.setData(this.node.attributes.task,this.node.attributes.email);e.show(this.node.el)}}];Ext.apply(this,{items:c})}});ui.cmp._WorkTreeGrid.menu.folders=function(c){Ext.apply(this,c);this.init();ui.cmp._WorkTreeGrid.menu.folders.superclass.constructor.call(this)};Ext.extend(ui.cmp._WorkTreeGrid.menu.folders,Ext.menu.Menu,{listeners:{show:function(){if(this.node.parentNode.attributes.task===PhDOE.user.login){ui.cmp._WorkTreeGrid.menu.usersPatch({menuID:"foldersPatchesMenu"})}}},init:function(){var c=[];if(this.node.parentNode.attributes.task!==PhDOE.user.login){return false}this.node.cascade(function(d){if(d.attributes.type!=="folder"){c.push(d)}},this);Ext.apply(this,{items:[{text:_("Submit all files in this directory in patch:"),iconCls:"iconPendingPatch",handler:function(){return false},menu:new Ext.menu.Menu({id:"foldersPatchesMenu",itemRendered:false,nodesToAdd:c})},{xtype:"menuseparator",hidden:!PhDOE.user.haveKarma},new ui.cmp._WorkTreeGrid.menu.commit({hidden:!PhDOE.user.haveKarma,from:"folder",node:false,folderNode:this.node,userNode:this.node.parentNode})]})}});ui.cmp._WorkTreeGrid.menu.files=function(c){Ext.apply(this,c);this.init();ui.cmp._WorkTreeGrid.menu.files.superclass.constructor.call(this)};Ext.extend(ui.cmp._WorkTreeGrid.menu.files,Ext.menu.Menu,{listeners:{show:function(){if(this.node.parentNode.parentNode.attributes.task===PhDOE.user.login){ui.cmp._WorkTreeGrid.menu.usersPatch({menuID:"filePatchesMenu"})}}},init:function(){var h=this.node,l=h.attributes.type,g,c=h.parentNode.attributes.task,e=h.attributes.task,k=h.ownerTree,f=h.parentNode.parentNode.attributes.task,d=[],j;j=h.parentNode.attributes.task.split("/");g=j[0];d.push(this.node);Ext.apply(this,{items:[{text:""+((l==="delete")?_("View in a new tab"):_("Edit in a new tab"))+"",iconCls:"iconEdit",handler:function(){k.openFile(h)}},{text:_("Submit as patch for review in:"),iconCls:"iconPendingPatch",hidden:(f!==PhDOE.user.login),handler:function(){return false},menu:new Ext.menu.Menu({id:"filePatchesMenu",itemRendered:false,nodesToAdd:d})},{text:_("Set the progress..."),iconCls:"iconProgress",hidden:(l==="delete"||f!==PhDOE.user.login),menu:{xtype:"menu",showSeparator:false,items:[{xtype:"slider",width:200,value:this.node.attributes.progress,increment:10,minValue:0,maxValue:100,plugins:new Ext.slider.Tip({getText:function(m){return String.format(""+_("{0}% complete")+"",m.value)}}),refreshNodeColumns:function(o){var x=o.getOwnerTree(),u=o.attributes,s=x.columns,m=o.ui.getEl().firstChild,y=m.childNodes,p,r,w,q;for(p=1,q=s.length;p1){for(var d=0;d1){f=new Ext.menu.Menu({listeners:{show:function(){ui.cmp._WorkTreeGrid.menu.usersPatch({menuID:"globalPatchesMenu"})}},items:[{text:_("Submit all this files for review in patch:"),iconCls:"iconPendingPatch",handler:function(){return false},menu:new Ext.menu.Menu({id:"globalPatchesMenu",itemRendered:false,nodesToAdd:l})}]});f.showAt(k.getXY());return}g=j.attributes.type;switch(g){case"user":j.select();f=new ui.cmp._WorkTreeGrid.menu.users({node:j});break;case"folder":j.select();f=new ui.cmp._WorkTreeGrid.menu.folders({node:j});break;default:j.select();f=new ui.cmp._WorkTreeGrid.menu.files({node:j});break}f.showAt(k.getXY())},initComponent:function(){function c(d,e){e.css+=" x-grid3-progresscol";return String.format('
',d(f),(f/100)*100,e(f))}})}],loader:{dataUrl:"./do/getWork",baseParams:{module:"workInProgress"}}});ui.cmp.WorkTreeGrid.superclass.initComponent.call(this);this.on("contextmenu",this.onContextMenu,this);this.on("resize",this.resizeCmp,this);this.on("dblclick",this.openFile,this);this.getRootNode().on("beforechildrenrendered",function(){this.updateFilesCounter.defer(200,this)},this)},resizeCmp:function(g,f,d,e){this.columns[0].width=e-(this.columns[1].width+this.columns[2].width+5);this.updateColumnWidths()},delRecord:function(m){var d=this.getRootNode(),g,e,k,c,l,f;for(g=0;gPlease delete these characters or change the header of the XML file to UTF-8 ; i.e.:
<?xml version="1.0" encoding="utf-8"?>
');break;case"tabs_found":d=_("Error");e=_('It seems that you have inserted tab caracters into this file. Please, replace each one by a single space. Tip: You can use the "Re-indent this entire file" button to replace all tabs by spaces.');break;case"folder_already_exist":d=_("Error");e=_("This folder already exists in the current folder.");break;case"file_already_exist":d=_("Error");e=_("This file already exists in the current folder.");break;case"save_you_cant_modify_it":d=_("Error");e=_("You aren't allowed to modify this file as it has already been modified by different user. Contact an administrator if you want to be able to modify it.");break;case"file_isnt_owned_by_current_user":d=_("Error");e=_("The file for which you want to clear local changes isn't owned by you. You can only perform this action on your own files.");break;case"file_localchange_didnt_exist":d=_("Error");e=_("The file you want to clear local changes in doesn't exist as a work in progress.");break;case"changeFilesOwnerNotAdmin":d=_("Error");e=_("You aren't allowed to change this file's owner. You must be a global administrator or an administrator for this language to be able to do that.");break;case"patch_delete_dont_exist":d=_("Error");e=_("The patch you want to delete doesn't exist.");break;case"patch_delete_isnt_own_by_current_user":d=_("Error");e=_("The patch you want to delete isn't owned by you. Only the author of the patch or a global administrator can delete it.");break;case"action_only_global_admin":d=_("Error");e=_("This action is available to global administrators only.");break;case"action_only_admin":d=_("Error");e=_("This action is available to global administrators or to administrators for this language only.");break}Ext.MessageBox.alert(d,e)},runDirectAccess:function(){if(directAccess){if(directAccess.link=="perm"){ui.cmp.RepositoryTree.getInstance().openFile("byPath",directAccess.lang+directAccess.path,directAccess.name)}if(directAccess.link=="patch"){Ext.getCmp("main-panel").openDiffTab({DiffType:"file",FilePath:directAccess.path,FileName:directAccess.name})}if(directAccess.link=="patchID"){Ext.getCmp("main-panel").openDiffTab({DiffType:"file",patchID:directAccess.patchID,patchName:directAccess.patchName})}}},afterLoadAllStore:function(){this.app.loaded=true;this.runDirectAccess();if(this.user.conf.main.loadMailsAtStartUp){ui.cmp.PortletLocalMail.getInstance().reloadData()}if(this.user.conf.main.loadBugsAtStartUp){ui.cmp.PortletBugs.getInstance().reloadData()}PhDOE.setTopic();PhDOE.setTopic(true)},loadAllStore:function(){var e=new Ext.ProgressBar({width:300,renderTo:"loading-progressBar"}),c=[],d;if(PhDOE.user.lang!=="en"){c=[ui.cmp._MainMenu.store,ui.cmp.StaleFileGrid.getInstance().store,ui.cmp.ErrorFileGrid.getInstance().store,ui.cmp.PendingReviewGrid.getInstance().store,ui.cmp.NotInENGrid.getInstance().store,ui.cmp.PortletSummary.getInstance().store,ui.cmp.PortletTranslationGraph.getInstance().store,ui.cmp.PortletTranslationsGraph.getInstance().store,ui.cmp.PortletTranslator.getInstance().storeTranslator,ui.cmp.PortletTranslator.getInstance().storeReviewer,ui.cmp.PendingTranslateGrid.getInstance().store,ui.cmp.PortletInfo.getInstance().store]}else{c=[ui.cmp._MainMenu.store,ui.cmp.PortletTranslationsGraph.getInstance().store,ui.cmp.ErrorFileGrid.getInstance().store,ui.cmp.PortletInfo.getInstance().store]}d=function(f){e.updateProgress((f+1)/c.length,(f+1)+" of "+c.length+"...");c[f].load({callback:function(){f++;if(f '+this.app.name+"",autoHeight:true,border:false,margins:"0 0 5 0"},{region:"west",id:"main-menu-panel",layout:"accordion",collapsible:true,collapseMode:"mini",animate:true,split:true,width:PhDOE.user.conf.main.mainMenuWidth||300,header:false,listeners:{resize:function(j,o){if(o&&o!=PhDOE.user.conf.main.mainMenuWidth){var m=new ui.task.UpdateConfTask({module:"main",itemName:"mainMenuWidth",value:o,notify:false})}}},tbar:[{text:_("Main menu"),iconCls:"MainMenu",menu:new ui.cmp.MainMenu()}],items:[{id:"acc-need-translate",title:_("Files need translate")+' (0)',layout:"fit",border:false,iconCls:"iconFilesNeedTranslate",hidden:(PhDOE.user.lang==="en"),items:[ui.cmp.PendingTranslateGrid.getInstance()],collapsed:true,listeners:{expand:function(j){Ext.getCmp("FNT-filter").wrap.setWidth(180);Ext.getCmp("FNT-filter").syncSize()}}},{id:"acc-need-update",title:_("Files need update")+' (0)',layout:"fit",border:false,iconCls:"iconFilesNeedUpdate",hidden:(PhDOE.user.lang==="en"),items:[ui.cmp.StaleFileGrid.getInstance()],collapsed:true,listeners:{expand:function(j){Ext.getCmp("FNU-filter").wrap.setWidth(180);Ext.getCmp("FNU-filter").syncSize()}}},{id:"acc-error",title:(PhDOE.user.lang==="en")?"Number of failures to meet 'strict standards' (0)":_("Error in current translation")+' (0)',layout:"fit",border:false,iconCls:"iconFilesError",items:[ui.cmp.ErrorFileGrid.getInstance()],collapsed:true,listeners:{expand:function(j){Ext.getCmp("FE-filter").wrap.setWidth(180);Ext.getCmp("FE-filter").syncSize()}}},{id:"acc-need-reviewed",title:_("Files need reviewed")+' (0)',layout:"fit",border:false,iconCls:"iconFilesNeedReviewed",hidden:(PhDOE.user.lang==="en"),items:[ui.cmp.PendingReviewGrid.getInstance()],collapsed:true,listeners:{expand:function(j){Ext.getCmp("FNR-filter").wrap.setWidth(180);Ext.getCmp("FNR-filter").syncSize()}}},{id:"acc-notInEn",title:_("Not in EN tree")+' (0)',layout:"fit",border:false,iconCls:"iconNotInEn",hidden:(PhDOE.user.lang==="en"),items:[ui.cmp.NotInENGrid.getInstance()],collapsed:true},{id:"acc-all-files",title:_("All files"),layout:"fit",border:false,iconCls:"iconAllFiles",items:[ui.cmp.RepositoryTree.getInstance()],collapsed:true,listeners:{expand:function(j){Ext.getCmp("AF-search").wrap.setWidth(180);Ext.getCmp("AF-search").syncSize()}}},{id:"acc-work-in-progress",title:_("Work in progress")+' (0)',layout:"fit",border:false,iconCls:"iconWorkInProgress",items:[ui.cmp.WorkTreeGrid.getInstance()],collapsed:true,tools:[{id:"refresh",qtip:_("Refresh"),handler:function(){ui.cmp.WorkTreeGrid.getInstance().getRootNode().reload()}}]},{id:"acc-patches",tools:[{id:"refresh",qtip:_("Refresh"),handler:function(){ui.cmp.PatchesTreeGrid.getInstance().getRootNode().reload()}},{id:"gear",hidden:PhDOE.user.haveKarma,qtip:_("Open the Log Message Manager"),handler:function(){if(!Ext.getCmp("commit-log-win")){var j=new ui.cmp.CommitLogManager()}Ext.getCmp("commit-log-win").show("acc-patches")}}],title:_("Patches for review")+' (0)',layout:"fit",border:false,iconCls:"iconPatch",items:[ui.cmp.PatchesTreeGrid.getInstance()],collapsed:true}]},{xtype:"mainpanel",id:"main-panel",region:"center",items:[{xtype:"panel",id:"MainInfoTabPanel",title:_("Home"),baseCls:"MainInfoTabPanel",autoScroll:true,plain:true,items:[{xtype:"container",layout:"column",border:false,items:[{xtype:"container",columnWidth:0.5,html:'
',listeners:{afterrender:function(m){var j="",p="",o;o=Ext.get("loginLibel");if(PhDOE.user.isGlobalAdmin||PhDOE.user.isLangAdmin){o.addClass("userAdmin");p=' '+PhDOE.user.login}else{if(PhDOE.user.authService=="VCS"){p=' '+PhDOE.user.login}else{if(PhDOE.user.authService=="google"){p=' '+PhDOE.user.login}else{if(PhDOE.user.authService=="facebook"){p=' '+PhDOE.user.login}}}}o.dom.innerHTML=p;content=_("Connected using")+" "+PhDOE.user.authService+" ";content+=(PhDOE.user.isGlobalAdmin)?_("You are a global Administrator")+" ":"";content+=(PhDOE.user.isLangAdmin)?_("You are an administrator for this language")+" ":"";new Ext.ToolTip({target:"loginLibel",anchor:"top",html:content})}}},{xtype:"container",columnWidth:0.5,html:'