Code:
Ext.onReady(function(){
if(document.getElementById("isSet").value != "-"){
var get = "?isSet=1";
if(document.getElementById('author')!="")
get = get +'&author='+document.getElementById('author').value
if(document.getElementById('title')!="")
get = get +'&title='+document.getElementById('title').value
if(document.getElementById('year')!="")
get = get +'&year='+document.getElementById('year').value
if(document.getElementById('reference')!="")
get = get +'&reference='+document.getElementById('reference').value
if(document.getElementById('keywords')!="")
get = get +'&keywords='+document.getElementById('keywords').value
// create the Data Store
var store = new Ext.data.JsonStore({
root: 'thesis',
totalProperty: 'totalCount',
idProperty: 'thesisId',
fields: [
'code', 'title', 'name', 'lastname',
{name: 'year', type: 'int'},
'college', 'type',{name: 'views', type: 'int'}
],
proxy: new Ext.data.HttpProxy({
url: 'http://192.168.151.37/thesis/consultaAvanzadaJSON.php?'+get
})
});
store.setDefaultSort('year', 'desc');
// pluggable renders
function renderLink(value, p, record){
return String.format(
'<b><a href="../../tesis.php?id={0}">Descargar</a></b>',
value);
}
function renderAuthor(value, p, record){
return String.format(
'{0} {1}',
value, record.data.lastname);
}
var grid = new Ext.grid.GridPanel({
width:1000,
height:600,
title:'Consulta de Trabajos de Tesis',
store: store,
trackMouseOver:false,
disableSelection:true,
loadMask: true,
// grid columns
columns:[{
id: 'code', // id assigned so we can apply custom css (e.g. .x-grid-col-topic b { color:#333 })
header: "Cota",
dataIndex: 'code',
width: 80,
sortable: true
},{
header: "Titulo",
dataIndex: 'title',
width: 300,
sortable: true
},{
header: "Autor",
dataIndex: 'name',
width: 200,
renderer: renderAuthor,
sortable: true
},{
id: 'year',
header: "Año",
dataIndex: 'year',
width: 50,
sortable: true
},{
header: "Escuela",
dataIndex: 'college',
width: 150,
sortable: true
},{
header: "Tipo",
dataIndex: 'type',
width: 70,
sortable: true
},{
header: "Vistas",
dataIndex: 'views',
width: 50,
sortable: true
},{
header: "Link",
dataIndex: 'code',
width: 100,
renderer: renderLink,
sortable: false
}],
// customize view config
viewConfig: {
forceFit:false,
enableRowBody:true
},
// paging bar on the bottom
bbar: new Ext.PagingToolbar({
pageSize: 50,
store: store,
displayInfo: true,
displayMsg: 'Mostrando Trabajos {0} - {1} de {2}',
emptyMsg: "No hay trabajos de tesis para mostrar",
items:[
'-']
})
});
// render it
grid.render('topic-grid');
// trigger the data store load
store.load({params:{start:0, limit:50}});
}
});