/**
*	A LouGIS library by Lounaispaikka.
*	@copyright Lounaispaikka, www.lounaispaikka.fi <CC BY-SA 3.0>
*	@version 2011-12-19T13:31:42+02:00
*/
Ext.namespace("Ext.ux.LouGIS.Panel");Ext.ux.Lightbox.register("a.lb-attachment",true);
Ext.ux.LouGIS.Panel.Attachments=Ext.extend(Ext.ux.LouGIS.Panel,{constructor:function(b){this.formType="Attachments";Ext.ux.LouGIS.Panel.Attachments.superclass.constructor.call(this,b);this.setTitle(t(""));this.selectedRecord=null},loadContent:function(){this.requestFormData();this.on("contentloaded",function(b){b.createImageView()})},saveContent:function(){var b=getJsonOfStore(this.imageStore);Ext.Ajax.request({url:"/run/dataset/saveImageOrder/",method:"POST",scope:this,params:{datasetId:this.datasetId,
json:b},success:function(){},failure:function(a){a=Ext.decode(a.responseText);Ext.Msg.alert(t(""),a.msg)}});Ext.getCmp("attachmentsForm").getForm().submit({method:"POST",url:"/run/dataset/saveAttachments/?datasetId="+this.datasetId,scope:this,text:t(""),waitMsg:t(""),submitEmptyText:false,success:function(a,c){var d=Ext.decode(c.response.responseText);notify(t(""),d.msg);Ext.ux.LouGIS.Panel.Attachments.superclass.saveContent.call(this)},failure:function(a,c){switch(c.failureType){case Ext.form.Action.CLIENT_INVALID:Ext.Msg.alert(t(""),
t(""));break;case Ext.form.Action.CONNECT_FAILURE:Ext.Msg.alert(t(""),t(""));break;case Ext.form.Action.SERVER_INVALID:Ext.Msg.alert(t(""),c.result.msg)}}})},createImageView:function(){this.imageStore=new Ext.data.JsonStore({id:"imageStore",root:"ImagesOfDataset",fields:["id","original_filename","title","description","url","thumb_url"],url:"/run/dataset/jsonImagesOfDataset/?datasetId="+this.datasetId});var b=new Ext.XTemplate('<tpl for=".">','<div class="thumb-wrap" id="{id}">','<div class="thumb"><a href="{url}?height=500" rel="lightbox" class="lb-attachment" title="{title}" description="{description}"><img src="{url}?height=120&square" title="{original_filename}"></a>',
"</div>",'<span class="x-editable">{title}</span>','<input type="button" rel="{id}" name="{title}" class="removeImageButton" title="'+t("")+'"/>',"</div>","</tpl>",'<div class="x-clear"></div>');b=new Ext.DataView({autoScroll:true,store:this.imageStore,tpl:b,id:"imageView",autoHeight:false,height:350,multiSelect:false,singleSelect:true,plugins:new net.drasill.plugins.SortableDataView,overClass:"x-view-over",itemSelector:"div.thumb-wrap",emptyText:t(""),style:"border: none;",listeners:{selectionchange:function(a){a=
a.getSelectedRecords()[0];if(this.selectedRecord!=a)this.selectedRecord=a},afterrender:function(){this.processDeleteImageButtons()},scope:this}});this.imagePanel=new Ext.Panel({html:"",id:"images-view",border:false,autoWidth:true,items:[b]});this.noImagesPanel=new Ext.Panel({html:t(""),hidden:true,header:false,border:false,padding:5});this.images=Ext.getCmp("imagesOfDataset");this.images.add(this.imagePanel);this.images.add(this.noImagesPanel);this.imageStore.on("load",function(a,c){if(c.length>0){this.imagePanel.show();
this.noImagesPanel.hide()}else{this.imagePanel.hide();this.noImagesPanel.show()}this.processDeleteImageButtons();this.images.doLayout()},this);this.imageStore.load()},deleteImage:function(b,a){Ext.Msg.show({title:t(""),msg:t("",a),width:400,buttons:Ext.Msg.YESNOCANCEL,icon:Ext.MessageBox.QUESTION,scope:this,fn:function(c){c=="yes"&&Ext.Ajax.request({scope:this,url:"/run/dataset/removeAttachment/",params:{id:b},success:function(){notify(t(""),t(""));this.imageStore.load()}})}})},processDeleteImageButtons:function(){Ext.select(".removeImageButton").each(function(b){b.on("click",
function(a,c){this.deleteImage(c.getAttribute("rel"),c.getAttribute("name"))},this)},this)}});

