Всем здрасте!
Сразу хочу сказать, что с ExtJS я новичок...
Взял за основу пример
Web Desktop, точнее его из папки
examples скачанного архива
ExtJS 4.1.1a GPL.
Исходник я практически не трогал - изменил только
GridWindow.js, и просто отключил все остальные модули генерирующие значки на "
рабочем столе" и "
меню Пуск" - то есть у меня остался только модуль
GridWindow.js создающий пункт в меню и значок на столе.
GridWindow.js теперь выглядит как показано на миниатюре
в конце поста, там же и
вопрос!
Я изменил
GridWindow.js превратив в следующее:
StorePlans = new Ext.data.JsonStore({
autoLoad: true,
fields: [
{ name: 'datepubl', type: 'date' },
{ name: 'datenew', type: 'date' },
{ name: 'dateclose', type: 'date' },
{ name: 'title', type: 'string' }
],
proxy: {
type: 'ajax',
url: 'plans.php',
reader: {
type: 'json',
root: 'items'
}
}
});
StoreNews = new Ext.data.JsonStore({
autoLoad: true,
fields: [
{ name: 'datepubl', type: 'date' },
{ name: 'dateclose', type: 'date' },
{ name: 'title', type: 'string' }
],
proxy: {
type: 'ajax',
url: 'news.php',
reader: {
type: 'json',
root: 'items'
}
}
});
Ext.define('MyDesktop.GridWindow', {
extend: 'Ext.ux.desktop.Module',
requires: [
'Ext.data.ArrayStore',
'Ext.util.Format',
'Ext.grid.Panel',
'Ext.grid.RowNumberer'
],
id:'grid-win',
init : function(){
this.launcher = {
text: 'Новости и планы',
iconCls:'icon-grid'
};
},
createWindow : function(){
var desktop = this.app.getDesktop();
var win = desktop.getWindow('news-win');
if(!win){
win = desktop.createWindow({
id: 'news-win',
title:'Новости и планы',
width:740,
height:480,
iconCls: 'tabs',
animCollapse:false,
constrainHeader:true,
layout: 'fit',
items: [
{
xtype: 'tabpanel',
activeTab:1,
items: [{
title: 'Планы',
id: 'panel-list-plan',
header:false,
border:false,
autoScroll: true,
items: [{
border: false,
alias: 'gridlistplan',
xtype: 'grid',
store: StorePlans,
columns: [
//new Ext.grid.RowNumberer(),
{
text: "ID",
width: 70,
sortable: false,
renderer: Ext.util.Format.numberRenderer('0'),
dataIndex: 'id',
hidden: true
},
{
text: "Публикация",
width: 70,
sortable: true,
renderer: Ext.util.Format.dateRenderer('Y-m-d'),
dataIndex: 'datepubl'
},
{
text: "В новость",
width: 70,
sortable: true,
renderer: Ext.util.Format.dateRenderer('Y-m-d'),
dataIndex: 'datenew'
},
{
text: "Закрытие",
width: 70,
sortable: true,
renderer: Ext.util.Format.dateRenderer('Y-m-d'),
dataIndex: 'dateclose'
},
{
text: "Заголовок",
flex: 1,
sortable: true,
dataIndex: 'title'
}
]
}],
tbar:[{
text:'Добавить',
tooltip:'Добавить',
iconCls:'add',
}, '-', {
text:'Правка',
tooltip:'Редактировать',
iconCls:'option',
disabled: true,
itemId: 'planedit'
},'-',{
text:'Удалить',
tooltip:'Удалить выбранные',
iconCls:'remove',
disabled: true,
itemId: 'plandelete'
}],
bbar: new Ext.PagingToolbar({
store: StorePlans,
displayInfo: true,
displayMsg: 'Показано {0} - {1} из {2}'
})
},{
title: 'Новости',
header:false,
border:false,
autoScroll: true,
items: [{
border: false,
xtype: 'grid',
autoScroll: true,
store: StoreNews,
columns: [
//new Ext.grid.RowNumberer(),
{
text: "Публикация",
width: 70,
sortable: true,
renderer: Ext.util.Format.dateRenderer('Y-m-d'),
dataIndex: 'datepubl'
},
{
text: "Закрытие",
width: 70,
sortable: true,
renderer: Ext.util.Format.dateRenderer('Y-m-d'),
dataIndex: 'dateclose'
},
{
text: "Заголовок",
flex: 1,
sortable: true,
dataIndex: 'title'
}
]
}],
tbar:[{
text:'Добавить',
tooltip:'Добавить',
iconCls:'add'
}, '-', {
text:'Правка',
tooltip:'Редактировать',
iconCls:'option',
disabled: true,
itemId: 'newedit'
},'-',{
text:'Удалить',
tooltip:'Удалить выбранные',
iconCls:'remove',
disabled: true,
itemId: 'newedit'
}],
bbar: new Ext.PagingToolbar({
store: StoreNews,
displayInfo: true,
displayMsg: 'Показано {0} - {1} из {2}'
})
}]
}
]
});
}
return win;
},
});
Json отдается
plans.php такой:
Код:
|
{
"sucess":true,
"total":1,
"items":[{
"id":"1000",
"datepubl":"2012-07-27 00:00",
"datenew":"2012-09-27 00:00",
"dateclose":null,
"title":"The Title Plan"
}]
} |
А
news.php отдает похожий план (без поля
datenew):
Код:
|
{
"sucess":true,
"total":1,
"items":[{
"id":"1000",
"datepubl":"2012-07-27 00:00",
"dateclose":null,
"title":"The Title New"
}]
} |
Вопросы в следующем посте - в этот не вместились