﻿var _json_base = eval(document.getElementById('hidden_json_base').value);
_grid_messages = null;
Ext.onReady(function(){
    Ext.BLANK_IMAGE_URL = _json_base.ExtBlankUrl;
    //
    new Ext.Viewport({
        layout:'border',
        items:[{
            region:'north',
            xtype:'panel',
            contentEl:'div_RoomHeaderHtml',
            autoHeight:true,
            margins:'0 0 0 0'
        },{
            region:'center',
            xtype:'panel',
            id:'plCenter',
            title:'留言列表',
            header:false,
            autoScroll:false,
            split:true,
            tbar:['留言列表:',{
                xtype:'combo',id:'cb_ItemsType',width:80,emptyText:'',mode:'local',valueField:'value',displayField:'text',triggerAction:'all',store:new Ext.data.SimpleStore({fields:['value','text'],data:[['','所有留言'],['NoPrivate','公共留言'],['IsPrivate','私密留言'],['IsPassed','版主已阅'],['NoPassed','版主未阅']]}),value:''
            },{
                text:'导入留言',
                handler:function(){myp2c_LoadMessages();}
            },{
                text:'添加留言',
                handler:function(){myp2c_AddMessage(this.id, '');}
            },{
                text:'全部设为已读',
                disabled:(_json_base.IsOwner=='1' ? false : true),
                handler:function(){myp2c_DoIsPassedAll();}
            },{
                text:'删除过期留言',
                disabled:(_json_base.IsOwner=='1' ? false : true),
                handler:function(){myp2c_DeleteMessages();}
            }]
        }]
    });
    myp2c_LoadMessages();
});
//
function myp2c_LoadMessages()
{//导入回复列表
    var sItemsType = Ext.getCmp('cb_ItemsType').getValue();
    var plCenter = Ext.getCmp('plCenter');
    plCenter.body.dom.innerHTML = '';
    var _ds = new Ext.data.Store({
        url:_json_base.SourcePath+ '/meeting_messages_ajax.ashx',
        baseParams:{
            action:'GetMessages',
            AppId:_json_base.AppId,
            ItemsType:sItemsType
        },reader:new Ext.data.XmlReader({totalProperty:'@count',record:'row'},Ext.data.Record.create([
                {name:'ItemId',mapping:'ItemId'},
                {name:'FromUserName',mapping:'FromUserName'},
                {name:'MessageText',mapping:'MessageText'},
                {name:'CreatedDate',mapping:'CreatedDate'},
                {name:'IsPassed',mapping:'IsPassed'},
                {name:'IsPrivate',mapping:'IsPrivate'},
                {name:'FromIp',mapping:'FromIp'},
                {name:'FromOpenId',mapping:'FromOpenId'},
                {name:'ToOpenId',mapping:'ToOpenId'},
                {name:'Links',mapping:'Links'}
            ])
        )
    });
    _grid_messages = new Ext.grid.GridPanel({
        renderTo:plCenter.body,
        title:'留言列表',
        header:false,
        ds:_ds,
        hideHeaders:false,
        margins:'0 0 0 0',
        height:plCenter.getInnerHeight(),
        autoHeight:false,
        columns:[
            {header:'时间',dataIndex:'CreatedDate',width:150,sortable:true,renderer:function(v){return '<b>'+v+'</b>';}},
            {header:'标题',dataIndex:'FromUserName',width:200},
            {header:'作者',dataIndex:'FromOpenId'},
            {header:'目标',dataIndex:'ToOpenId'},
            {header:'类型',dataIndex:'IsPrivate'},
            {header:'IP',dataIndex:'FromIp'},
            {header:'版主阅读',dataIndex:'IsPassed'},
            {header:'操作',dataIndex:'Links'}
        ],
        sm:new Ext.grid.RowSelectionModel({singleSelect:true}),
        viewConfig:{
		    forceFit:true,
		    enableRowBody:true,
            showPreview:true,
            getRowClass:function(record, rowIndex, p, store){
                if(this.showPreview){
                    p.body = '<div class=\'div_block\'>'+record.data.MessageText+'</div>';
                }
            }
	    },
        tbar:new Ext.PagingToolbar({
            pageSize:30,
            store:_ds,
            displayInfo:true,
            displayMsg:'第{0}-{1}条 (共{2}条)',
            emptyMsg:'无记录'
        })
    });
    _grid_messages.getSelectionModel().on('rowselect', function(sm, rowIndex, r) {
        //
    });
    _ds.load({
        params:{
            start:0,
            limit:30
        }
    });
}
function myp2c_AddMessage(btn, sReplyItemId)
{//添加留言
    var fp =new Ext.form.FormPanel({
        region:'center',
        header:false,
        labelWidth:60, 
        labelAlign:'left',
        frame:true,
        items:[{xtype:'hidden',name:'action',value:'AddMessage'
        },{xtype:'hidden',name:'AppId',value:_json_base.AppId
        },{xtype:'hidden',name:'ReplyItemId',value:sReplyItemId
        },{
            xtype:'textfield',name:'FromUserName',fieldLabel:'标题',width:300,value:_json_base.LoginUserId
        },{
            xtype:'htmleditor',
            name:'MessageText',
            fieldLabel:'留言内容',
            hideLabel:true,
            anchor:'100%',
            height:100,
            enableSourceEdit:false,
            fontFamilies:['宋体','黑体','楷体','隶书','幼圆','华文彩云','华文新魏','华文行楷','Arial','ArialBlack','Verdana','System','Wingdings','Webdings','Script'],
            defaultLinkValue:'http://',
            createLinkText:'请输入链接地址',
            value:''
        },{
            xtype:'checkbox',width:80,boxLabel:'私密留言',name:'IsPrivate',hideLabel:true,checked:false
        }]
    });
    var win = new Ext.Window({
        title:'提交留言',
        width:480,
        items:[fp],
        buttons:[{
            text:'保存留言',
            handler: function(){
                if(fp.getForm().isValid()){
                    fp.getForm().submit({
                        url:_json_base.SourcePath+ '/meeting_messages_ajax.ashx',
                        waitTitle:'保存数据',
                        waitMsg:'保存中...',
                        reset:false,
                        success:function(fm,o){
                            win.close();    
                            if(o.result.msg != '')
                            {
                                Ext.Msg.alert('操作结果',o.result.msg);
                            }
                            else
                            {
                                Ext.getCmp('cb_ItemsType').setValue('');
                                myp2c_LoadMessages();
                            }
                        },
                        failure:function(fm,o)
                        {
                            win.close();
                            Ext.Msg.alert('操作结果',o.result == null ? '异常！' : o.result.msg);
                        } 
                    });
                }
            }
        },{
            text:'取消',
            handler:function(){
                win.close();
            }
        }]
    });
    win.show(btn);
}
function myp2c_DeleteItem(sItemId)
{
    if(confirm('将删除此条留言！确定？'))
    {
        switchLoading(true);
        Ext.Ajax.request({
            url:_json_base.SourcePath+ "/meeting_messages_ajax.ashx",
            params:{
                action:'DeleteItem',
                AppId:_json_base.AppId,
                ItemId:sItemId
            },
            method:"POST",
            success:function(rp, rq){
                switchLoading(false);
                if(rp.responseText != ''){
                    Ext.Msg.alert('操作结果',rp.responseText);
                }
                else
                {
                    if(_grid_messages)
                    {
                        _grid_messages.store.reload();
                    }
                }
            },
            failure:function(rp, rq){switchLoading(false);Ext.Msg.alert('操作结果','出现错误！');} 
        });
    }
}
function myp2c_DeleteMessages()
{
    Ext.Msg.prompt('删除n小时前的留言','请输入小时数:',
        function(bt,text){if(bt == 'ok'){
            var HourNum = parseFloat(text);
            if(HourNum >=0)
            {
                if(confirm('将删除'+text+'小时前的留言！确定？'))
                {
                    switchLoading(true);
                    Ext.Ajax.request({
                        url:_json_base.SourcePath+ "/meeting_messages_ajax.ashx",
                        params:{
                            action:'DeleteMessages',
                            AppId:_json_base.AppId,
                            HourNum:HourNum
                        },
                        method:"POST",
                        success:function(rp, rq){
                            switchLoading(false);
                            if(rp.responseText != ''){
                                Ext.Msg.alert('操作结果',rp.responseText);
                            }
                            else
                            {
                                if(_grid_messages)
                                {
                                    _grid_messages.store.reload();
                                }
                            }
                        },
                        failure:function(rp, rq){switchLoading(false);Ext.Msg.alert('操作结果','出现错误！');} 
                    });
                }            
            }    
        }}
    );
}
function myp2c_DoIsPassed(sItemId)
{//设为已读
    switchLoading(true);
    Ext.Ajax.request({
        url:_json_base.SourcePath+ "/meeting_messages_ajax.ashx",
        params:{
            action:'DoIsPassed',
            AppId:_json_base.AppId,
            ItemId:sItemId
        },
        method:"POST",
        success:function(rp, rq){
            switchLoading(false);
            if(rp.responseText != ''){
                Ext.Msg.alert('操作结果',rp.responseText);
            }
            else
            {
                if(_grid_messages)
                {
                    _grid_messages.store.reload();
                }
            }
        },
        failure:function(rp, rq){switchLoading(false);Ext.Msg.alert('操作结果','出现错误！');} 
    });
}
function myp2c_DoIsPassedAll()
{//设全部为已读
    if(confirm('将所有留言设为已读！确定？'))
    {
        switchLoading(true);
        Ext.Ajax.request({
            url:_json_base.SourcePath+ "/meeting_messages_ajax.ashx",
            params:{
                action:'DoIsPassedAll',
                AppId:_json_base.AppId
            },
            method:"POST",
            success:function(rp, rq){
                switchLoading(false);
                if(rp.responseText != ''){
                    Ext.Msg.alert('操作结果',rp.responseText);
                }
                else
                {
                    if(_grid_messages)
                    {
                        _grid_messages.store.reload();
                    }
                }
            },
            failure:function(rp, rq){switchLoading(false);Ext.Msg.alert('操作结果','出现错误！');} 
        });
    }        
}
