TS.StudentHoldsWindow=Ext.extend(Ext.Window,{_holdsPanel:null,layout:'fit',studentHoldPanel:null,modal:true,width:1024,height:420,canRead:true,canAdd:false,canModify:false,canRelease:false,constructor:function(config) {config=Ext.apply({isWindow:true,offset:10},config);TS.StudentHoldsWindow.superclass.constructor.call(this,config);},show:function() {var scopeMe=this;if(this.studentHoldPanel.isValid) {TS.StudentHoldsWindow.superclass.show.call(this);}},initComponent:function() {if(!permissionManager.hasPermission('ReadStudentHoldModule')) {return;} this._holdsPanel=new TS.StudentHoldsPanel(this.initialConfig);this.studentHoldPanel=this.add(this._holdsPanel);this.studentHoldPanel.loadData();}});TS.StudentHoldsPanel=Ext.extend(TS.Panel,{layout:'anchor',initialData:{},isLoaded:false,panelCls:'',panelTitle:null,isValid:true,isWindow:false,offSet:15,border:false,canRead:true,canAdd:false,canModify:false,canRelease:false,holdTypes:null,scopeMe:null,parent:null,displayReleased:false,parentEl:'mainContentDiv',studentEid:null,_header:null,_studentHolds:null,_helpPanelTemplate:'{0}',renderDateForSort:function(value) {if(value!=null&&value.Year==null) {return TS.jsonToUTCDate(value);} return value==null?new Date(2050,1,1,1,1,1):new Date(value.Year,value.Month,value.Day,value.Hour,value.Minute,value.Second);},_renderDate:function(value,metadata,record,rowIndex,colIndex,store) {return(record.data==null||record.data[this.name]==null||record.data[this.name].Year==null)?'':TS.formatDate(value);},_renderReleasedDate:function(value,metadata,record,rowIndex,colIndex,store) {return record.data.IsReleased?TS.formatDate(TS.jsonToUTCDate(value)):'Still Active';},_renderReleaseIcon:function(value,metadata,record,rowIndex,colIndex,store) {var template='
';var releaseFileName='check.png';var releasedFileName='checkDisabled.png';return String.format(template,webAssetRoot,record.data.IsReleased?releaseFileName:releasedFileName);},_renderEditIcon:function(value,metadata,record,rowIndex,colIndex,store) {var template='';var editFileName='pencil.png';var viewFileName='view.png';return record.data.IsReleased||!permissionManager.hasPermission('ModifyStudentHoldModule')?String.format(template,webAssetRoot,viewFileName):String.format(template,webAssetRoot,editFileName);},initComponent:function() {TS.StudentHoldsPanel.superclass.initComponent.call(this);scopeMe=this;if(this.initialData==null||this.initialData.studentEid==null||this.initialData.studentEid.length==0) {this.isValid=false;if(this.isWindow)this.hide();} this.studentEid=this.initialData.studentEid;if(!this.isWindow) {this.isLoaded=true;this.offSet=215;Ext.EventManager.onWindowResize(function() {var size=Ext.get(this.parentEl).getSize();var offset=this.offSet;if(this._listGridPanel) {this.getGrid().setWidth(size.width-12-offset);this.getGrid().getView().refresh();}},this);} this._studentHoldsStore=new Ext.data.JsonStore({parent:this,fields:['StudentHoldId','HoldTypeId','HoldType','Description','Effect',{name:'DateTimeCreated',sortType:function(value){return scopeMe.renderDateForSort(value);}},{name:'DateTimeModified',sortType:function(value){return scopeMe.renderDateForSort(value);}},{name:'IsReleased',sortType:function(value){return value?'0':'1';}},{name:'DateTimeReleased',sortType:function(value){return scopeMe.renderDateForSort(value);}},'CreatedBy','ModifiedBy','ReleasedBy','Comment'],data:[]});this._holdTypesStore=new Ext.data.JsonStore({fields:['HoldTypeId','Name','Description','HoldEffect','IsActive'],data:[]});if(this.initialData.studentHolds) {this._studentHolds=this.initialData.studentHolds;this._studentHoldsStore.loadData(this.initialData.studentHolds);this._studentHoldsStore.filterBy(function(rec) {if(!this.displayReleased) {return!rec.data.IsReleased;} return true;});this._holdTypesStore.loadData(this.initialData.holdTypes);this._holdTypesStore.filterBy(function(rec) {return rec.IsActive;});this._holdTypes=this.initialData.holdTypes;} var holdsPanel=this;this._helpPanel=new TS.Panel({border:false,html:String.format(this._helpPanelTemplate,top.I18N["Academic.StudentHolds.Grid.HelpText"]),style:'padding: 5px;'});this._listGridPanel=new TS.Panel({layout:this.isWindow?'fit':'anchor',border:false});{this.addGrid();this.getGrid().store=this._studentHoldsStore;} this._studentHolds=this.initialData.studentHolds;this._header=this.add({xtype:'ts.panel',layout:'anchor',autoHeight:true,border:false,height:30,items:[{xtype:'ts.sectionHeader',border:false,studentHoldPanel:this,style:'padding-left: 5px;',items:[],cls:this.panelCls==null?'ts_panelHeader':this.panelCls,componentTitle:String.format(this.panelTitle==null?top.I18N['Academic.StudentHolds.TitlePanel.Title']:this.panelTitle,this.isWindow?this.studentName:''),actions:[{text:top.I18N['Academic.StudentHolds.Header.AddLinkButton'],disabled:!permissionManager.hasPermission('AddStudentHoldModule'),scope:this,handler:function() {this.addNewHold();}},{text:top.I18N['Academic.StudentHolds.Header.ConfigureLinkButton'],scope:this,handler:function() {var xy=this.getGrid().getEl().getXY();this.configure(xy);}},{xtype:'ts.linkButton',text:top.I18N['Academic.StudentHolds.Header.ExportLinkButton'],scope:this,handler:function() {this.buildExport();}},{text:top.I18N['Academic.StudentHolds.Header.ToggleReleasedLinkButton'],initComponent:function(){},scope:this,handler:function() {var isShowing=this.filterByReleased();}}]}]});this.add(this._helpPanel);this.add(this._listGridPanel);if(!permissionManager.hasPermission('ReadStudentHoldModule')) {this.hide();return;} if(this.initialData==null||this.initialData.studentEid==null||this.initialData.studentEid.length==0) {this.disable();}},enable:function() {TS.Panel.superclass.enable.call(this);this._header.items.items[0].enable();},disable:function() {TS.Panel.superclass.disable.call(this);this._header.items.items[0].disable();},addGrid:function() {var scopeMe=this;var holdsPanel=this;this._listGridPanel.add({xtype:'ts.gridPanel',stateful:false,monitorResize:true,headerAsText:false,id:'grid',border:false,scrollOffset:20,viewConfig:{forceFit:true,emptyText:'No data to display.',border:false},columns:[{header:top.I18N['Academic.StudentHolds.Grid.HoldTypeColHeader'],width:80,dataIndex:'HoldType',sortable:true},{id:'Description',header:top.I18N['Academic.StudentHolds.Grid.DescriptionColHeader'],dataIndex:'Description',width:130,sortable:true},{header:top.I18N['Academic.StudentHolds.Grid.HoldEffectColHeader'],width:180,dataIndex:'Effect',sortable:true},{header:top.I18N['Academic.StudentHolds.Grid.CreatedColHeader'],width:180,dataIndex:'DateTimeCreated',renderer:this._renderDate,sortable:true},{header:top.I18N['Academic.StudentHolds.Grid.DateReleasedColHeader'],width:180,dataIndex:'DateTimeReleased',renderer:this._renderReleasedDate,sortable:true},{header:top.I18N['Academic.StudentHolds.Grid.DateModifiedColHeader'],width:180,dataIndex:'DateTimeModified',renderer:this._renderDate,sortable:true},{header:top.I18N['Academic.StudentHolds.Grid.IsReleasedColHeader'],width:180,dataIndex:'IsReleased',sortable:true,hidden:true},{header:top.I18N['Academic.StudentHolds.Grid.CreatedByColHeader'],width:180,dataIndex:'CreatedBy',sortable:true,hidden:true},{header:top.I18N['Academic.StudentHolds.Grid.ModifiedByColHeader'],width:180,dataIndex:'ModifiedBy',sortable:true,hidden:true},{header:top.I18N['Academic.StudentHolds.Grid.ReleasedByColHeader'],width:180,dataIndex:'ReleasedBy',sortable:true,hidden:true},{header:top.I18N['Academic.StudentHolds.Grid.CommentsColHeader'],width:180,dataIndex:'Comment',sortable:false,renderer:function(val){return val;}},{resizable:false,id:"ActionRelease",header:permissionManager.hasPermission('ReleaseStudentHoldModule')?top.I18N['Academic.StudentHolds.Grid.ActionReleaseColHeader']:top.I18N['Academic.StudentHolds.Grid.ReleasedColHeader'],width:75,renderer:this._renderReleaseIcon},{resizable:false,id:"ActionEditView",header:top.I18N['Academic.StudentHolds.Grid.ActionEditViewColHeader'],width:75,renderer:this._renderEditIcon}],stripeRows:true,sm:new Ext.grid.RowSelectionModel({singleSelect:true}),height:300,listeners:{rowdblclick:function(x,rowIndex) {scopeMe.modifyHold(rowIndex);},cellclick:function(x,row,col,e) {if(x.getColumnModel().getColumnById(x.getColumnModel().getColumnId(col)).id=="ActionRelease"&&!holdsPanel._studentHoldsStore.data.items[row].data.IsReleased) {holdsPanel.releaseHold(holdsPanel._studentHoldsStore.data.items[row].data.StudentHoldId);} else if(x.getColumnModel().getColumnById(x.getColumnModel().getColumnId(col)).id=="ActionEditView") {scopeMe.modifyHold(row);}}}});},getGrid:function() {return this._listGridPanel.getComponent('grid');},filterByReleased:function() {this.closeEdit();var displayReleased=!this.displayReleased;this._studentHoldsStore.filterBy(function(rec) {var result;if(!displayReleased) {return!rec.data.IsReleased;} return displayReleased;});this.displayReleased=!this.displayReleased;return this.displayReleased;},buildExport:function() {if(this._studentHoldsStore.getTotalCount()>0) {var params={studentEid:this.studentEid,includeReleased:this.displayReleased};TS.excelRequest("StudentHoldAjax.GetStudentHoldsListExcel",params);}},closeEdit:function() {},addNewHold:function() {var newStudentHold={StudentEid:this.studentEid,Description:"Not Set",HoldTypeId:"1",Effect:"Not Set"};if(this.studentEid&&this.studentEid.length>0) this._editHoldWindow=new TS.StudentHoldsDetailPopup({isNew:true,studentHold:newStudentHold,holdTypesStore:this._holdTypesStore,studentHoldPanel:this});},modifyHold:function(rowIndex) {this._editHoldWindow=new TS.StudentHoldsDetailPopup({isNew:false,isReleased:false,studentHold:this._studentHoldsStore.data.items[rowIndex].data,holdTypesStore:this._holdTypesStore,studentHoldPanel:this});},configure:function(xy) {this.getGrid().view.colMenu.showAt(xy);},releaseHold:function(studentHoldId,form) {var parms={studentHoldId:studentHoldId};var result=TS.ajaxRequest("StudentHoldAjax.ReleaseHold",parms,function(data) {if(data.IsValid) {this.reloadData();if(form!=null)form.closeForm();} else {for(key in data.Messages) {if(!isNaN(key))Ext.MessageBox.alert("Error",data.Messages[key].Message);}}},null,this);},loadStudentHolds:function(callback) {var parms={studentEid:this.studentEid};var result=TS.ajaxRequest("StudentHoldAjax.GetStudentHoldsList",parms,function(data) {this._studentHolds=data;this._studentHoldsStore.removeAll();this._studentHoldsStore.loadData(data);this._studentHoldsStore.filterBy(function(rec) {if(!this.displayReleased) {return!rec.data.IsReleased;} return true;});if(callback)callback.call(this);},null,this);},displayLoading:function(mask) {},loadHoldTypes:function(callback) {var parms={};var result=TS.ajaxRequest("StudentHoldAjax.GetHoldTypesList",parms,function(data) {this._holdTypesStore.removeAll();this._holdTypesStore.loadData(data);this._holdTypesStore.filterBy(function(rec) {return rec.IsActive;});this._holdTypes=data;},null,this);if(callback)callback.call(this);},reloadForm:function() {this._header.setTitle(String.format(top.I18N['Academic.StudentHolds.TitlePanel.Title'],''));},loadData:function() {top.globalPage.maskOrUnmaskPage(true);this.loadHoldTypes(function() {this.loadStudentHolds(function() {this.getGrid().store=this._studentHoldsStore;top.globalPage.maskOrUnmaskPage(false);});});},reloadData:function() {var parms={studentEid:this.studentEid};var result=TS.ajaxRequest("StudentHoldAjax.GetStudentHoldsList",parms,function(data) {this._studentHoldsStore.removeAll();this._studentHoldsStore.loadData(data,false);this._studentHoldsStore.filterBy(function(rec) {if(!this.displayReleased) {return!rec.data.IsReleased;} return true;});this.reloadForm.call(this);this.displayLoading(false);this._studentHolds=data;},null,this);},insertHold:function(hold,form) {var parms={hold:hold};var result=TS.ajaxRequest("StudentHoldAjax.AddStudentHold",parms,function(data) {if(data.IsValid) {this.reloadData();form.closeForm();} else {for(key in data.Messages) {if(!isNaN(key))Ext.MessageBox.alert("Error",data.Messages[key].Message);}}},null,this);},buildHelp:function() {if(!this.isValid)return;var subject=this;var tsTimeStamp=new Date().getTime();},updateHold:function(hold,form) {var parms={hold:hold};var result=TS.ajaxRequest("StudentHoldAjax.ModifyStudentHold",parms,function(data) {if(data.IsValid) {this.reloadData();form.closeForm();} else {for(key in data.Messages) {if(!isNaN(key))Ext.MessageBox.alert("Error",data.Messages[key].Message);}}},null,this);}},null);TS.StudentHoldsDetailPopup=Ext.extend(Ext.Window,{header:false,title:'Manage Hold',height:250,width:700,layout:'table',modal:true,closable:true,resizable:true,bodyStyle:'background-color:white',studentHoldPanel:null,_holdTypesStore:null,_comboBoxHoldType:null,_textAreaComment:null,layoutConfig:{columns:3,tableAttrs:{cellpadding:1,cellspacing:5,width:'450px',border:0}},constructor:function(config) {config=Ext.apply ({isNew:false,studentHold:null},config);TS.StudentHoldsDetailPopup.superclass.constructor.call(this,config);},initComponent:function() {TS.StudentHoldsDetailPopup.superclass.initComponent.call(this);var isnew=this.isNew;this._holdTypesStore=this.initialConfig.holdTypesStore;var holds=this._holdTypesStore.query("IsActive","true");var newHolds=new Array();holds.each(function(item) {newHolds[newHolds.length]=item.data;});var tempStore=new Ext.data.JsonStore({fields:['HoldTypeId','Name','Description','HoldEffect','IsActive','InstitutionEID','Applied','DateTimeModified','CreatedBy','ModifiedBy'],data:newHolds});var descriptionElement;var form=this;var btnSave;var comboBox=new Ext.form.ComboBox({fieldLabel:"Hold Type",editable:false,value:this.isNew?null:this.studentHold.HoldTypeId,store:tempStore,valueField:'HoldTypeId',displayField:'Name',triggerAction:'all',emptyText:top.I18N['Academic.StudentHolds.StudentHoldsDetailPopup.HoldTypeComboBoxLabel'],mode:'local',width:150,listeners:{select:function(c,rec) {effectElement.setValue(rec.data.HoldEffect);descriptionElement.setValue(rec.data.Description);btnSave.enable();}},selectOnFocus:true,forceSelection:true,disabled:!this.isNew});this._comboBoxHoldType=comboBox;var formLabel="";if(this.isNew) {formLabel=top.I18N['Academic.StudentHolds.StudentHoldsDetailPopup.NewHoldFormLabel'];this.setTitle(top.I18N['Academic.StudentHolds.StudentHoldsDetailPopup.NewHoldFormTitle']);} else if(!this.studentHold.IsReleased) {formLabel=top.I18N['Academic.StudentHolds.StudentHoldsDetailPopup.ModifyHoldFormLabel'];this.setTitle(top.I18N['Academic.StudentHolds.StudentHoldsDetailPopup.ModifyHoldFormTitle']);} else {formLabel=top.I18N['Academic.StudentHolds.StudentHoldsDetailPopup.ViewHoldFormLabel'];this.setTitle(top.I18N['Academic.StudentHolds.StudentHoldsDetailPopup.ModifyHoldFormTitle']);} this.add(new TS.Label({colspan:3,text:String.format(formLabel,this.studentHold.ReleasedBy),style:'font-weight: bold'}));this.add(new TS.Label({text:top.I18N['Academic.StudentHolds.StudentHoldsDetailPopup.HoldTypeComboBoxLabel']}));this.add(comboBox);this.add(new TS.Label({text:top.I18N['Academic.StudentHolds.StudentHoldsDetailPopup.CommentTextAreaLabel']}));this.add(new TS.Label({text:top.I18N['Academic.StudentHolds.StudentHoldsDetailPopup.DescriptionTextBoxLabel']}));descriptionElement=this.add(new TS.TextField({disabled:true,id:"description",width:150,value:this.studentHold.Description}));this._textAreaComment=this.add(new TS.TextArea({rowspan:2,blankText:top.I18N['Academic.StudentHolds.StudentHoldsDetailPopup.CommentBlankText'],disabled:(this.studentHold.IsReleased||!((permissionManager.hasPermission('ModifyStudentHoldModule')&&!this.isNew)||(permissionManager.hasPermission('AddStudentHoldModule')&&this.isNew))),id:"Comment",width:400,value:this.studentHold.Comment,listeners:{keydown:function(){btnSave.enable();}}}));this.add(new TS.Label({text:top.I18N['Academic.StudentHolds.StudentHoldsDetailPopup.HoldEffectTextBoxLabel']}));effectElement=this.add(new TS.TextField({disabled:true,id:"holdeffect",width:150,value:this.studentHold.Effect}));var buttonPanel=new Ext.Panel({layout:'table',style:'padding-left: 210px;',layoutConfig:{columns:3,tableAttrs:{cellspacing:10,border:0}},width:700,border:false,colspan:3});if(!this.isNew&&!this.studentHold.IsReleased&&permissionManager.hasPermission('ReleaseStudentHoldModule')) var btnRelease=buttonPanel.add(new TS.Button({text:top.I18N['Academic.StudentHolds.StudentHoldsDetailPopup.ReleaseHoldButton'],listeners:{click:function(){form.releaseHold();}}}));if(!this.studentHold.IsReleased&&((permissionManager.hasPermission('ModifyStudentHoldModule')&&!this.isNew)||(permissionManager.hasPermission('AddStudentHoldModule')&&this.isNew))) {var btnSave=buttonPanel.add(new TS.Button({flex:1,text:top.I18N['Academic.StudentHolds.StudentHoldsDetailPopup.SaveButton'],disabled:this.isNew,listeners:{click:function(){form.saveHold();}}}));buttonPanel.add(new TS.Button({text:top.I18N['Academic.StudentHolds.StudentHoldsDetailPopup.CancelButton'],listeners:{click:function(){form.closeForm();}}}));} else buttonPanel.add(new TS.Button({flex:1,text:top.I18N['Academic.StudentHolds.StudentHoldsDetailPopup.CloseButton'],listeners:{click:function(){form.closeForm();}}}));this.add(buttonPanel);this.setPosition(100,100);this.show(true);},closeForm:function() {this.close();},saveHold:function() {this.studentHold.HoldTypeId=this._comboBoxHoldType.getValue();this.studentHold.Comment=this._textAreaComment.getValue();if(this.isNew)this.studentHoldPanel.insertHold(this.studentHold,this);else this.studentHoldPanel.updateHold(this.studentHold,this);},releaseHold:function() {this.studentHoldPanel.releaseHold(this.studentHold.StudentHoldId);this.closeForm();}});