webui: upgrade to Ext JS 3.4.0

This commit is contained in:
xhaggi 2012-09-03 16:03:11 +02:00 committed by Adam Sutton
parent ee35bff867
commit 66d3e990d2
742 changed files with 78986 additions and 41586 deletions

View file

@ -1,84 +1,75 @@
tvheadend.acleditor = function() {
var fm = Ext.form;
var enabledColumn = new Ext.grid.CheckColumn({
header: "Enabled",
dataIndex: 'enabled',
width: 60
});
var fm = Ext.form;
var streamingColumn = new Ext.grid.CheckColumn({
header: "Streaming",
dataIndex: 'streaming',
width: 100
});
var enabledColumn = new Ext.grid.CheckColumn({
header : "Enabled",
dataIndex : 'enabled',
width : 60
});
var dvrColumn = new Ext.grid.CheckColumn({
header: "Video Recorder",
dataIndex: 'dvr',
width: 100
});
var streamingColumn = new Ext.grid.CheckColumn({
header : "Streaming",
dataIndex : 'streaming',
width : 100
});
var dvrallcfgColumn = new Ext.grid.CheckColumn({
header: "All Configs (VR)",
dataIndex: 'dvrallcfg',
width: 100
});
var dvrColumn = new Ext.grid.CheckColumn({
header : "Video Recorder",
dataIndex : 'dvr',
width : 100
});
var webuiColumn = new Ext.grid.CheckColumn({
header: "Web Interface",
dataIndex: 'webui',
width: 100
});
var dvrallcfgColumn = new Ext.grid.CheckColumn({
header : "All Configs (VR)",
dataIndex : 'dvrallcfg',
width : 100
});
var adminColumn = new Ext.grid.CheckColumn({
header: "Admin",
dataIndex: 'admin',
width: 100
});
var webuiColumn = new Ext.grid.CheckColumn({
header : "Web Interface",
dataIndex : 'webui',
width : 100
});
var cm = new Ext.grid.ColumnModel([
enabledColumn,
{
header: "Username",
dataIndex: 'username',
editor: new fm.TextField({allowBlank: false})
},{
header: "Password",
dataIndex: 'password',
renderer: function(value, metadata, record, row, col, store) {
return '<span class="tvh-grid-unset">Hidden</span>';
},
editor: new fm.TextField({allowBlank: false})
},{
header: "Prefix",
dataIndex: 'prefix',
editor: new fm.TextField({allowBlank: false})
},
streamingColumn,
dvrColumn,
dvrallcfgColumn,
webuiColumn,
adminColumn,
{
header: "Comment",
dataIndex: 'comment',
width: 400,
editor: new fm.TextField({})
}
]);
var UserRecord = Ext.data.Record.create([
'enabled','streaming','dvr','dvrallcfg','admin','webui','username',
'prefix','password','comment'
]);
var adminColumn = new Ext.grid.CheckColumn({
header : "Admin",
dataIndex : 'admin',
width : 100
});
return new tvheadend.tableEditor('Access control', 'accesscontrol', cm,
UserRecord,
[enabledColumn, streamingColumn,
dvrColumn, dvrallcfgColumn, webuiColumn,
adminColumn],
null,
'config_access.html', 'group');
var cm = new Ext.grid.ColumnModel([ enabledColumn, {
header : "Username",
dataIndex : 'username',
editor : new fm.TextField({
allowBlank : false
})
}, {
header : "Password",
dataIndex : 'password',
renderer : function(value, metadata, record, row, col, store) {
return '<span class="tvh-grid-unset">Hidden</span>';
},
editor : new fm.TextField({
allowBlank : false
})
}, {
header : "Prefix",
dataIndex : 'prefix',
editor : new fm.TextField({
allowBlank : false
})
}, streamingColumn, dvrColumn, dvrallcfgColumn, webuiColumn, adminColumn, {
header : "Comment",
dataIndex : 'comment',
width : 400,
editor : new fm.TextField({})
} ]);
var UserRecord = Ext.data.Record.create([ 'enabled', 'streaming', 'dvr',
'dvrallcfg', 'admin', 'webui', 'username', 'prefix', 'password',
'comment' ]);
return new tvheadend.tableEditor('Access control', 'accesscontrol', cm,
UserRecord, [ enabledColumn, streamingColumn, dvrColumn, dvrallcfgColumn,
webuiColumn, adminColumn ], null, 'config_access.html', 'group');
}

View file

@ -1,77 +1,79 @@
tvheadend.capmteditor = function() {
var fm = Ext.form;
var enabledColumn = new Ext.grid.CheckColumn({
header: "Enabled",
dataIndex: 'enabled',
width: 60
});
var fm = Ext.form;
function setMetaAttr(meta, record){
var enabled = record.get('enabled');
if(!enabled) return;
var enabledColumn = new Ext.grid.CheckColumn({
header : "Enabled",
dataIndex : 'enabled',
width : 60
});
var connected = record.get('connected');
if(connected == 1){
meta.attr = 'style="color:green;"';
} else {
meta.attr = 'style="color:red;"';
}
}
function setMetaAttr(meta, record) {
var enabled = record.get('enabled');
if (!enabled) return;
var cm = new Ext.grid.ColumnModel([
enabledColumn,
{
header: "Camd.socket Filename",
dataIndex: 'camdfilename',
width: 200,
renderer: function(value, metadata, record, row, col, store) {
setMetaAttr(metadata, record);
return value;
},
editor: new fm.TextField({allowBlank: false})
},{
header: "Listenport",
dataIndex: 'port',
renderer: function(value, metadata, record, row, col, store) {
setMetaAttr(metadata, record);
return value;
},
editor: new fm.TextField({allowBlank: false})
},{
header: "Comment",
dataIndex: 'comment',
width: 400,
renderer: function(value, metadata, record, row, col, store) {
setMetaAttr(metadata, record);
return value;
},
editor: new fm.TextField()
var connected = record.get('connected');
if (connected == 1) {
meta.attr = 'style="color:green;"';
}
else {
meta.attr = 'style="color:red;"';
}
}
]);
var rec = Ext.data.Record.create([
'enabled','connected','camdfilename','port','comment'
]);
var cm = new Ext.grid.ColumnModel([ enabledColumn, {
header : "Camd.socket Filename",
dataIndex : 'camdfilename',
width : 200,
renderer : function(value, metadata, record, row, col, store) {
setMetaAttr(metadata, record);
return value;
},
editor : new fm.TextField({
allowBlank : false
})
}, {
header : "Listenport",
dataIndex : 'port',
renderer : function(value, metadata, record, row, col, store) {
setMetaAttr(metadata, record);
return value;
},
editor : new fm.TextField({
allowBlank : false
})
}, {
header : "Comment",
dataIndex : 'comment',
width : 400,
renderer : function(value, metadata, record, row, col, store) {
setMetaAttr(metadata, record);
return value;
},
editor : new fm.TextField()
} ]);
store = new Ext.data.JsonStore({
root: 'entries',
fields: rec,
url: "tablemgr",
autoLoad: true,
id: 'id',
baseParams: {table: 'capmt', op: "get"}
});
var rec = Ext.data.Record.create([ 'enabled', 'connected', 'camdfilename',
'port', 'comment' ]);
tvheadend.comet.on('capmtStatus', function(server) {
var rec = store.getById(server.id);
if(rec){
rec.set('connected', server.connected);
}
});
store = new Ext.data.JsonStore({
root : 'entries',
fields : rec,
url : "tablemgr",
autoLoad : true,
id : 'id',
baseParams : {
table : 'capmt',
op : "get"
}
});
return new tvheadend.tableEditor('Capmt Connections', 'capmt', cm, rec,
[enabledColumn], store,
'config_capmt.html', 'key');
tvheadend.comet.on('capmtStatus', function(server) {
var rec = store.getById(server.id);
if (rec) {
rec.set('connected', server.connected);
}
});
return new tvheadend.tableEditor('Capmt Connections', 'capmt', cm, rec,
[ enabledColumn ], store, 'config_capmt.html', 'key');
}

View file

@ -1,371 +1,350 @@
/**
* Channel tags
*/
tvheadend.channelTags = new Ext.data.JsonStore({
autoLoad:true,
root:'entries',
fields: ['identifier', 'name'],
id: 'identifier',
url:'channeltags',
baseParams: {
op: 'listTags'
}
autoLoad : true,
root : 'entries',
fields : [ 'identifier', 'name' ],
id : 'identifier',
url : 'channeltags',
baseParams : {
op : 'listTags'
}
});
tvheadend.channelTags.setDefaultSort('name', 'ASC');
tvheadend.comet.on('channeltags', function(m) {
if(m.reload != null)
tvheadend.channelTags.reload();
if (m.reload != null) tvheadend.channelTags.reload();
});
/**
* Channels
*/
tvheadend.channels = new Ext.data.JsonStore({
autoLoad: true,
root:'entries',
fields: ['name', 'chid', 'epggrabsrc', 'tags', 'ch_icon',
'epg_pre_start', 'epg_post_end', 'number'],
id: 'chid',
sortInfo: { field: 'number', direction: "ASC" },
url: "channels",
baseParams: {
op: 'list'
}
autoLoad : true,
root : 'entries',
fields : [ 'name', 'chid', 'epggrabsrc', 'tags', 'ch_icon', 'epg_pre_start',
'epg_post_end', 'number' ],
id : 'chid',
sortInfo : {
field : 'number',
direction : "ASC"
},
url : "channels",
baseParams : {
op : 'list'
}
});
tvheadend.comet.on('channels', function(m) {
if(m.reload != null)
tvheadend.channels.reload();
if (m.reload != null) tvheadend.channels.reload();
});
/**
*
*/
tvheadend.mergeChannel = function(chan) {
function doMerge() {
panel.getForm().submit({
url:'mergechannel/' + chan.chid,
success: function() {
win.close();
}
});
}
var panel = new Ext.FormPanel({
frame:true,
border:true,
bodyStyle:'padding:5px',
labelAlign: 'right',
labelWidth: 110,
defaultType: 'textfield',
items: [
new Ext.form.ComboBox({
store: tvheadend.channels,
fieldLabel: 'Target channel',
name: 'targetchannel',
hiddenName: 'targetID',
editable: false,
allowBlank: false,
triggerAction: 'all',
mode: 'remote',
displayField:'name',
valueField:'chid',
emptyText: 'Select a channel...'
})
],
buttons: [{
text: 'Merge',
handler: doMerge
}]
});
win = new Ext.Window({
title: 'Merge channel ' + chan.name + ' into...',
layout: 'fit',
width: 500,
height: 120,
modal: true,
plain: true,
items: panel
});
win.show();
}
/**
*
*/
tvheadend.chconf = function()
{
var fm = Ext.form;
tvheadend.mergeChannel = function(chan) {
var actions = new Ext.ux.grid.RowActions({
header:'',
dataIndex: 'actions',
width: 45,
actions: [
{
iconCls:'merge',
qtip:'Merge this channel with another channel',
cb: function(grid, record, action, row, col) {
tvheadend.mergeChannel(record.data);
}
}
]
});
var cm = new Ext.grid.ColumnModel([
{
header: "Number",
dataIndex: 'number',
sortable: true,
width: 50,
renderer: function(value, metadata, record, row, col, store) {
if (!value) {
return '<span class="tvh-grid-unset">Not set</span>';
} else {
return value;
}
},
editor: new fm.NumberField({
minValue: 0,
maxValue: 9999
})
},
{
header: "Name",
dataIndex: 'name',
width: 150,
editor: new fm.TextField({
allowBlank: false
})
},
{
header: "Play",
dataIndex: 'chid',
width: 50,
renderer: function(value, metadata, record, row, col, store) {
url = 'playlist/channelid/' + value
return "<a href=\"javascript:tvheadend.VLC('"+url+"')\">Play</a>"
}
},
{
header: "EPG Grab source",
dataIndex: 'epggrabsrc',
width: 150,
editor: new Ext.ux.form.LovCombo({
loadingText: 'Loading...',
store: tvheadend.epggrabChannels,
allowBlank: true,
typeAhead: true,
minChars: 2,
lazyRender: true,
triggerAction: 'all',
mode: 'remote',
displayField:'mod-name',
valueField:'mod-id'
})
},
{
header: "Tags",
dataIndex: 'tags',
width: 300,
renderer: function(value, metadata, record, row, col, store) {
if (typeof value === 'undefined' || value.length < 1) {
return '<span class="tvh-grid-unset">No tags</span>';
}
ret = [];
tags = value.split(',');
for (var i = 0; i < tags.length; i++) {
var tag = tvheadend.channelTags.getById(tags[i]);
if (typeof tag !== 'undefined') {
ret.push(tag.data.name);
}
}
return ret.join(', ');
},
editor: new Ext.ux.form.LovCombo({
store: tvheadend.channelTags,
mode:'local',
valueField: 'identifier',
displayField: 'name'
})
},
{
header: "Icon (full URL)",
dataIndex: 'ch_icon',
width: 200,
editor: new fm.TextField()
},
{
header: "DVR Pre-Start",
dataIndex: 'epg_pre_start',
width: 100,
renderer: function(value, metadata, record, row, col, store) {
if (!value) {
return '<span class="tvh-grid-unset">Not set</span>';
} else {
return value + ' min';
}
},
editor: new fm.NumberField({
minValue: 0,
maxValue: 1440
})
},
{
header: "DVR Post-End",
dataIndex: 'epg_post_end',
width: 100,
renderer: function(value, metadata, record, row, col, store) {
if (!value) {
return '<span class="tvh-grid-unset">Not set</span>';
} else {
return value + ' min';
}
},
editor: new fm.NumberField({
minValue: 0,
maxValue: 1440
})
}, actions
]);
function delSelected() {
var selectedKeys = grid.selModel.selections.keys;
if(selectedKeys.length > 0) {
Ext.MessageBox.confirm('Message',
'Do you really want to delete selection?',
deleteRecord);
} else {
Ext.MessageBox.alert('Message',
'Please select at least one item to delete');
}
}
function deleteRecord(btn) {
if(btn=='yes') {
var selectedKeys = grid.selModel.selections.keys;
Ext.Ajax.request({
url: "channels",
params: {
op:"delete",
entries:Ext.encode(selectedKeys)
},
failure:function(response,options) {
Ext.MessageBox.alert('Server Error','Unable to delete');
}
})
}
}
function saveChanges() {
var mr = tvheadend.channels.getModifiedRecords();
var out = new Array();
for (var x = 0; x < mr.length; x++) {
v = mr[x].getChanges();
out[x] = v;
out[x].id = mr[x].id;
function doMerge() {
panel.getForm().submit({
url : 'mergechannel/' + chan.chid,
success : function() {
win.close();
}
});
}
Ext.Ajax.request({
url: "channels",
params: {
op:"update",
entries:Ext.encode(out)
},
success:function(response,options) {
tvheadend.channels.commitChanges();
},
failure:function(response,options) {
Ext.MessageBox.alert('Message', response.statusText);
}
var panel = new Ext.FormPanel({
frame : true,
border : true,
bodyStyle : 'padding:5px',
labelAlign : 'right',
labelWidth : 110,
defaultType : 'textfield',
items : [ new Ext.form.ComboBox({
store : tvheadend.channels,
fieldLabel : 'Target channel',
name : 'targetchannel',
hiddenName : 'targetID',
editable : false,
allowBlank : false,
triggerAction : 'all',
mode : 'remote',
displayField : 'name',
valueField : 'chid',
emptyText : 'Select a channel...'
}) ],
buttons : [ {
text : 'Merge',
handler : doMerge
} ]
});
}
var selModel = new Ext.grid.RowSelectionModel({
singleSelect:false
});
win = new Ext.Window({
title : 'Merge channel ' + chan.name + ' into...',
layout : 'fit',
width : 500,
height : 120,
modal : true,
plain : true,
items : panel
});
win.show();
var delBtn = new Ext.Toolbar.Button({
tooltip: 'Delete one or more selected channels',
iconCls:'remove',
text: 'Delete selected',
handler: delSelected,
disabled: true
});
selModel.on('selectionchange', function(s) {
delBtn.setDisabled(s.getCount() == 0);
});
var saveBtn = new Ext.Toolbar.Button({
tooltip: 'Save any changes made (Changed cells have red borders).',
iconCls:'save',
text: "Save changes",
handler: saveChanges,
disabled: true
});
var rejectBtn = new Ext.Toolbar.Button({
tooltip: 'Revert any changes made (Changed cells have red borders).',
iconCls:'undo',
text: "Revert changes",
handler: function() {
tvheadend.channels.rejectChanges();
},
disabled: true
});
var grid = new Ext.grid.EditorGridPanel({
stripeRows: true,
title: 'Channels',
iconCls: 'television',
store: tvheadend.channels,
plugins: [actions],
clicksToEdit: 2,
cm: cm,
viewConfig: {
forceFit:true
},
selModel: selModel,
tbar: [
delBtn, '-', saveBtn, rejectBtn, '->', {
text: 'Help',
handler: function() {
new tvheadend.help('Channels', 'config_channels.html');
}
}
]
});
tvheadend.channels.on('update', function(s, r, o) {
d = s.getModifiedRecords().length == 0
saveBtn.setDisabled(d);
rejectBtn.setDisabled(d);
});
tvheadend.channelTags.on('load', function(s, r, o) {
if(grid.rendered)
grid.getView().refresh();
});
return grid;
}
/**
*
*/
tvheadend.chconf = function() {
var fm = Ext.form;
var actions = new Ext.ux.grid.RowActions({
header : '',
dataIndex : 'actions',
width : 45,
actions : [ {
iconCls : 'merge',
qtip : 'Merge this channel with another channel',
cb : function(grid, record, action, row, col) {
tvheadend.mergeChannel(record.data);
}
} ]
});
var cm = new Ext.grid.ColumnModel([ {
header : "Number",
dataIndex : 'number',
sortable : true,
width : 50,
renderer : function(value, metadata, record, row, col, store) {
if (!value) {
return '<span class="tvh-grid-unset">Not set</span>';
}
else {
return value;
}
},
editor : new fm.NumberField({
minValue : 0,
maxValue : 9999
})
}, {
header : "Name",
dataIndex : 'name',
width : 150,
editor : new fm.TextField({
allowBlank : false
})
}, {
header : "Play",
dataIndex : 'chid',
width : 50,
renderer : function(value, metadata, record, row, col, store) {
url = 'playlist/channelid/' + value
return "<a href=\"javascript:tvheadend.VLC('" + url + "')\">Play</a>"
}
}, {
header : "EPG Grab source",
dataIndex : 'epggrabsrc',
width : 150,
editor : new Ext.ux.form.LovCombo({
loadingText : 'Loading...',
store : tvheadend.epggrabChannels,
allowBlank : true,
typeAhead : true,
minChars : 2,
lazyRender : true,
triggerAction : 'all',
mode : 'remote',
displayField : 'mod-name',
valueField : 'mod-id'
})
}, {
header : "Tags",
dataIndex : 'tags',
width : 300,
renderer : function(value, metadata, record, row, col, store) {
if (typeof value === 'undefined' || value.length < 1) {
return '<span class="tvh-grid-unset">No tags</span>';
}
ret = [];
tags = value.split(',');
for ( var i = 0; i < tags.length; i++) {
var tag = tvheadend.channelTags.getById(tags[i]);
if (typeof tag !== 'undefined') {
ret.push(tag.data.name);
}
}
return ret.join(', ');
},
editor : new Ext.ux.form.LovCombo({
store : tvheadend.channelTags,
mode : 'local',
valueField : 'identifier',
displayField : 'name'
})
}, {
header : "Icon (full URL)",
dataIndex : 'ch_icon',
width : 200,
editor : new fm.TextField()
}, {
header : "DVR Pre-Start",
dataIndex : 'epg_pre_start',
width : 100,
renderer : function(value, metadata, record, row, col, store) {
if (!value) {
return '<span class="tvh-grid-unset">Not set</span>';
}
else {
return value + ' min';
}
},
editor : new fm.NumberField({
minValue : 0,
maxValue : 1440
})
}, {
header : "DVR Post-End",
dataIndex : 'epg_post_end',
width : 100,
renderer : function(value, metadata, record, row, col, store) {
if (!value) {
return '<span class="tvh-grid-unset">Not set</span>';
}
else {
return value + ' min';
}
},
editor : new fm.NumberField({
minValue : 0,
maxValue : 1440
})
}, actions ]);
function delSelected() {
var selectedKeys = grid.selModel.selections.keys;
if (selectedKeys.length > 0) {
Ext.MessageBox.confirm('Message',
'Do you really want to delete selection?', deleteRecord);
}
else {
Ext.MessageBox.alert('Message',
'Please select at least one item to delete');
}
}
function deleteRecord(btn) {
if (btn == 'yes') {
var selectedKeys = grid.selModel.selections.keys;
Ext.Ajax.request({
url : "channels",
params : {
op : "delete",
entries : Ext.encode(selectedKeys)
},
failure : function(response, options) {
Ext.MessageBox.alert('Server Error', 'Unable to delete');
}
})
}
}
function saveChanges() {
var mr = tvheadend.channels.getModifiedRecords();
var out = new Array();
for ( var x = 0; x < mr.length; x++) {
v = mr[x].getChanges();
out[x] = v;
out[x].id = mr[x].id;
}
Ext.Ajax.request({
url : "channels",
params : {
op : "update",
entries : Ext.encode(out)
},
success : function(response, options) {
tvheadend.channels.commitChanges();
},
failure : function(response, options) {
Ext.MessageBox.alert('Message', response.statusText);
}
});
}
var selModel = new Ext.grid.RowSelectionModel({
singleSelect : false
});
var delBtn = new Ext.Toolbar.Button({
tooltip : 'Delete one or more selected channels',
iconCls : 'remove',
text : 'Delete selected',
handler : delSelected,
disabled : true
});
selModel.on('selectionchange', function(s) {
delBtn.setDisabled(s.getCount() == 0);
});
var saveBtn = new Ext.Toolbar.Button({
tooltip : 'Save any changes made (Changed cells have red borders).',
iconCls : 'save',
text : "Save changes",
handler : saveChanges,
disabled : true
});
var rejectBtn = new Ext.Toolbar.Button({
tooltip : 'Revert any changes made (Changed cells have red borders).',
iconCls : 'undo',
text : "Revert changes",
handler : function() {
tvheadend.channels.rejectChanges();
},
disabled : true
});
var grid = new Ext.grid.EditorGridPanel({
stripeRows : true,
title : 'Channels',
iconCls : 'television',
store : tvheadend.channels,
plugins : [ actions ],
clicksToEdit : 2,
cm : cm,
viewConfig : {
forceFit : true
},
selModel : selModel,
tbar : [ delBtn, '-', saveBtn, rejectBtn, '->', {
text : 'Help',
handler : function() {
new tvheadend.help('Channels', 'config_channels.html');
}
} ]
});
tvheadend.channels.on('update', function(s, r, o) {
d = s.getModifiedRecords().length == 0
saveBtn.setDisabled(d);
rejectBtn.setDisabled(d);
});
tvheadend.channelTags.on('load', function(s, r, o) {
if (grid.rendered) grid.getView().refresh();
});
return grid;
}

View file

@ -2,19 +2,19 @@
* Comet interfaces
*/
Ext.extend(tvheadend.Comet = function() {
this.addEvents({
accessUpdate: true,
tvAdapter: true,
dvbMux: true,
dvbStore: true,
dvbSatConf: true,
logmessage: true,
channeltags: true,
autorec: true,
dvrdb: true,
dvrconfig: true,
channels: true
});
this.addEvents({
accessUpdate : true,
tvAdapter : true,
dvbMux : true,
dvbStore : true,
dvbSatConf : true,
logmessage : true,
channeltags : true,
autorec : true,
dvrdb : true,
dvrconfig : true,
channels : true
});
}, Ext.util.Observable);
tvheadend.comet = new tvheadend.Comet();
@ -22,49 +22,49 @@ tvheadend.boxid = null;
tvheadend.cometPoller = function() {
var failures = 0;
var failures = 0;
var cometRequest = new Ext.util.DelayedTask(function() {
var cometRequest = new Ext.util.DelayedTask(function() {
Ext.Ajax.request({
url: 'comet/poll',
params : {
boxid: (tvheadend.boxid ? tvheadend.boxid : null),
immediate: failures > 0 ? 1 : 0
},
success: function(result, request) {
parse_comet_response(result.responseText);
Ext.Ajax
.request({
url : 'comet/poll',
params : {
boxid : (tvheadend.boxid ? tvheadend.boxid : null),
immediate : failures > 0 ? 1 : 0
},
success : function(result, request) {
parse_comet_response(result.responseText);
if(failures > 1) {
tvheadend.log('Reconnected to Tvheadend',
'font-weight: bold; color: #080');
}
failures = 0;
},
failure: function(result, request) {
cometRequest.delay(failures ? 1000 : 1);
if(failures == 1) {
tvheadend.log('There seems to be a problem with the ' +
'live update feed from Tvheadend. ' +
'Trying to reconnect...',
'font-weight: bold; color: #f00');
}
failures++;
}
if (failures > 1) {
tvheadend.log('Reconnected to Tvheadend',
'font-weight: bold; color: #080');
}
failures = 0;
},
failure : function(result, request) {
cometRequest.delay(failures ? 1000 : 1);
if (failures == 1) {
tvheadend.log('There seems to be a problem with the '
+ 'live update feed from Tvheadend. '
+ 'Trying to reconnect...',
'font-weight: bold; color: #f00');
}
failures++;
}
});
});
});
function parse_comet_response(responsetxt) {
response = Ext.util.JSON.decode(responsetxt);
tvheadend.boxid = response.boxid
for(x = 0; x < response.messages.length; x++) {
m = response.messages[x];
tvheadend.comet.fireEvent(m.notificationClass, m);
function parse_comet_response(responsetxt) {
response = Ext.util.JSON.decode(responsetxt);
tvheadend.boxid = response.boxid
for (x = 0; x < response.messages.length; x++) {
m = response.messages[x];
tvheadend.comet.fireEvent(m.notificationClass, m);
}
cometRequest.delay(100);
}
;
cometRequest.delay(100);
};
cometRequest.delay(100);
}

View file

@ -1,98 +1,89 @@
tvheadend.miscconf = function() {
/*
* Basic Config
*/
var confreader = new Ext.data.JsonReader({
root : 'config'
}, [ 'muxconfpath', 'language' ]);
/*
* Basic Config
*/
/* ****************************************************************
* Form Fields
* ***************************************************************/
var confreader = new Ext.data.JsonReader(
{ root: 'config' },
[
'muxconfpath', 'language'
]
);
var dvbscanPath = new Ext.form.TextField({
fieldLabel : 'DVB scan files path',
name : 'muxconfpath',
allowBlank : true
});
/* ****************************************************************
* Form Fields
* ***************************************************************/
var language = new Ext.form.TextField({
fieldLabel : 'Default Language(s)',
name : 'language',
allowBlank : true
});
var dvbscanPath = new Ext.form.TextField({
fieldLabel : 'DVB scan files path',
name : 'muxconfpath',
allowBlank : true
});
/* ****************************************************************
* Form
* ***************************************************************/
var language = new Ext.form.TextField({
fieldLabel : 'Default Language(s)',
name : 'language',
allowBlank : true
});
var saveButton = new Ext.Button({
text : "Save configuration",
tooltip : 'Save changes made to configuration below',
iconCls : 'save',
handler : saveChanges
});
/* ****************************************************************
* Form
* ***************************************************************/
var helpButton = new Ext.Button({
text : 'Help',
handler : function() {
new tvheadend.help('General Configuration', 'config_misc.html');
}
});
var saveButton = new Ext.Button({
text : "Save configuration",
tooltip : 'Save changes made to configuration below',
iconCls :'save',
handler : saveChanges
});
var confpanel = new Ext.FormPanel({
title : 'General',
iconCls : 'wrench',
border : false,
bodyStyle : 'padding:15px',
labelAlign : 'left',
labelWidth : 150,
waitMsgTarget : true,
reader : confreader,
layout : 'form',
defaultType : 'textfield',
autoHeight : true,
items : [ language, dvbscanPath ],
tbar : [ saveButton, '->', helpButton ]
});
var helpButton = new Ext.Button({
text : 'Help',
handler : function() {
new tvheadend.help('General Configuration',
'config_misc.html');
}
});
/* ****************************************************************
* Load/Save
* ***************************************************************/
var confpanel = new Ext.FormPanel({
title : 'General',
iconCls : 'wrench',
border : false,
bodyStyle : 'padding:15px',
labelAlign : 'left',
labelWidth : 150,
waitMsgTarget : true,
reader : confreader,
layout : 'form',
defaultType : 'textfield',
autoHeight : true,
items : [
language,
dvbscanPath
],
tbar: [
saveButton,
'->',
helpButton
]
});
confpanel.on('render', function() {
confpanel.getForm().load({
url : 'config',
params : {
op : 'loadSettings'
},
success : function(form, action) {
confpanel.enable();
}
});
});
/* ****************************************************************
* Load/Save
* ***************************************************************/
function saveChanges() {
confpanel.getForm().submit({
url : 'config',
params : {
op : 'saveSettings'
},
waitMsg : 'Saving Data...',
failure : function(form, action) {
Ext.Msg.alert('Save failed', action.result.errormsg);
}
});
}
confpanel.on('render', function() {
confpanel.getForm().load({
url : 'config',
params : { op : 'loadSettings' },
success : function ( form, action ) {
confpanel.enable();
}
});
});
function saveChanges() {
confpanel.getForm().submit({
url : 'config',
params : { op : 'saveSettings' },
waitMsg : 'Saving Data...',
failure : function (form, action) {
Ext.Msg.alert('Save failed', action.result.errormsg);
}
});
}
return confpanel;
return confpanel;
}

View file

@ -1,60 +1,49 @@
tvheadend.cteditor = function() {
var fm = Ext.form;
var enabledColumn = new Ext.grid.CheckColumn({
header: "Enabled",
dataIndex: 'enabled',
width: 60
});
var fm = Ext.form;
var internalColumn = new Ext.grid.CheckColumn({
header: "Internal",
dataIndex: 'internal',
width: 100
});
var enabledColumn = new Ext.grid.CheckColumn({
header : "Enabled",
dataIndex : 'enabled',
width : 60
});
var titledIconColumn = new Ext.grid.CheckColumn({
header: "Icon has title",
dataIndex: 'titledIcon',
width: 100,
tooltip: 'Set this if the supplied icon has a title embedded. ' +
'This will tell displaying application not to superimpose title '+
'on top of logo.'
});
var internalColumn = new Ext.grid.CheckColumn({
header : "Internal",
dataIndex : 'internal',
width : 100
});
var titledIconColumn = new Ext.grid.CheckColumn({
header : "Icon has title",
dataIndex : 'titledIcon',
width : 100,
tooltip : 'Set this if the supplied icon has a title embedded. '
+ 'This will tell displaying application not to superimpose title '
+ 'on top of logo.'
});
var cm = new Ext.grid.ColumnModel([
enabledColumn,
{
header: "Name",
dataIndex: 'name',
editor: new fm.TextField({allowBlank: false})
},
internalColumn,
{
header: "Icon (full URL)",
dataIndex: 'icon',
width: 400,
editor: new fm.TextField({})
},
titledIconColumn,
{
header: "Comment",
dataIndex: 'comment',
width: 400,
editor: new fm.TextField({})
}
]);
var ChannelTagRecord = Ext.data.Record.create([
'enabled','name','internal','icon','comment','titledIcon'
]);
return new tvheadend.tableEditor('Channel Tags', 'channeltags', cm,
ChannelTagRecord,
[enabledColumn, internalColumn,
titledIconColumn],
null,
'config_tags.html', 'tags');
var cm = new Ext.grid.ColumnModel([ enabledColumn, {
header : "Name",
dataIndex : 'name',
editor : new fm.TextField({
allowBlank : false
})
}, internalColumn, {
header : "Icon (full URL)",
dataIndex : 'icon',
width : 400,
editor : new fm.TextField({})
}, titledIconColumn, {
header : "Comment",
dataIndex : 'comment',
width : 400,
editor : new fm.TextField({})
} ]);
var ChannelTagRecord = Ext.data.Record.create([ 'enabled', 'name',
'internal', 'icon', 'comment', 'titledIcon' ]);
return new tvheadend.tableEditor('Channel Tags', 'channeltags', cm,
ChannelTagRecord, [ enabledColumn, internalColumn, titledIconColumn ],
null, 'config_tags.html', 'tags');
}

View file

@ -1,121 +1,125 @@
tvheadend.cwceditor = function() {
var fm = Ext.form;
var enabledColumn = new Ext.grid.CheckColumn({
header: "Enabled",
dataIndex: 'enabled',
width: 60
});
var fm = Ext.form;
var emmColumn = new Ext.grid.CheckColumn({
header: "Update Card",
dataIndex: 'emm',
width: 100
});
var enabledColumn = new Ext.grid.CheckColumn({
header : "Enabled",
dataIndex : 'enabled',
width : 60
});
var emmexColumn = new Ext.grid.CheckColumn({
header: "Update One",
dataIndex: 'emmex',
width: 100
});
var emmColumn = new Ext.grid.CheckColumn({
header : "Update Card",
dataIndex : 'emm',
width : 100
});
function setMetaAttr(meta, record){
var enabled = record.get('enabled');
if(!enabled) return;
var emmexColumn = new Ext.grid.CheckColumn({
header : "Update One",
dataIndex : 'emmex',
width : 100
});
var connected = record.get('connected');
if(connected == 1){
meta.attr = 'style="color:green;"';
} else {
meta.attr = 'style="color:red;"';
}
}
function setMetaAttr(meta, record) {
var enabled = record.get('enabled');
if (!enabled) return;
var cm = new Ext.grid.ColumnModel([
enabledColumn,
{
header: "Hostname",
dataIndex: 'hostname',
width: 200,
renderer: function(value, metadata, record, row, col, store) {
setMetaAttr(metadata, record);
return value;
},
editor: new fm.TextField({allowBlank: false})
},{
header: "Port",
dataIndex: 'port',
renderer: function(value, metadata, record, row, col, store) {
setMetaAttr(metadata, record);
return value;
},
editor: new fm.TextField({allowBlank: false})
},{
header: "Username",
dataIndex: 'username',
renderer: function(value, metadata, record, row, col, store) {
setMetaAttr(metadata, record);
return value;
},
editor: new fm.TextField({allowBlank: false})
},{
header: "Password",
dataIndex: 'password',
renderer: function(value, metadata, record, row, col, store) {
setMetaAttr(metadata, record);
return '<span class="tvh-grid-unset">Hidden</span>';
},
editor: new fm.TextField({allowBlank: false})
},{
header: "DES Key",
dataIndex: 'deskey',
width: 300,
renderer: function(value, metadata, record, row, col, store) {
setMetaAttr(metadata, record);
return '<span class="tvh-grid-unset">Hidden</span>';
},
editor: new fm.TextField({allowBlank: false})
},
emmColumn,
emmexColumn,
{
header: "Comment",
dataIndex: 'comment',
width: 400,
renderer: function(value, metadata, record, row, col, store) {
setMetaAttr(metadata, record);
return value;
},
editor: new fm.TextField()
var connected = record.get('connected');
if (connected == 1) {
meta.attr = 'style="color:green;"';
}
else {
meta.attr = 'style="color:red;"';
}
}
]);
var rec = Ext.data.Record.create([
'enabled', 'connected', 'hostname', 'port', 'username',
'password', 'deskey', 'emm', 'emmex', 'comment'
]);
var cm = new Ext.grid.ColumnModel([ enabledColumn, {
header : "Hostname",
dataIndex : 'hostname',
width : 200,
renderer : function(value, metadata, record, row, col, store) {
setMetaAttr(metadata, record);
return value;
},
editor : new fm.TextField({
allowBlank : false
})
}, {
header : "Port",
dataIndex : 'port',
renderer : function(value, metadata, record, row, col, store) {
setMetaAttr(metadata, record);
return value;
},
editor : new fm.TextField({
allowBlank : false
})
}, {
header : "Username",
dataIndex : 'username',
renderer : function(value, metadata, record, row, col, store) {
setMetaAttr(metadata, record);
return value;
},
editor : new fm.TextField({
allowBlank : false
})
}, {
header : "Password",
dataIndex : 'password',
renderer : function(value, metadata, record, row, col, store) {
setMetaAttr(metadata, record);
return '<span class="tvh-grid-unset">Hidden</span>';
},
editor : new fm.TextField({
allowBlank : false
})
}, {
header : "DES Key",
dataIndex : 'deskey',
width : 300,
renderer : function(value, metadata, record, row, col, store) {
setMetaAttr(metadata, record);
return '<span class="tvh-grid-unset">Hidden</span>';
},
editor : new fm.TextField({
allowBlank : false
})
}, emmColumn, emmexColumn, {
header : "Comment",
dataIndex : 'comment',
width : 400,
renderer : function(value, metadata, record, row, col, store) {
setMetaAttr(metadata, record);
return value;
},
editor : new fm.TextField()
} ]);
var store = new Ext.data.JsonStore({
root: 'entries',
fields: rec,
url: "tablemgr",
autoLoad: true,
id: 'id',
baseParams: {table: 'cwc', op: "get"}
});
var rec = Ext.data.Record.create([ 'enabled', 'connected', 'hostname',
'port', 'username', 'password', 'deskey', 'emm', 'emmex', 'comment' ]);
var grid = new tvheadend.tableEditor('Code Word Client', 'cwc', cm, rec,
[enabledColumn, emmColumn, emmexColumn], store,
'config_cwc.html', 'key');
tvheadend.comet.on('cwcStatus', function(msg) {
var rec = store.getById(msg.id);
if(rec) {
rec.set('connected', msg.connected);
grid.getView().refresh();
}
});
var store = new Ext.data.JsonStore({
root : 'entries',
fields : rec,
url : "tablemgr",
autoLoad : true,
id : 'id',
baseParams : {
table : 'cwc',
op : "get"
}
});
return grid;
var grid = new tvheadend.tableEditor('Code Word Client', 'cwc', cm, rec, [
enabledColumn, emmColumn, emmexColumn ], store, 'config_cwc.html', 'key');
tvheadend.comet.on('cwcStatus', function(msg) {
var rec = store.getById(msg.id);
if (rec) {
rec.set('connected', msg.connected);
grid.getView().refresh();
}
});
return grid;
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,426 +1,405 @@
tvheadend.epggrabChannels = new Ext.data.JsonStore({
root : 'entries',
url : 'epggrab',
baseParams : { op : 'channelList' },
fields : [ 'id', 'mod', 'name', 'icon', 'number', 'channel',
'mod-id', 'mod-name' ]
root : 'entries',
url : 'epggrab',
baseParams : {
op : 'channelList'
},
fields : [ 'id', 'mod', 'name', 'icon', 'number', 'channel', 'mod-id',
'mod-name' ]
});
tvheadend.epggrab = function() {
/* ****************************************************************
* Data
* ***************************************************************/
/* ****************************************************************
* Data
* ***************************************************************/
/*
* Module lists (I'm sure there is a better way!)
*/
var EPGGRAB_MODULE_INTERNAL = 0;
var EPGGRAB_MODULE_EXTERNAL = 1;
var EPGGRAB_MODULE_OTA = 2;
/*
* Module lists (I'm sure there is a better way!)
*/
var EPGGRAB_MODULE_INTERNAL = 0;
var EPGGRAB_MODULE_EXTERNAL = 1;
var EPGGRAB_MODULE_OTA = 2;
var moduleStore = new Ext.data.JsonStore({
root : 'entries',
url : 'epggrab',
baseParams : { op : 'moduleList' },
autoLoad : true,
fields : [ 'id', 'name', 'path', 'type', 'enabled' ]
});
var internalModuleStore = new Ext.data.Store({
recordType: moduleStore.recordType
});
var externalModuleStore = new Ext.data.Store({
recordType: moduleStore.recordType
});
var otaModuleStore = new Ext.data.Store({
recordType: moduleStore.recordType
});
moduleStore.on('load', function() {
moduleStore.filterBy(function(r) {
return r.get('type') == EPGGRAB_MODULE_INTERNAL;
});
r = new internalModuleStore.recordType({ id: '', name : 'Disabled'});
internalModuleStore.add(r);
moduleStore.each(function(r) {
internalModuleStore.add(r.copy());
});
moduleStore.filterBy(function(r) {
return r.get('type') == EPGGRAB_MODULE_EXTERNAL;
});
moduleStore.each(function(r) {
externalModuleStore.add(r.copy());
});
moduleStore.filterBy(function(r) {
return r.get('type') == EPGGRAB_MODULE_OTA;
});
moduleStore.each(function(r) {
otaModuleStore.add(r.copy());
});
moduleStore.filterBy(function(r) {
return r.get('type') != EPGGRAB_MODULE_INTERNAL;
});
});
var moduleStore = new Ext.data.JsonStore({
root : 'entries',
url : 'epggrab',
baseParams : {
op : 'moduleList'
},
autoLoad : true,
fields : [ 'id', 'name', 'path', 'type', 'enabled' ]
});
var internalModuleStore = new Ext.data.Store({
recordType : moduleStore.recordType
});
var externalModuleStore = new Ext.data.Store({
recordType : moduleStore.recordType
});
var otaModuleStore = new Ext.data.Store({
recordType : moduleStore.recordType
});
moduleStore.on('load', function() {
moduleStore.filterBy(function(r) {
return r.get('type') == EPGGRAB_MODULE_INTERNAL;
});
r = new internalModuleStore.recordType({
id : '',
name : 'Disabled'
});
internalModuleStore.add(r);
moduleStore.each(function(r) {
internalModuleStore.add(r.copy());
});
moduleStore.filterBy(function(r) {
return r.get('type') == EPGGRAB_MODULE_EXTERNAL;
});
moduleStore.each(function(r) {
externalModuleStore.add(r.copy());
});
moduleStore.filterBy(function(r) {
return r.get('type') == EPGGRAB_MODULE_OTA;
});
moduleStore.each(function(r) {
otaModuleStore.add(r.copy());
});
moduleStore.filterBy(function(r) {
return r.get('type') != EPGGRAB_MODULE_INTERNAL;
});
});
/* Enable module in one of the stores (will auto update primary) */
function moduleSelect ( r, e )
{
r.set('enabled', e);
t = moduleStore.getById(r.id);
if (t) t.set('enabled', e);
}
/* Enable module in one of the stores (will auto update primary) */
function moduleSelect(r, e) {
r.set('enabled', e);
t = moduleStore.getById(r.id);
if (t) t.set('enabled', e);
}
/*
* Basic Config
*/
/*
* Basic Config
*/
var confreader = new Ext.data.JsonReader(
{ root: 'epggrabSettings' },
[
'module', 'interval',
'channel_rename', 'channel_renumber', 'channel_reicon'
]
);
var confreader = new Ext.data.JsonReader({
root : 'epggrabSettings'
}, [ 'module', 'interval', 'channel_rename', 'channel_renumber',
'channel_reicon' ]);
/* ****************************************************************
* Basic Fields
* ***************************************************************/
/* ****************************************************************
* Basic Fields
* ***************************************************************/
/*
* Module selector
*/
var internalModule = new Ext.form.ComboBox({
fieldLabel : 'Module',
hiddenName : 'module',
width : 300,
valueField : 'id',
displayField : 'name',
forceSelection : true,
editable : false,
mode : 'local',
triggerAction : 'all',
store : internalModuleStore
});
/*
* Module selector
*/
var internalModule = new Ext.form.ComboBox({
fieldLabel : 'Module',
hiddenName : 'module',
width : 300,
valueField : 'id',
displayField : 'name',
forceSelection : true,
editable : false,
mode : 'local',
triggerAction : 'all',
store : internalModuleStore
});
/*
* Interval selector
*/
var intervalUnits = [
[ 86400, 'Days' ],
[ 3600, 'Hours' ],
[ 60, 'Minutes' ],
[ 1, 'Seconds' ]
];
var intervalValue = new Ext.form.NumberField({
width : 300,
allowNegative : false,
allowDecimals : false,
minValue : 1,
maxValue : 7,
value : 1,
fieldLabel : 'Grab interval',
name : 'intervalValue',
listeners : {
'valid' : function (e) {
v = e.getValue() * intervalUnit.getValue();
interval.setValue(v);
}
}
})
var intervalUnit = new Ext.form.ComboBox({
name : 'intervalUnit',
width : 300,
valueField : 'key',
displayField : 'value',
value : 86400,
forceSelection : true,
editable : false,
triggerAction : 'all',
mode : 'local',
store : new Ext.data.SimpleStore({
fields : [ 'key', 'value' ],
data : intervalUnits
}),
listeners : {
'change' : function (e, n, o) {
intervalValue.maxValue = (7 * 86400) / n;
intervalValue.validate();
}
}
});
var interval = new Ext.form.Hidden({
name : 'interval',
value : 86400,
listeners : {
'enable' : function (e) {
v = e.getValue();
for ( i = 0; i < intervalUnits.length; i++ ) {
u = intervalUnits[i][0];
if ( (v % u) == 0 ) {
intervalUnit.setValue(u);
intervalValue.maxValue = (7 * 86400) / u;
intervalValue.setValue(v / u);
intervalValue.validate();
break;
}
}
}
}
});
/*
* Interval selector
*/
var intervalUnits = [ [ 86400, 'Days' ], [ 3600, 'Hours' ],
[ 60, 'Minutes' ], [ 1, 'Seconds' ] ];
var intervalValue = new Ext.form.NumberField({
width : 300,
allowNegative : false,
allowDecimals : false,
minValue : 1,
maxValue : 7,
value : 1,
fieldLabel : 'Grab interval',
name : 'intervalValue',
listeners : {
'valid' : function(e) {
v = e.getValue() * intervalUnit.getValue();
interval.setValue(v);
}
}
})
var intervalUnit = new Ext.form.ComboBox({
name : 'intervalUnit',
width : 300,
valueField : 'key',
displayField : 'value',
value : 86400,
forceSelection : true,
editable : false,
triggerAction : 'all',
mode : 'local',
store : new Ext.data.SimpleStore({
fields : [ 'key', 'value' ],
data : intervalUnits
}),
listeners : {
'change' : function(e, n, o) {
intervalValue.maxValue = (7 * 86400) / n;
intervalValue.validate();
}
}
});
var interval = new Ext.form.Hidden({
name : 'interval',
value : 86400,
listeners : {
'enable' : function(e) {
v = e.getValue();
for (i = 0; i < intervalUnits.length; i++) {
u = intervalUnits[i][0];
if ((v % u) == 0) {
intervalUnit.setValue(u);
intervalValue.maxValue = (7 * 86400) / u;
intervalValue.setValue(v / u);
intervalValue.validate();
break;
}
}
}
}
});
/*
* Channel handling
*/
var channelRename = new Ext.form.Checkbox({
name : 'channel_rename',
fieldLabel : 'Update channel name'
});
/*
* Channel handling
*/
var channelRename = new Ext.form.Checkbox({
name : 'channel_rename',
fieldLabel : 'Update channel name'
});
var channelRenumber = new Ext.form.Checkbox({
name : 'channel_renumber',
fieldLabel : 'Update channel number'
});
var channelRenumber = new Ext.form.Checkbox({
name : 'channel_renumber',
fieldLabel : 'Update channel number'
});
var channelReicon = new Ext.form.Checkbox({
name : 'channel_reicon',
fieldLabel : 'Update channel icon'
});
var channelReicon = new Ext.form.Checkbox({
name : 'channel_reicon',
fieldLabel : 'Update channel icon'
});
/*
* Simple fieldet
*/
var simplePanel = new Ext.form.FieldSet({
title : 'Basic Config',
width : 800,
autoHeight : true,
collapsible : true,
items : [
interval,
internalModule,
intervalValue,
intervalUnit,
channelRename,
channelRenumber,
channelReicon
]
});
/*
* Simple fieldet
*/
var simplePanel = new Ext.form.FieldSet({
title : 'Basic Config',
width : 800,
autoHeight : true,
collapsible : true,
items : [ interval, internalModule, intervalValue, intervalUnit,
channelRename, channelRenumber, channelReicon ]
});
/* ****************************************************************
* Advanced Fields
* ***************************************************************/
/* ****************************************************************
* Advanced Fields
* ***************************************************************/
/*
* External modules
*/
var externalSelectionModel = new Ext.grid.CheckboxSelectionModel({
singleSelect : false,
listeners : {
'rowselect' : function(s, ri, r) {
moduleSelect(r, 1);
},
'rowdeselect' : function(s, ri, r) {
moduleSelect(r, 0);
}
}
});
/*
* External modules
*/
var externalSelectionModel = new Ext.grid.CheckboxSelectionModel({
singleSelect : false,
listeners : {
'rowselect' : function (s, ri, r) {
moduleSelect(r, 1);
},
'rowdeselect' : function (s, ri, r) {
moduleSelect(r, 0);
}
}
});
var externalColumnModel = new Ext.grid.ColumnModel([ externalSelectionModel,
{
header : 'Module',
dataIndex : 'name',
width : 200,
sortable : false
}, {
header : 'Path',
dataIndex : 'path',
width : 300,
sortable : false
} ]);
var externalColumnModel = new Ext.grid.ColumnModel([
externalSelectionModel,
{
header : 'Module',
dataIndex : 'name',
width : 200,
sortable : false
},
{
header : 'Path',
dataIndex : 'path',
width : 300,
sortable : false
}
]);
var externalGrid = new Ext.grid.EditorGridPanel({
store : externalModuleStore,
cm : externalColumnModel,
sm : externalSelectionModel,
width : 600,
height : 150,
frame : false,
viewConfig : {
forceFit : true
},
iconCls : 'icon-grid'
});
var externalGrid = new Ext.grid.EditorGridPanel({
store : externalModuleStore,
cm : externalColumnModel,
sm : externalSelectionModel,
width : 600,
height : 150,
frame : false,
viewConfig : {
forceFit : true
},
iconCls : 'icon-grid'
});
var externalPanel = new Ext.form.FieldSet({
title : 'External Interfaces',
width : 800,
autoHeight : true,
collapsible : true,
collapsed : true,
items : [ externalGrid ]
});
var externalPanel = new Ext.form.FieldSet({
title : 'External Interfaces',
width : 800,
autoHeight : true,
collapsible : true,
collapsed : true,
items : [
externalGrid
]
});
/*
* OTA modules
*/
/*
* OTA modules
*/
var otaSelectionModel = new Ext.grid.CheckboxSelectionModel({
singleSelect : false,
listeners : {
'rowselect' : function(s, ri, r) {
moduleSelect(r, 1);
},
'rowdeselect' : function(s, ri, r) {
moduleSelect(r, 0);
}
}
});
var otaSelectionModel = new Ext.grid.CheckboxSelectionModel({
singleSelect : false,
listeners : {
'rowselect' : function (s, ri, r) {
moduleSelect(r, 1);
},
'rowdeselect' : function (s, ri, r) {
moduleSelect(r, 0);
}
}
});
var otaColumnModel = new Ext.grid.ColumnModel([ otaSelectionModel, {
header : 'Module',
dataIndex : 'name',
width : 200,
sortable : false
} ]);
var otaColumnModel = new Ext.grid.ColumnModel([
otaSelectionModel,
{
header : 'Module',
dataIndex : 'name',
width : 200,
sortable : false
}
]);
var otaGrid = new Ext.grid.EditorGridPanel({
store : otaModuleStore,
cm : otaColumnModel,
sm : otaSelectionModel,
width : 600,
height : 150,
frame : false,
viewConfig : {
forceFit : true
},
iconCls : 'icon-grid'
});
var otaGrid = new Ext.grid.EditorGridPanel({
store : otaModuleStore,
cm : otaColumnModel,
sm : otaSelectionModel,
width : 600,
height : 150,
frame : false,
viewConfig : {
forceFit : true
},
iconCls : 'icon-grid'
});
var otaPanel = new Ext.form.FieldSet({
title : 'OTA Interfaces',
width : 800,
autoHeight : true,
collapsible : true,
collapsed : true,
items : [ otaGrid ]
});
var otaPanel = new Ext.form.FieldSet({
title : 'OTA Interfaces',
width : 800,
autoHeight : true,
collapsible : true,
collapsed : true,
items : [
otaGrid
]
});
/* ****************************************************************
* Form
* ***************************************************************/
/* ****************************************************************
* Form
* ***************************************************************/
var saveButton = new Ext.Button({
text : "Save configuration",
tooltip : 'Save changes made to configuration below',
iconCls : 'save',
handler : saveChanges
});
var saveButton = new Ext.Button({
text : "Save configuration",
tooltip : 'Save changes made to configuration below',
iconCls :'save',
handler : saveChanges
});
var helpButton = new Ext.Button({
text : 'Help',
handler : function() {
new tvheadend.help('EPG Grab Configuration', 'config_epggrab.html');
}
});
var helpButton = new Ext.Button({
text : 'Help',
handler : function() {
new tvheadend.help('EPG Grab Configuration',
'config_epggrab.html');
}
});
var confpanel = new Ext.FormPanel({
title : 'EPG Grabber',
iconCls : 'xml',
border : false,
bodyStyle : 'padding:15px',
labelAlign : 'left',
labelWidth : 150,
waitMsgTarget : true,
reader : confreader,
layout : 'form',
defaultType : 'textfield',
autoHeight : true,
items : [ simplePanel, externalPanel, otaPanel ],
tbar : [ saveButton, '->', helpButton ]
});
var confpanel = new Ext.FormPanel({
title : 'EPG Grabber',
iconCls : 'xml',
border : false,
bodyStyle : 'padding:15px',
labelAlign : 'left',
labelWidth : 150,
waitMsgTarget : true,
reader : confreader,
layout : 'form',
defaultType : 'textfield',
autoHeight : true,
items : [
simplePanel,
externalPanel,
otaPanel
],
tbar: [
saveButton,
'->',
helpButton
]
});
/* ****************************************************************
* Load/Save
* ***************************************************************/
/* ****************************************************************
* Load/Save
* ***************************************************************/
/* HACK: get display working */
externalGrid.on('render', function() {
delay = new Ext.util.DelayedTask(function() {
rows = [];
externalModuleStore.each(function(r) {
if (r.get('enabled')) rows.push(r);
});
externalSelectionModel.selectRecords(rows);
});
delay.delay(100);
});
otaGrid.on('render', function() {
delay = new Ext.util.DelayedTask(function() {
rows = [];
otaModuleStore.each(function(r) {
if (r.get('enabled')) rows.push(r);
});
otaSelectionModel.selectRecords(rows);
});
delay.delay(100);
});
/* HACK: get display working */
externalGrid.on('render', function(){
delay = new Ext.util.DelayedTask(function(){
rows = [];
externalModuleStore.each(function(r){
if (r.get('enabled')) rows.push(r);
});
externalSelectionModel.selectRecords(rows);
});
delay.delay(100);
});
otaGrid.on('render', function(){
delay = new Ext.util.DelayedTask(function(){
rows = [];
otaModuleStore.each(function(r){
if (r.get('enabled')) rows.push(r);
});
otaSelectionModel.selectRecords(rows);
});
delay.delay(100);
});
confpanel.on('render', function() {
confpanel.on('render', function() {
/* Hack to get display working */
delay = new Ext.util.DelayedTask(function() {
simplePanel.doLayout(false);
externalPanel.doLayout(false);
otaPanel.doLayout(false);
});
delay.delay(100);
/* Hack to get display working */
delay = new Ext.util.DelayedTask(function(){
simplePanel.doLayout(false);
externalPanel.doLayout(false);
otaPanel.doLayout(false);
});
delay.delay(100);
confpanel.getForm().load({
url : 'epggrab',
params : {
op : 'loadSettings'
},
success : function(form, action) {
confpanel.enable();
}
});
});
confpanel.getForm().load({
url : 'epggrab',
params : { op : 'loadSettings' },
success : function ( form, action ) {
confpanel.enable();
}
});
});
function saveChanges() {
mods = [];
moduleStore.each(function(r) {
mods.push({
id : r.get('id'),
enabled : r.get('enabled') ? 1 : 0
});
});
mods = Ext.util.JSON.encode(mods);
confpanel.getForm().submit({
url : 'epggrab',
params : {
op : 'saveSettings',
external : mods
},
waitMsg : 'Saving Data...',
success : function(form, action) {
externalModuleStore.commitChanges();
},
failure : function(form, action) {
Ext.Msg.alert('Save failed', action.result.errormsg);
}
});
}
function saveChanges() {
mods = [];
moduleStore.each(function(r) {
mods.push({id: r.get('id'), enabled: r.get('enabled') ? 1 : 0});
});
mods = Ext.util.JSON.encode(mods);
confpanel.getForm().submit({
url : 'epggrab',
params : { op : 'saveSettings', external : mods },
waitMsg : 'Saving Data...',
success : function(form, action) {
externalModuleStore.commitChanges();
},
failure : function (form, action) {
Ext.Msg.alert('Save failed', action.result.errormsg);
}
});
}
return confpanel;
return confpanel;
}

View file

@ -4,311 +4,332 @@
* licensing@extjs.com
*
* http://extjs.com/license
*/
.x-tree-col {
float:left;
overflow:hidden;
padding:0 1px;
zoom:1;
*/
#header {
font-family: tahoma,arial;
background-color: #507AAA;
color: #F8F8F8;
height: 5.3em;
margin: 0;
padding: 6px 8px 0 6px;
background: url("../img/bg-header.png") repeat-x scroll 0 0 transparent;
height: 45px;
}
#header > h1 {
background: url("../img/logo.png") no-repeat scroll 10px 20% transparent;
color: #E0E0E0;
font-size: 22px;
padding: 2px 55px;
text-shadow: 0 -2px rgba(0, 0, 0, 0.2);
}
.x-tree-col-text, .x-tree-hd-text {
overflow:hidden;
-o-text-overflow: ellipsis;
.x-tree-col {
float: left;
overflow: hidden;
padding: 0 1px;
zoom: 1;
}
.x-tree-col-text,.x-tree-hd-text {
overflow: hidden;
-o-text-overflow: ellipsis;
text-overflow: ellipsis;
padding:3px 3px 3px 5px;
white-space: nowrap;
font:normal 11px arial, tahoma, helvetica, sans-serif;
padding: 3px 3px 3px 5px;
white-space: nowrap;
font: normal 11px arial, tahoma, helvetica, sans-serif;
}
.x-tree-headers {
background: #f9f9f9 url(../extjs/resources/images/default/grid/grid3-hrow.gif) repeat-x 0 bottom;
cursor:default;
zoom:1;
background: #f9f9f9
url(../extjs/resources/images/default/grid/grid3-hrow.gif) repeat-x 0
bottom;
cursor: default;
zoom: 1;
}
.x-tree-hd {
float:left;
overflow:hidden;
border-left:1px solid #eee;
border-right:1px solid #d0d0d0;
float: left;
overflow: hidden;
border-left: 1px solid #eee;
border-right: 1px solid #d0d0d0;
}
.ux-mselect{
overflow:auto;
background:white;
position:relative; /* for calculating scroll offsets */
zoom:1;
overflow:auto;
}
.ux-mselect-item{
font:normal 12px tahoma, arial, helvetica, sans-serif;
padding:2px;
border:1px solid #fff;
white-space: nowrap;
cursor:pointer;
}
.ux-mselect-selected{
border:1px dotted #a3bae9 !important;
background:#DFE8F6;
cursor:pointer;
.ux-mselect {
overflow: auto;
background: white;
position: relative; /* for calculating scroll offsets */
zoom: 1;
overflow: auto;
}
.x-view-drag-insert-above {
border-top:1px dotted #3366cc;
}
.x-view-drag-insert-below {
border-bottom:1px dotted #3366cc;
}
.ux-mselect-item {
font: normal 12px tahoma, arial, helvetica, sans-serif;
padding: 2px;
border: 1px solid #fff;
white-space: nowrap;
cursor: pointer;
}
.ux-mselect-selected {
border: 1px dotted #a3bae9 !important;
background: #DFE8F6;
cursor: pointer;
}
.x-view-drag-insert-above {
border-top: 1px dotted #3366cc;
}
.x-view-drag-insert-below {
border-bottom: 1px dotted #3366cc;
}
.x-grid3-progresscol .x-grid3-cell-inner {
padding: 0px 0px 0px 5px;
padding: 0px 0px 0px 5px;
}
.x-grid3-progresscol .x-progress-bar {
height: 16px;
height: 16px;
}
.x-grid3-progresscol .x-progress-inner {
height: 16px;
height: 16px;
}
.x-grid3-progresscol .x-progress-text-front-ie6 {
padding: 2.5px 5px;
padding: 2.5px 5px;
}
.x-grid3-progresscol .x-progress-text-front {
padding: 2px 5px;
padding: 2px 5px;
}
.x-progress-bar-red,.x-progress-bar-orange,.x-progress-bar-green {
border-bottom: 1px solid #7fa9e4;
float: left;
height: 16px;
border-bottom: 1px solid #7fa9e4;
float: left;
height: 16px;
}
.x-progress-bar-red {
background: #ff0000 url(../icons/progress-bg-red.gif) repeat-x scroll left
center;
border-top: 1px solid #ecb7ad;
background: #ff0000 url(../icons/progress-bg-red.gif) repeat-x scroll
left center;
border-top: 1px solid #ecb7ad;
}
.x-progress-bar-orange {
background: #9cbfee url(../icons/progress-bg-orange.gif) repeat-x scroll
left center;
border-right: 1px solid #deab7e;
border-top: 1px solid #d7b290;
background: #9cbfee url(../icons/progress-bg-orange.gif) repeat-x scroll
left center;
border-right: 1px solid #deab7e;
border-top: 1px solid #d7b290;
}
.x-progress-bar-green {
background: #00ff00 url(../icons/progress-bg-green.gif) repeat-x scroll
left center;
border-right: 1px solid #5bd976;
border-top: 1px solid #79e18f;
background: #00ff00 url(../icons/progress-bg-green.gif) repeat-x scroll
left center;
border-right: 1px solid #5bd976;
border-top: 1px solid #79e18f;
}
.tvh-grid-unset {
color: #888;
font-style:italic;
color: #888;
font-style: italic;
}
.add {
background-image:url(../icons/add.gif) !important;
background-image: url(../icons/add.gif) !important;
}
.option {
background-image:url(../icons/plugin.gif) !important;
background-image: url(../icons/plugin.gif) !important;
}
.remove {
background-image:url(../icons/delete.gif) !important;
background-image: url(../icons/delete.gif) !important;
}
.save {
background-image:url(../icons/save.gif) !important;
background-image: url(../icons/save.gif) !important;
}
.rec {
background-image:url(../icons/rec.png) !important;
background-image: url(../icons/rec.png) !important;
}
.info {
background-image:url(../icons/information.png) !important;
background-image: url(../icons/information.png) !important;
}
.undo {
background-image:url(../icons/undo.png) !important;
background-image: url(../icons/undo.png) !important;
}
.key {
background-image:url(../icons/key.png) !important;
background-image: url(../icons/key.png) !important;
}
.tags {
background-image:url(../icons/tag_blue.png) !important;
background-image: url(../icons/tag_blue.png) !important;
}
.xml {
background-image:url(../icons/tag.png) !important;
background-image: url(../icons/tag.png) !important;
}
.drive {
background-image:url(../icons/drive.png) !important;
background-image: url(../icons/drive.png) !important;
}
.group {
background-image:url(../icons/group.png) !important;
background-image: url(../icons/group.png) !important;
}
.hardware {
background-image:url(../icons/pci.png) !important;
background-image: url(../icons/pci.png) !important;
}
.television {
background-image:url(../icons/television.png) !important;
background-image: url(../icons/television.png) !important;
}
.eye {
background-image:url(../icons/eye.png) !important;
background-image: url(../icons/eye.png) !important;
}
.control_play {
background-image:url(../icons/control_play.png) !important;
background-image: url(../icons/control_play.png) !important;
}
.control_pause {
background-image:url(../icons/control_pause.png) !important;
background-image: url(../icons/control_pause.png) !important;
}
.control_stop {
background-image:url(../icons/control_stop.png) !important;
background-image: url(../icons/control_stop.png) !important;
}
.control_volume {
background-image:url(../icons/sound.png) !important;
background-image: url(../icons/sound.png) !important;
}
.control_fullscreen {
background-image:url(../icons/arrow_out.png) !important;
background-image: url(../icons/arrow_out.png) !important;
}
.newspaper {
background-image:url(../icons/newspaper.png) !important;
background-image: url(../icons/newspaper.png) !important;
}
.clock {
background-image:url(../icons/clock.png) !important;
background-image: url(../icons/clock.png) !important;
}
.wrench {
background-image:url(../icons/wrench.png) !important;
background-image: url(../icons/wrench.png) !important;
}
.wand {
background-image:url(../icons/wand.png) !important;
background-image: url(../icons/wand.png) !important;
}
.merge {
background-image:url(../icons/arrow_join.png) !important;
background-image: url(../icons/arrow_join.png) !important;
}
.iptv {
background-image:url(../icons/world.png) !important;
background-image: url(../icons/world.png) !important;
}
.clone {
background-image:url(../icons/layers.png) !important;
background-image: url(../icons/layers.png) !important;
}
.scheduled {
background-image:url(../icons/clock.png) !important;
background-image: url(../icons/clock.png) !important;
}
.recordingError {
background-image:url(../icons/exclamation.png) !important;
background-image: url(../icons/exclamation.png) !important;
}
.completed {
background-image:url(../icons/tick.png) !important;
background-image: url(../icons/tick.png) !important;
}
.completedError {
background-image:url(../icons/exclamation.png) !important;
background-image: url(../icons/exclamation.png) !important;
}
.recording {
background-image:url(../icons/rec.png) !important;
background-image: url(../icons/rec.png) !important;
}
.x-smallhdr {
float:left;
width: 100px;
float: left;
width: 100px;
}
.x-epg-title {
margin: 5px;
font:normal 15px arial, tahoma, helvetica, sans-serif;
font-weight:bold;
margin: 5px;
font: normal 15px arial, tahoma, helvetica, sans-serif;
font-weight: bold;
}
.x-epg-subtitle {
margin: 5px;
font:normal 12px arial, tahoma, helvetica, sans-serif;
font-weight:bold;
margin: 5px;
font: normal 12px arial, tahoma, helvetica, sans-serif;
font-weight: bold;
}
.x-epg-desc {
margin: 5px;
margin: 5px;
}
.x-epg-chicon {
float: right;
margin: 5px;
max-width: 132px;
max-height: 99px;
float: right;
margin: 5px;
max-width: 132px;
max-height: 99px;
}
.x-epg-meta {
margin: 5px;
margin: 5px;
}
.hts-t-info {
float:left;
width:100px;
.hts-t-info {
float: left;
width: 100px;
}
.hts-doc-text {
font:normal 11px verdana;
padding: 5px;
font: normal 11px verdana;
padding: 5px;
}
.hts-doc-text dt {
padding-top: 10px;
font-weight: bold;
padding-top: 10px;
font-weight: bold;
}
.hts-doc-text dl {
padding-left: 10px;
padding-bottom: 10px;
padding-left: 10px;
padding-bottom: 10px;
}
.hts-doc-text li {
padding-top: 5px;
padding-bottom: 5px;
padding-top: 5px;
padding-bottom: 5px;
}
.hts-doc-text img {
padding: 10px;
padding: 10px;
}
.about-title {
font:normal 24px verdana;
font-weight: bold;
font-size: 24px;
font-weight: bold;
}
/** vim: ts=4:sw=4:nu:fdc=4:nospell
*
* Ext.ux.grid.RowActions.css
@ -329,60 +350,69 @@
/* styles for rows */
.ux-row-action-cell .x-grid3-cell-inner {
padding:1px 0 0 0;
padding: 1px 0 0 0;
}
.ux-row-action-item {
float:left;
min-width:16px;
height:16px;
background-repeat:no-repeat;
float: left;
min-width: 16px;
height: 16px;
background-repeat: no-repeat;
margin: 0 5px 0 0;
cursor:pointer;
overflow:hidden;
cursor: pointer;
overflow: hidden;
}
.ext-ie .ux-row-action-item {
width:16px;
width: 16px;
}
.ext-ie .ux-row-action-text {
width:auto;
width: auto;
}
.ux-row-action-item span {
vertical-align:middle;
padding:0 0 0 20px;
line-height:18px;
vertical-align: middle;
padding: 0 0 0 20px;
line-height: 18px;
}
.ext-ie .ux-row-action-item span {
width:auto;
width: auto;
}
/* styles for groups */
.x-grid-group-hd div {
position:relative;
height:16px;
position: relative;
height: 16px;
}
.ux-grow-action-item {
min-width:16px;
height:16px;
background-repeat:no-repeat;
min-width: 16px;
height: 16px;
background-repeat: no-repeat;
background-position: 0 50% ! important;
margin: 0 0 0 4px;
padding: 0 ! important;
cursor:pointer;
float:left;
cursor: pointer;
float: left;
}
.ext-ie .ux-grow-action-item {
width:16px;
width: 16px;
}
.ux-action-right {
float:right;
float: right;
margin: 0 3px 0 2px;
padding: 0 ! important;
}
.ux-grow-action-text {
padding: 0 ! important;
margin:0 ! important;
background:transparent none ! important;
float:left;
margin: 0 ! important;
background: transparent none ! important;
float: left;
}
/** vim: ts=4:sw=4:nu:fdc=4:nospell
@ -401,19 +431,22 @@
*
* License details: http://www.gnu.org/licenses/lgpl.html
*/
.ux-lovcombo-icon {
width:16px;
height:16px;
float:left;
width: 16px;
height: 16px;
float: left;
background-position: -1px -1px ! important;
background-repeat:no-repeat ! important;
background-repeat: no-repeat ! important;
}
.ux-lovcombo-icon-checked {
background: transparent url(../extjs/resources/images/default/menu/checked.gif);
background: transparent
url(../extjs/resources/images/default/menu/checked.gif);
}
.ux-lovcombo-icon-unchecked {
background: transparent url(../extjs/resources/images/default/menu/unchecked.gif);
background: transparent
url(../extjs/resources/images/default/menu/unchecked.gif);
}
/* eof */
/* eof */

View file

@ -6,12 +6,9 @@
* http://extjs.com/license
*/
/**
* CheckedColumn
*/
Ext.grid.CheckColumn = function(config){
Ext.apply(this, config);
if(!this.id){
@ -602,43 +599,69 @@ Ext.extend(Ext.ux.grid.ProgressColumn, Ext.util.Observable, {
}
});
// vim: ts=4:sw=4:nu:fdc=4:nospell
//vim: ts=4:sw=4:nu:fdc=4:nospell
/*global Ext */
/**
* RowActions plugin for Ext grid
* @class Ext.ux.grid.RowActions
* @extends Ext.util.Observable
*
* Contains renderer for icons and fires events when an icon is clicked
* RowActions plugin for Ext grid. Contains renderer for icons and fires events when an icon is clicked.
* CSS rules from Ext.ux.RowActions.css are mandatory
*
* Important general information: Actions are identified by iconCls. Wherever an <i>action</i>
* is referenced (event argument, callback argument), the iconCls of clicked icon is used.
* In other words, action identifier === iconCls.
*
* @author Ing. Jozef Sakáloš
* @copyright (c) 2008, by Ing. Jozef Sakáloš
* @date 22. March 2008
* @version $Id: Ext.ux.grid.RowActions.js 150 2008-04-08 21:50:58Z jozo $
* @version 1.0
* @revision $Id: Ext.ux.grid.RowActions.js 747 2009-09-03 23:30:52Z jozo $
*
* @license Ext.ux.grid.RowActions is licensed under the terms of
* the Open Source LGPL 3.0 license. Commercial use is permitted to the extent
* that the code/component(s) do NOT become part of another Open Source or Commercially
* licensed development library or toolkit without explicit permission.
*
* License details: http://www.gnu.org/licenses/lgpl.html
* <p>License details: <a href="http://www.gnu.org/licenses/lgpl.html"
* target="_blank">http://www.gnu.org/licenses/lgpl.html</a></p>
*
* @forum 29961
* @demo http://rowactions.extjs.eu
* @download
* <ul>
* <li><a href="http://rowactions.extjs.eu/rowactions.tar.bz2">rowactions.tar.bz2</a></li>
* <li><a href="http://rowactions.extjs.eu/rowactions.tar.gz">rowactions.tar.gz</a></li>
* <li><a href="http://rowactions.extjs.eu/rowactions.zip">rowactions.zip</a></li>
* </ul>
*
* @donate
* <form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
* <input type="hidden" name="cmd" value="_s-xclick">
* <input type="hidden" name="hosted_button_id" value="3430419">
* <input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-butcc-donate.gif"
* border="0" name="submit" alt="PayPal - The safer, easier way to pay online.">
* <img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
* </form>
*/
/*global Ext */
Ext.ns('Ext.ux.grid');
// add RegExp.escape if it has not been already added
if('function' !== typeof RegExp.escape) {
RegExp.escape = function(s) {
if('string' !== typeof s) {
return s;
}
// Note: if pasting from forum, precede ]/\ with backslash manually
return s.replace(/([.*+?\^=!:${}()|\[\]\/\\])/g, '\\$1');
}; // eo function escape
}
/**
* @class Ext.ux.grid.RowActions
* @extends Ext.util.Observable
*
* CSS rules from Ext.ux.RowActions.css are mandatory
*
* Important general information: Actions are identified by iconCls. Wherever an <i>action</i>
* is referenced (event argument, callback argument), the iconCls of clicked icon is used.
* In another words, action identifier === iconCls.
*
* Creates new RowActions plugin
* @constructor
* @param {Object} config The config object
* @param {Object} config A config object
*/
Ext.ux.grid.RowActions = function(config) {
Ext.apply(this, config);
@ -695,73 +718,105 @@ Ext.extend(Ext.ux.grid.RowActions, Ext.util.Observable, {
// configuration options
// {{{
/**
* @cfg {Array} actions Mandatory. Array of action configuration objects. The following
* configuration options of action are recognized:
*
* - @cfg {Function} callback Optional. Function to call if the action icon is clicked.
* @cfg {Array} actions Mandatory. Array of action configuration objects. The action
* configuration object recognizes the following options:
* <ul class="list">
* <li style="list-style-position:outside">
* {Function} <b>callback</b> (optional). Function to call if the action icon is clicked.
* This function is called with same signature as action event and in its original scope.
* If you need to call it in different scope or with another signature use
* createCallback or createDelegate functions. Works for statically defined actions. Use
* callbacks configuration options for store bound actions.
*
* - @cfg {Function} cb Shortcut for callback.
*
* - @cfg {String} iconIndex Optional, however either iconIndex or iconCls must be
* </li>
* <li style="list-style-position:outside">
* {Function} <b>cb</b> Shortcut for callback.
* </li>
* <li style="list-style-position:outside">
* {String} <b>iconIndex</b> Optional, however either iconIndex or iconCls must be
* configured. Field name of the field of the grid store record that contains
* css class of the icon to show. If configured, shown icons can vary depending
* of the value of this field.
*
* - @cfg {String} iconCls. css class of the icon to show. It is ignored if iconIndex is
* </li>
* <li style="list-style-position:outside">
* {String} <b>iconCls</b> CSS class of the icon to show. It is ignored if iconIndex is
* configured. Use this if you want static icons that are not base on the values in the record.
*
* - @cfg {Boolean} hide Optional. True to hide this action while still have a space in
* </li>
* <li style="list-style-position:outside">
* {Boolean} <b>hide</b> Optional. True to hide this action while still have a space in
* the grid column allocated to it. IMO, it doesn't make too much sense, use hideIndex instead.
*
* - @cfg (string} hideIndex Optional. Field name of the field of the grid store record that
* </li>
* <li style="list-style-position:outside">
* {String} <b>hideIndex</b> Optional. Field name of the field of the grid store record that
* contains hide flag (falsie [null, '', 0, false, undefined] to show, anything else to hide).
*
* - @cfg {String} qtipIndex Optional. Field name of the field of the grid store record that
* </li>
* <li style="list-style-position:outside">
* {String} <b>qtipIndex</b> Optional. Field name of the field of the grid store record that
* contains tooltip text. If configured, the tooltip texts are taken from the store.
*
* - @cfg {String} tooltip Optional. Tooltip text to use as icon tooltip. It is ignored if
* </li>
* <li style="list-style-position:outside">
* {String} <b>tooltip</b> Optional. Tooltip text to use as icon tooltip. It is ignored if
* qtipIndex is configured. Use this if you want static tooltips that are not taken from the store.
*
* - @cfg {String} qtip Synonym for tooltip
*
* - @cfg {String} textIndex Optional. Field name of the field of the grids store record
* </li>
* <li style="list-style-position:outside">
* {String} <b>qtip</b> Synonym for tooltip
* </li>
* <li style="list-style-position:outside">
* {String} <b>textIndex</b> Optional. Field name of the field of the grids store record
* that contains text to display on the right side of the icon. If configured, the text
* shown is taken from record.
*
* - @cfg {String} text Optional. Text to display on the right side of the icon. Use this
* </li>
* <li style="list-style-position:outside">
* {String} <b>text</b> Optional. Text to display on the right side of the icon. Use this
* if you want static text that are not taken from record. Ignored if textIndex is set.
*
* - @cfg {String} style Optional. Style to apply to action icon container.
* </li>
* <li style="list-style-position:outside">
* {String} <b>style</b> Optional. Style to apply to action icon container.
* </li>
* </ul>
*/
/**
* @cfg {String} actionEvnet Event to trigger actions, e.g. click, dblclick, mouseover (defaults to 'click')
* @cfg {String} actionEvent Event to trigger actions, e.g. click, dblclick, mouseover (defaults to 'click')
*/
actionEvent:'click'
/**
* @cfg {Boolean} autoWidth true to calculate field width for iconic actions only.
* @cfg {Boolean} autoWidth true to calculate field width for iconic actions only (defaults to true).
* If true, the width is calculated as {@link #widthSlope} * number of actions + {@link #widthIntercept}.
*/
,autoWidth:true
/**
* @cfg {String} dataIndex - Do not touch!
* @private
*/
,dataIndex:''
/**
* @cfg {Boolean} editable - Do not touch!
* Must be false to prevent errors in editable grids
*/
,editable:false
/**
* @cfg {Array} groupActions Array of action to use for group headers of grouping grids.
* These actions support static icons, texts and tooltips same way as actions. There is one
* more action config recognized:
* - @cfg {String} align Set it to 'left' to place action icon next to the group header text.
* These actions support static icons, texts and tooltips same way as {@link #actions}. There is one
* more action config option recognized:
* <ul class="list">
* <li style="list-style-position:outside">
* {String} <b>align</b> Set it to 'left' to place action icon next to the group header text.
* (defaults to undefined = icons are placed at the right side of the group header.
* </li>
* </ul>
*/
/**
* @cfg {Object} callbacks iconCls keyed object that contains callback functions. For example:
* <pre>
* callbacks:{
* 'icon-open':function(...) {...}
* ,'icon-save':function(...) {...}
* &nbsp; 'icon-open':function(...) {...}
* &nbsp; ,'icon-save':function(...) {...}
* }
* </pre>
*/
/**
@ -769,13 +824,30 @@ Ext.extend(Ext.ux.grid.RowActions, Ext.util.Observable, {
*/
,header:''
/**
* @cfg {Boolean} isColumn
* Tell ColumnModel that we are column. Do not touch!
* @private
*/
,isColumn:true
/**
* @cfg {Boolean} keepSelection
* Set it to true if you do not want action clicks to affect selected row(s) (defaults to false).
* By default, when user clicks an action icon the clicked row is selected and the action events are fired.
* If this option is true then the current selection is not affected, only the action events are fired.
*/
,keepSelection:false
/**
* @cfg {Boolean} menuDisabled No sense to display header menu for this column
* @private
*/
,menuDisabled:true
/**
* @cfg {Boolean} sortable Usually it has no sense to sort by this column
* @private
*/
,sortable:false
@ -803,12 +875,22 @@ Ext.extend(Ext.ux.grid.RowActions, Ext.util.Observable, {
+'</div>'
/**
* @private {Number} widthIntercept constant used for auto-width calculation
* @cfg {String} hideMode How to hide hidden icons. Valid values are: 'visibility' and 'display'
* (defaluts to 'visibility'). If the mode is visibility the hidden icon is not visible but there
* is still blank space occupied by the icon. In display mode, the visible icons are shifted taking
* the space of the hidden icon.
*/
,hideMode:'visibility'
/**
* @cfg {Number} widthIntercept Constant used for auto-width calculation (defaults to 4).
* See {@link #autoWidth} for explanation.
*/
,widthIntercept:4
/**
* @private {Number} widthSlope constant used for auto-width calculation
* @cfg {Number} widthSlope Constant used for auto-width calculation (defaults to 21).
* See {@link #autoWidth} for explanation.
*/
,widthSlope:21
// }}}
@ -822,6 +904,14 @@ Ext.extend(Ext.ux.grid.RowActions, Ext.util.Observable, {
,init:function(grid) {
this.grid = grid;
// the actions column must have an id for Ext 3.x
this.id = this.id || Ext.id();
// for Ext 3.x compatibility
var lookup = grid.getColumnModel().lookup;
delete(lookup[undefined]);
lookup[this.id] = this;
// {{{
// setup template
if(!this.tpl) {
@ -840,11 +930,10 @@ Ext.extend(Ext.ux.grid.RowActions, Ext.util.Observable, {
var view = grid.getView();
var cfg = {scope:this};
cfg[this.actionEvent] = this.onClick;
grid.on({
render:{scope:this, fn:function() {
view.mainBody.on(cfg);
}}
});
grid.afterRender = grid.afterRender.createSequence(function() {
view.mainBody.on(cfg);
grid.on('destroy', this.purgeListeners, this);
}, this);
// setup renderer
if(!this.renderer) {
@ -866,6 +955,15 @@ Ext.extend(Ext.ux.grid.RowActions, Ext.util.Observable, {
+this.processActions(this.groupActions, this.tplGroup).apply()
;
}
// cancel click
if(true === this.keepSelection) {
grid.processEvent = grid.processEvent.createInterceptor(function(name, e) {
if('mousedown' === name) {
return !this.getAction(e);
}
}, this);
}
} // eo function init
// }}}
@ -878,7 +976,7 @@ Ext.extend(Ext.ux.grid.RowActions, Ext.util.Observable, {
* @param {Number} row row index
* @param {Number} col col index
* @param {Ext.data.Store} store object from which the record is extracted
* @returns {Object} data to apply to template
* @return {Object} data to apply to template
*/
,getData:function(value, cell, record, row, col, store) {
return record.data || {};
@ -908,7 +1006,10 @@ Ext.extend(Ext.ux.grid.RowActions, Ext.util.Observable, {
cls:a.iconIndex ? '{' + a.iconIndex + '}' : (a.iconCls ? a.iconCls : '')
,qtip:a.qtipIndex ? '{' + a.qtipIndex + '}' : (a.tooltip || a.qtip ? a.tooltip || a.qtip : '')
,text:a.textIndex ? '{' + a.textIndex + '}' : (a.text ? a.text : '')
,hide:a.hideIndex ? '<tpl if="' + a.hideIndex + '">visibility:hidden;</tpl>' : (a.hide ? 'visibility:hidden;' : '')
,hide:a.hideIndex
? '<tpl if="' + a.hideIndex + '">'
+ ('display' === this.hideMode ? 'display:none' :'visibility:hidden') + ';</tpl>'
: (a.hide ? ('display' === this.hideMode ? 'display:none' :'visibility:hidden;') : '')
,align:a.align || 'right'
,style:a.style ? a.style : ''
};
@ -921,20 +1022,8 @@ Ext.extend(Ext.ux.grid.RowActions, Ext.util.Observable, {
} // eo function processActions
// }}}
// {{{
/**
* Grid body actionEvent event handler
* @private
*/
,onClick:function(e, target) {
var view = this.grid.getView();
,getAction:function(e) {
var action = false;
// handle row action click
var row = e.getTarget('.x-grid3-row');
var col = view.findCellIndex(target.parentNode.parentNode);
var t = e.getTarget('.ux-row-action-item');
if(t) {
action = t.className.replace(/ux-row-action-item /, '');
@ -943,6 +1032,31 @@ Ext.extend(Ext.ux.grid.RowActions, Ext.util.Observable, {
action = action.trim();
}
}
return action;
} // eo function getAction
// {{{
/**
* Grid body actionEvent event handler
* @private
*/
,onClick:function(e, target) {
var view = this.grid.getView();
// handle row action click
var row = e.getTarget('.x-grid3-row');
var col = view.findCellIndex(target.parentNode.parentNode);
var action = this.getAction(e);
// var t = e.getTarget('.ux-row-action-item');
// if(t) {
// action = this.getAction(t);
// action = t.className.replace(/ux-row-action-item /, '');
// if(action) {
// action = action.replace(/ ux-row-action-text/, '');
// action = action.trim();
// }
// }
if(false !== row && false !== col && false !== action) {
var record = this.grid.store.getAt(row.rowIndex);
@ -971,7 +1085,7 @@ Ext.extend(Ext.ux.grid.RowActions, Ext.util.Observable, {
// get matching records
var records;
if(groupId) {
var re = new RegExp(groupId);
var re = new RegExp(RegExp.escape(groupId));
records = this.grid.store.queryBy(function(r) {
return r._groupId.match(re);
});
@ -998,6 +1112,9 @@ Ext.extend(Ext.ux.grid.RowActions, Ext.util.Observable, {
// registre xtype
Ext.reg('rowactions', Ext.ux.grid.RowActions);
// eof
/**
* Ext.ux.form.LovCombo, List of Values Combo

View file

@ -1,10 +1,12 @@
tvheadend.servicetypeStore = new Ext.data.JsonStore({
root : 'entries',
id : 'val',
url : '/iptv/services',
baseParams : { op : 'servicetypeList' },
fields : [ 'val', 'str' ],
autoLoad : true
root : 'entries',
id : 'val',
url : '/iptv/services',
baseParams : {
op : 'servicetypeList'
},
fields : [ 'val', 'str' ],
autoLoad : true
});
/**
@ -12,294 +14,295 @@ tvheadend.servicetypeStore = new Ext.data.JsonStore({
*/
tvheadend.iptv = function(adapterId) {
var fm = Ext.form;
var enabledColumn = new Ext.grid.CheckColumn({
header: "Enabled",
dataIndex: 'enabled',
width: 45
});
var fm = Ext.form;
var actions = new Ext.ux.grid.RowActions({
header:'',
dataIndex: 'actions',
width: 45,
actions: [
{
iconCls:'info',
qtip:'Detailed information about service',
cb: function(grid, record, action, row, col) {
Ext.Ajax.request({
url: "servicedetails/" + record.id,
success:function(response, options) {
r = Ext.util.JSON.decode(response.responseText);
tvheadend.showTransportDetails(r);
var enabledColumn = new Ext.grid.CheckColumn({
header : "Enabled",
dataIndex : 'enabled',
width : 45
});
var actions = new Ext.ux.grid.RowActions({
header : '',
dataIndex : 'actions',
width : 45,
actions : [ {
iconCls : 'info',
qtip : 'Detailed information about service',
cb : function(grid, record, action, row, col) {
Ext.Ajax.request({
url : "servicedetails/" + record.id,
success : function(response, options) {
r = Ext.util.JSON.decode(response.responseText);
tvheadend.showTransportDetails(r);
}
})
}
} ]
});
var cm = new Ext.grid.ColumnModel([
enabledColumn,
{
header : "Channel name",
dataIndex : 'channelname',
width : 150,
renderer : function(value, metadata, record, row, col, store) {
return value ? value
: '<span class="tvh-grid-unset">Unmapped</span>';
},
editor : new fm.ComboBox({
store : tvheadend.channels,
allowBlank : true,
typeAhead : true,
minChars : 2,
lazyRender : true,
triggerAction : 'all',
mode : 'local',
displayField : 'name'
})
},
{
header : "Interface",
dataIndex : 'interface',
width : 100,
renderer : function(value, metadata, record, row, col, store) {
return value ? value : '<span class="tvh-grid-unset">Unset</span>';
},
editor : new fm.TextField({
allowBlank : false
})
},
{
header : "Group",
dataIndex : 'group',
width : 100,
renderer : function(value, metadata, record, row, col, store) {
return value ? value : '<span class="tvh-grid-unset">Unset</span>';
},
editor : new fm.TextField({
allowBlank : false
})
},
{
header : "UDP Port",
dataIndex : 'port',
width : 60,
editor : new fm.NumberField({
minValue : 1,
maxValue : 65535
})
},
{
header : "Service ID",
dataIndex : 'sid',
width : 50,
hidden : true
},
{
header : 'Service Type',
width : 100,
dataIndex : 'stype',
hidden : true,
editor : new fm.ComboBox({
valueField : 'val',
displayField : 'str',
forceSelection : false,
editable : false,
mode : 'local',
triggerAction : 'all',
store : tvheadend.servicetypeStore
}),
renderer : function(value, metadata, record, row, col, store) {
var val = value ? tvheadend.servicetypeStore.getById(value) : null;
return val ? val.get('str')
: '<span class="tvh-grid-unset">Unset</span>';
}
}, {
header : "PMT PID",
dataIndex : 'pmt',
width : 50,
hidden : true
}, {
header : "PCR PID",
dataIndex : 'pcr',
width : 50,
hidden : true
}, actions ]);
cm.defaultSortable = true;
var rec = Ext.data.Record.create([ 'id', 'enabled', 'channelname',
'interface', 'group', 'port', 'sid', 'pmt', 'pcr', 'stype' ]);
var store = new Ext.data.JsonStore({
root : 'entries',
fields : rec,
url : "iptv/services",
autoLoad : true,
id : 'id',
baseParams : {
op : "get"
},
listeners : {
'update' : function(s, r, o) {
d = s.getModifiedRecords().length == 0
saveBtn.setDisabled(d);
rejectBtn.setDisabled(d);
}
})
}
}
]
});
});
var cm = new Ext.grid.ColumnModel([
enabledColumn,
{
header: "Channel name",
dataIndex: 'channelname',
width: 150,
renderer: function(value, metadata, record, row, col, store) {
return value ? value :
'<span class="tvh-grid-unset">Unmapped</span>';
},
editor: new fm.ComboBox({
store: tvheadend.channels,
allowBlank: true,
typeAhead: true,
minChars: 2,
lazyRender: true,
triggerAction: 'all',
mode: 'local',
displayField:'name'
})
},
{
header: "Interface",
dataIndex: 'interface',
width: 100,
renderer: function(value, metadata, record, row, col, store) {
return value ? value :
'<span class="tvh-grid-unset">Unset</span>';
},
editor: new fm.TextField({allowBlank: false})
},
{
header: "Group",
dataIndex: 'group',
width: 100,
renderer: function(value, metadata, record, row, col, store) {
return value ? value :
'<span class="tvh-grid-unset">Unset</span>';
},
editor: new fm.TextField({allowBlank: false})
},
{
header: "UDP Port",
dataIndex: 'port',
width: 60,
editor: new fm.NumberField({
minValue: 1,
maxValue: 65535
})
},
{
header: "Service ID",
dataIndex: 'sid',
width: 50,
hidden: true
},
{
header : 'Service Type',
width : 100,
dataIndex : 'stype',
hidden : true,
editor : new fm.ComboBox({
valueField : 'val',
displayField : 'str',
forceSelection : false,
editable : false,
mode : 'local',
triggerAction : 'all',
store : tvheadend.servicetypeStore
}),
renderer: function(value, metadata, record, row, col, store) {
var val = value ? tvheadend.servicetypeStore.getById(value) : null;
return val ? val.get('str') :
'<span class="tvh-grid-unset">Unset</span>';
}
},
{
header: "PMT PID",
dataIndex: 'pmt',
width: 50,
hidden: true
},
{
header: "PCR PID",
dataIndex: 'pcr',
width: 50,
hidden: true
}, actions
]);
/*
var storeReloader = new Ext.util.DelayedTask(function() {
store.reload()
});
cm.defaultSortable = true;
tvheadend.comet.on('dvbService', function(m) {
storeReloader.delay(500);
});
*/
var rec = Ext.data.Record.create([
'id', 'enabled', 'channelname', 'interface', 'group', 'port',
'sid', 'pmt', 'pcr', 'stype'
]);
function addRecord() {
Ext.Ajax.request({
url : "iptv/services",
params : {
op : "create"
},
failure : function(response, options) {
Ext.MessageBox.alert('Server Error',
'Unable to generate new record');
},
success : function(response, options) {
var responseData = Ext.util.JSON.decode(response.responseText);
var p = new rec(responseData, responseData.id);
grid.stopEditing();
store.insert(0, p);
grid.startEditing(0, 0);
}
})
}
;
var store = new Ext.data.JsonStore({
root: 'entries',
fields: rec,
url: "iptv/services",
autoLoad: true,
id: 'id',
baseParams: {op: "get"},
listeners: {
'update': function(s, r, o) {
function delSelected() {
var selectedKeys = grid.selModel.selections.keys;
if (selectedKeys.length > 0) {
Ext.MessageBox.confirm('Message',
'Do you really want to delete selection?', deleteRecord);
}
else {
Ext.MessageBox.alert('Message',
'Please select at least one item to delete');
}
}
;
function deleteRecord(btn) {
if (btn == 'yes') {
var selectedKeys = grid.selModel.selections.keys;
Ext.Ajax.request({
url : "iptv/services",
params : {
op : "delete",
entries : Ext.encode(selectedKeys)
},
failure : function(response, options) {
Ext.MessageBox.alert('Server Error', 'Unable to delete');
},
success : function(response, options) {
store.reload();
}
})
}
}
function saveChanges() {
var mr = store.getModifiedRecords();
var out = new Array();
for ( var x = 0; x < mr.length; x++) {
v = mr[x].getChanges();
out[x] = v;
out[x].id = mr[x].id;
}
Ext.Ajax.request({
url : "iptv/services",
params : {
op : "update",
entries : Ext.encode(out)
},
success : function(response, options) {
store.commitChanges();
},
failure : function(response, options) {
Ext.MessageBox.alert('Message', response.statusText);
}
});
}
var delButton = new Ext.Toolbar.Button({
tooltip : 'Delete one or more selected rows',
iconCls : 'remove',
text : 'Delete selected services',
handler : delSelected,
disabled : true
});
var saveBtn = new Ext.Toolbar.Button({
tooltip : 'Save any changes made (Changed cells have red borders).',
iconCls : 'save',
text : "Save changes",
handler : saveChanges,
disabled : true
});
var rejectBtn = new Ext.Toolbar.Button({
tooltip : 'Revert any changes made (Changed cells have red borders).',
iconCls : 'undo',
text : "Revert changes",
handler : function() {
store.rejectChanges();
},
disabled : true
});
var selModel = new Ext.grid.RowSelectionModel({
singleSelect : false
});
var grid = new Ext.grid.EditorGridPanel({
stripeRows : true,
title : 'IPTV',
iconCls : 'iptv',
plugins : [ enabledColumn, actions ],
store : store,
clicksToEdit : 2,
cm : cm,
viewConfig : {
forceFit : true
},
selModel : selModel,
tbar : [
{
tooltip : 'Create a new entry on the server. '
+ 'The new entry is initially disabled so it must be enabled '
+ 'before it start taking effect.',
iconCls : 'add',
text : 'Add service',
handler : addRecord
}, '-', delButton, '-', saveBtn, rejectBtn ]
});
store.on('update', function(s, r, o) {
d = s.getModifiedRecords().length == 0
saveBtn.setDisabled(d);
rejectBtn.setDisabled(d);
}
}
});
/*
var storeReloader = new Ext.util.DelayedTask(function() {
store.reload()
});
tvheadend.comet.on('dvbService', function(m) {
storeReloader.delay(500);
});
*/
function addRecord() {
Ext.Ajax.request({
url: "iptv/services",
params: {
op:"create"
},
failure:function(response,options){
Ext.MessageBox.alert('Server Error',
'Unable to generate new record');
},
success:function(response,options){
var responseData = Ext.util.JSON.decode(response.responseText);
var p = new rec(responseData, responseData.id);
grid.stopEditing();
store.insert(0, p);
grid.startEditing(0, 0);
}
})
};
function delSelected() {
var selectedKeys = grid.selModel.selections.keys;
if(selectedKeys.length > 0) {
Ext.MessageBox.confirm('Message',
'Do you really want to delete selection?',
deleteRecord);
} else {
Ext.MessageBox.alert('Message',
'Please select at least one item to delete');
}
};
function deleteRecord(btn) {
if(btn=='yes') {
var selectedKeys = grid.selModel.selections.keys;
Ext.Ajax.request({
url: "iptv/services",
params: {
op:"delete",
entries:Ext.encode(selectedKeys)
},
failure:function(response,options) {
Ext.MessageBox.alert('Server Error','Unable to delete');
},
success:function(response,options) {
store.reload();
}
})
}
}
function saveChanges() {
var mr = store.getModifiedRecords();
var out = new Array();
for (var x = 0; x < mr.length; x++) {
v = mr[x].getChanges();
out[x] = v;
out[x].id = mr[x].id;
}
Ext.Ajax.request({
url: "iptv/services",
params: {
op:"update",
entries:Ext.encode(out)
},
success:function(response,options) {
store.commitChanges();
},
failure:function(response,options) {
Ext.MessageBox.alert('Message',response.statusText);
}
});
}
var delButton = new Ext.Toolbar.Button({
tooltip: 'Delete one or more selected rows',
iconCls:'remove',
text: 'Delete selected services',
handler: delSelected,
disabled: true
});
selModel.on('selectionchange', function(self) {
delButton.setDisabled(self.getCount() == 0);
});
var saveBtn = new Ext.Toolbar.Button({
tooltip: 'Save any changes made (Changed cells have red borders).',
iconCls:'save',
text: "Save changes",
handler: saveChanges,
disabled: true
});
var rejectBtn = new Ext.Toolbar.Button({
tooltip: 'Revert any changes made (Changed cells have red borders).',
iconCls:'undo',
text: "Revert changes",
handler: function() {
store.rejectChanges();
},
disabled: true
});
var selModel = new Ext.grid.RowSelectionModel({
singleSelect:false
});
var grid = new Ext.grid.EditorGridPanel({
stripeRows: true,
title: 'IPTV',
iconCls: 'iptv',
plugins: [enabledColumn, actions],
store: store,
clicksToEdit: 2,
cm: cm,
viewConfig: {forceFit:true},
selModel: selModel,
tbar: [{
tooltip: 'Create a new entry on the server. '+
'The new entry is initially disabled so it must be enabled '+
'before it start taking effect.',
iconCls:'add',
text: 'Add service',
handler: addRecord
}, '-', delButton, '-', saveBtn, rejectBtn]
});
store.on('update', function(s, r, o) {
d = s.getModifiedRecords().length == 0
saveBtn.setDisabled(d);
rejectBtn.setDisabled(d);
});
selModel.on('selectionchange', function(self) {
delButton.setDisabled(self.getCount() == 0);
});
return grid;
return grid;
}

View file

@ -1,157 +1,173 @@
tvheadend.tableEditor = function(title, dtable, cm, rec, plugins, store,
helpContent, icon) {
cm.defaultSortable = true;
helpContent, icon) {
cm.defaultSortable = true;
if(store == null) {
store = new Ext.data.JsonStore({
root: 'entries',
fields: rec,
url: "tablemgr",
autoLoad: true,
id: 'id',
baseParams: {table: dtable, op: "get"}
});
}
if (store == null) {
store = new Ext.data.JsonStore({
root : 'entries',
fields : rec,
url : "tablemgr",
autoLoad : true,
id : 'id',
baseParams : {
table : dtable,
op : "get"
}
});
}
function addRecord() {
Ext.Ajax.request({
url: "tablemgr", params: {op:"create", table:dtable},
failure:function(response,options){
Ext.MessageBox.alert('Server Error',
'Unable to generate new record');
},
success:function(response,options){
var responseData = Ext.util.JSON.decode(response.responseText);
var p = new rec(responseData, responseData.id);
grid.stopEditing();
store.insert(0, p);
grid.startEditing(0, 0);
}
})
};
function delSelected() {
var selectedKeys = grid.selModel.selections.keys;
if(selectedKeys.length > 0) {
Ext.MessageBox.confirm('Message',
'Do you really want to delete selection?',
deleteRecord);
} else {
Ext.MessageBox.alert('Message',
'Please select at least one item to delete');
}
};
function deleteRecord(btn) {
if(btn=='yes') {
var selectedKeys = grid.selModel.selections.keys;
function addRecord() {
Ext.Ajax.request({
url : "tablemgr",
params : {
op : "create",
table : dtable
},
failure : function(response, options) {
Ext.MessageBox.alert('Server Error',
'Unable to generate new record');
},
success : function(response, options) {
var responseData = Ext.util.JSON.decode(response.responseText);
var p = new rec(responseData, responseData.id);
grid.stopEditing();
store.insert(0, p);
grid.startEditing(0, 0);
}
})
}
;
Ext.Ajax.request({
url: "tablemgr", params: {op:"delete", table:dtable,
entries:Ext.encode(selectedKeys)},
failure:function(response,options) {
Ext.MessageBox.alert('Server Error','Unable to delete');
},
success:function(response,options) {
store.reload();
function delSelected() {
var selectedKeys = grid.selModel.selections.keys;
if (selectedKeys.length > 0) {
Ext.MessageBox.confirm('Message',
'Do you really want to delete selection?', deleteRecord);
}
else {
Ext.MessageBox.alert('Message',
'Please select at least one item to delete');
}
})
}
}
function saveChanges() {
var mr = store.getModifiedRecords();
var out = new Array();
for (var x = 0; x < mr.length; x++) {
v = mr[x].getChanges();
out[x] = v;
out[x].id = mr[x].id;
;
function deleteRecord(btn) {
if (btn == 'yes') {
var selectedKeys = grid.selModel.selections.keys;
Ext.Ajax.request({
url : "tablemgr",
params : {
op : "delete",
table : dtable,
entries : Ext.encode(selectedKeys)
},
failure : function(response, options) {
Ext.MessageBox.alert('Server Error', 'Unable to delete');
},
success : function(response, options) {
store.reload();
}
})
}
}
Ext.Ajax.request({
url: "tablemgr",
params: {op:"update", table:dtable, entries:Ext.encode(out)},
success:function(response,options) {
store.commitChanges();
},
failure:function(response,options) {
Ext.MessageBox.alert('Message',response.statusText);
}
function saveChanges() {
var mr = store.getModifiedRecords();
var out = new Array();
for ( var x = 0; x < mr.length; x++) {
v = mr[x].getChanges();
out[x] = v;
out[x].id = mr[x].id;
}
Ext.Ajax.request({
url : "tablemgr",
params : {
op : "update",
table : dtable,
entries : Ext.encode(out)
},
success : function(response, options) {
store.commitChanges();
},
failure : function(response, options) {
Ext.MessageBox.alert('Message', response.statusText);
}
});
}
var selModel = new Ext.grid.RowSelectionModel({
singleSelect : false
});
}
var selModel = new Ext.grid.RowSelectionModel({
singleSelect:false
});
var delButton = new Ext.Toolbar.Button({
tooltip: 'Delete one or more selected rows',
iconCls:'remove',
text: 'Delete selected',
handler: delSelected,
disabled: true
});
var delButton = new Ext.Toolbar.Button({
tooltip : 'Delete one or more selected rows',
iconCls : 'remove',
text : 'Delete selected',
handler : delSelected,
disabled : true
});
var saveBtn = new Ext.Toolbar.Button({
tooltip: 'Save any changes made (Changed cells have red borders)',
iconCls:'save',
text: "Save changes",
handler: saveChanges,
disabled: true
});
var saveBtn = new Ext.Toolbar.Button({
tooltip : 'Save any changes made (Changed cells have red borders)',
iconCls : 'save',
text : "Save changes",
handler : saveChanges,
disabled : true
});
var rejectBtn = new Ext.Toolbar.Button({
tooltip: 'Revert any changes made (Changed cells have red borders)',
iconCls:'undo',
text: "Revert changes",
handler: function() {
store.rejectChanges();
},
disabled: true
});
var rejectBtn = new Ext.Toolbar.Button({
tooltip : 'Revert any changes made (Changed cells have red borders)',
iconCls : 'undo',
text : "Revert changes",
handler : function() {
store.rejectChanges();
},
disabled : true
});
store.on('update', function(s, r, o) {
d = s.getModifiedRecords().length == 0
saveBtn.setDisabled(d);
rejectBtn.setDisabled(d);
});
store.on('update', function(s, r, o) {
d = s.getModifiedRecords().length == 0
saveBtn.setDisabled(d);
rejectBtn.setDisabled(d);
});
selModel.on('selectionchange', function(self) {
if(self.getCount() > 0) {
delButton.enable();
} else {
delButton.disable();
}
});
selModel.on('selectionchange', function(self) {
if (self.getCount() > 0) {
delButton.enable();
}
else {
delButton.disable();
}
});
var grid = new Ext.grid.EditorGridPanel({
title: title,
iconCls: icon,
plugins: plugins,
store: store,
clicksToEdit: 2,
cm: cm,
viewConfig: {forceFit:true},
selModel: selModel,
stripeRows: true,
tbar: [{
tooltip: 'Create a new entry on the server. '+
'The new entry is initially disabled so it must be enabled '+
'before it start taking effect.',
iconCls:'add',
text: 'Add entry',
handler: addRecord
}, '-', delButton, '-', saveBtn, rejectBtn, '->', {
text: 'Help',
handler: function() {
new tvheadend.help(title, helpContent);
}
}
]
});
return grid;
var grid = new Ext.grid.EditorGridPanel({
title : title,
iconCls : icon,
plugins : plugins,
store : store,
clicksToEdit : 2,
cm : cm,
viewConfig : {
forceFit : true
},
selModel : selModel,
stripeRows : true,
tbar : [
{
tooltip : 'Create a new entry on the server. '
+ 'The new entry is initially disabled so it must be enabled '
+ 'before it start taking effect.',
iconCls : 'add',
text : 'Add entry',
handler : addRecord
}, '-', delButton, '-', saveBtn, rejectBtn, '->', {
text : 'Help',
handler : function() {
new tvheadend.help(title, helpContent);
}
} ]
});
return grid;
}

View file

@ -2,133 +2,111 @@
* Datastore for adapters
*/
tvheadend.tvAdapterStore = new Ext.data.JsonStore({
root:'entries',
id: 'identifier',
fields: ['identifier',
'type',
'name',
'path',
'devicename',
'hostconnection',
'currentMux',
'services',
'muxes',
'initialMuxes',
'satConf',
'deliverySystem',
'freqMin',
'freqMax',
'freqStep',
'symrateMin',
'symrateMax'
],
url:'tv/adapter'
root : 'entries',
id : 'identifier',
fields : [ 'identifier', 'type', 'name', 'path', 'devicename',
'hostconnection', 'currentMux', 'services', 'muxes', 'initialMuxes',
'satConf', 'deliverySystem', 'freqMin', 'freqMax', 'freqStep',
'symrateMin', 'symrateMax' ],
url : 'tv/adapter'
});
tvheadend.comet.on('tvAdapter', function(m) {
idx = tvheadend.tvAdapterStore.find('identifier', m.identifier);
if(idx == -1)
return;
r = tvheadend.tvAdapterStore.getAt(idx);
r.beginEdit();
for (key in m)
r.set(key, m[key]);
r.endEdit();
tvheadend.tvAdapterStore.commitChanges();
idx = tvheadend.tvAdapterStore.find('identifier', m.identifier);
if (idx == -1) return;
r = tvheadend.tvAdapterStore.getAt(idx);
r.beginEdit();
for (key in m)
r.set(key, m[key]);
r.endEdit();
tvheadend.tvAdapterStore.commitChanges();
});
/**
*
*/
tvheadend.tvadapters = function()
{
var adapterSelection = new Ext.form.ComboBox({
loadingText: 'Loading...',
width: 300,
displayField:'name',
store: tvheadend.tvAdapterStore,
mode: 'remote',
editable: false,
triggerAction: 'all',
emptyText: 'Select TV adapter...'
});
tvheadend.tvadapters = function() {
var adapterSelection = new Ext.form.ComboBox({
loadingText : 'Loading...',
width : 300,
displayField : 'name',
store : tvheadend.tvAdapterStore,
mode : 'remote',
editable : false,
triggerAction : 'all',
emptyText : 'Select TV adapter...'
});
var dummyadapter = new Ext.Panel({
region:'center', layout:'fit',
items:[{border: false}]
});
var dummyadapter = new Ext.Panel({
region : 'center',
layout : 'fit',
items : [ {
border : false
} ]
});
var panel = new Ext.Panel({
title : 'TV Adapters',
iconCls : 'hardware',
layout : 'fit',
tbar : [ adapterSelection, '->', {
text : 'Help',
handler : function() {
new tvheadend.help('DVB', 'config_dvb.html');
}
} ],
var panel = new Ext.Panel({
title: 'TV Adapters',
iconCls: 'hardware',
layout:'fit',
tbar: [
adapterSelection, '->', {
text: 'Help',
handler: function() {
new tvheadend.help('DVB', 'config_dvb.html');
}
}
],
items : [ dummyadapter ]
});
items: [
dummyadapter
]
});
adapterSelection.on('select',
function(c, r) {
panel.remove(panel.getComponent(0));
panel.doLayout();
adapterSelection.on('select', function(c, r) {
panel.remove(panel.getComponent(0));
panel.doLayout();
if (r.data.type == 'dvb') var newPanel = new tvheadend.dvb_adapter(
r.data)
else var newPanel = new tvheadend.v4l_adapter(r.data)
if(r.data.type == 'dvb')
var newPanel = new tvheadend.dvb_adapter(r.data)
else
var newPanel = new tvheadend.v4l_adapter(r.data)
panel.add(newPanel);
panel.doLayout();
});
panel.add(newPanel);
panel.doLayout();
});
return panel;
return panel;
}
/**
*
*/
tvheadend.showTransportDetails = function(data)
{
html = '';
tvheadend.showTransportDetails = function(data) {
html = '';
html += '<div style="display:block;font-weight:bold;margin-bottom:4px">';
html += '<span style="float:left;width:100px">PID </span>';
html += '<span style="float:left;width:100px">Type</span>';
html += '<span>Details</span>';
html += '</div>';
for(i = 0; i < data.streams.length; i++) {
s = data.streams[i];
html += '<div style="display:block">';
html += '<span style="float:left;width:100px">' + s.pid + '</span>';
html += '<span style="float:left;width:100px">' + s.type + '</span>';
html += '<span>' + (s.details.length > 0 ? s.details : '&nbsp') + '</span>';
html += '<div style="display:block;font-weight:bold;margin-bottom:4px">';
html += '<span style="float:left;width:100px">PID </span>';
html += '<span style="float:left;width:100px">Type</span>';
html += '<span>Details</span>';
html += '</div>';
}
win = new Ext.Window({
title: 'Service details for ' + data.title,
layout: 'fit',
width: 400,
height: 400,
plain: true,
bodyStyle: 'padding: 5px',
html: html
});
win.show();
for (i = 0; i < data.streams.length; i++) {
s = data.streams[i];
html += '<div style="display:block">';
html += '<span style="float:left;width:100px">' + s.pid + '</span>';
html += '<span style="float:left;width:100px">' + s.type + '</span>';
html += '<span>' + (s.details.length > 0 ? s.details : '&nbsp')
+ '</span>';
html += '</div>';
}
win = new Ext.Window({
title : 'Service details for ' + data.title,
layout : 'fit',
width : 400,
height : 400,
plain : true,
bodyStyle : 'padding: 5px',
html : html
});
win.show();
}

View file

@ -1,217 +1,217 @@
/**
* Displays a help popup window
*/
tvheadend.help = function(title, pagename) {
Ext.Ajax.request({
url: 'docs/' + pagename,
success: function(result, request) {
Ext.Ajax.request({
url : 'docs/' + pagename,
success : function(result, request) {
var content = new Ext.Panel({
autoScroll:true,
border: false,
layout:'fit',
html: result.responseText
});
var content = new Ext.Panel({
autoScroll : true,
border : false,
layout : 'fit',
html : result.responseText
});
var win = new Ext.Window({
title: 'Help for ' + title,
layout: 'fit',
width: 900,
height: 400,
constrainHeader: true,
items: [content]
});
win.show();
var win = new Ext.Window({
title : 'Help for ' + title,
layout : 'fit',
width : 900,
height : 400,
constrainHeader : true,
items : [ content ]
});
win.show();
}});
}
});
}
/**
* Displays a mediaplayer using VLC plugin
*/
tvheadend.VLC = function(url) {
function randomString() {
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
var string_length = 8;
var randomstring = '';
for (var i=0; i<string_length; i++) {
var rnum = Math.floor(Math.random() * chars.length);
randomstring += chars.substring(rnum,rnum+1);
function randomString() {
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
var string_length = 8;
var randomstring = '';
for ( var i = 0; i < string_length; i++) {
var rnum = Math.floor(Math.random() * chars.length);
randomstring += chars.substring(rnum, rnum + 1);
}
return randomstring;
}
return randomstring;
}
var vlc = document.createElement('embed');
vlc.setAttribute('type', 'application/x-vlc-plugin');
vlc.setAttribute('pluginspage', 'http://www.videolan.org');
vlc.setAttribute('version', 'VideoLAN.VLCPlugin.2');
vlc.setAttribute('width', '100%');
vlc.setAttribute('height', '100%');
vlc.setAttribute('autoplay', 'no');
vlc.setAttribute('id', randomString());
var missingPlugin = document.createElement('div');
missingPlugin.style.display = 'none';
missingPlugin.style.padding = '5px';
var selectChannel = new Ext.form.ComboBox({
loadingText: 'Loading...',
width: 200,
displayField:'name',
store: tvheadend.channels,
mode: 'local',
editable: false,
triggerAction: 'all',
emptyText: 'Select channel...'
});
selectChannel.on('select', function(c, r) {
var streamurl = 'stream/channelid/' + r.data.chid;
var playlisturl = 'playlist/channelid/' + r.data.chid;
var vlc = document.createElement('embed');
vlc.setAttribute('type', 'application/x-vlc-plugin');
vlc.setAttribute('pluginspage', 'http://www.videolan.org');
vlc.setAttribute('version', 'VideoLAN.VLCPlugin.2');
vlc.setAttribute('width', '100%');
vlc.setAttribute('height', '100%');
vlc.setAttribute('autoplay', 'no');
vlc.setAttribute('id', randomString());
// if the player was initialised, but not yet shown, make it visible
if (vlc.playlist && (vlc.style.display == 'none'))
vlc.style.display = 'block';
// var missingPlugin = document.createElement('div');
// missingPlugin.style.display = 'none';
// missingPlugin.style.padding = '5px';
if(!vlc.playlist || vlc.playlist == 'undefined') {
missingPlugin.innerHTML = '<p>Embedded player could not be started. <br> You are probably missing VLC Mozilla plugin for your browser.</p>';
missingPlugin.innerHTML += '<p><a href="' + playlisturl + '">M3U Playlist</a></p>';
missingPlugin.innerHTML += '<p><a href="' + streamurl + '">Direct URL</a></p>';
}
else {
vlc.playlist.stop();
vlc.playlist.items.clear();
vlc.playlist.add(streamurl);
vlc.playlist.playItem(0);
vlc.audio.volume = slider.getValue();
}
}
);
var slider = new Ext.Slider({
width: 135,
height: 20,
value: 90,
increment: 1,
minValue: 0,
maxValue: 100
});
var sliderLabel = new Ext.form.Label();
sliderLabel.setText("90%");
slider.addListener('change', function() {
if(vlc.playlist && vlc.playlist.isPlaying) {
vlc.audio.volume = slider.getValue();
sliderLabel.setText(vlc.audio.volume + '%');
} else {
sliderLabel.setText(slider.getValue() + '%');
}
});
var win = new Ext.Window({
title: 'VLC Player',
layout:'fit',
width: 507 + 14,
height: 384 + 56,
constrainHeader: true,
iconCls: 'eye',
resizable: true,
tbar: [
selectChannel,
'-',
{
iconCls: 'control_play',
tooltip: 'Play',
handler: function() {
if(vlc.playlist && vlc.playlist.items.count && !vlc.playlist.isPlaying) {
vlc.playlist.play();
}
}
},
{
iconCls: 'control_pause',
tooltip: 'Pause',
handler: function() {
if(vlc.playlist && vlc.playlist.items.count) {
vlc.playlist.togglePause();
}
}
},
{
iconCls: 'control_stop',
tooltip: 'Stop',
handler: function() {
if(vlc.playlist) {
vlc.playlist.stop();
}
}
},
'-',
{
iconCls: 'control_fullscreen',
tooltip: 'Fullscreen',
handler: function() {
if(vlc.playlist && vlc.playlist.isPlaying && (vlc.VersionInfo.substr(0,3) != '1.1')) {
vlc.video.toggleFullscreen();
}
else if (vlc.VersionInfo.substr(0,3) == '1.1') {
alert('Fullscreen mode is broken in VLC 1.1.x');
}
}
},
'-',
{
iconCls: 'control_volume',
tooltip: 'Volume',
disabled: true
},
],
items: [vlc, missingPlugin]
});
win.on('beforeShow', function() {
win.getTopToolbar().add(slider);
win.getTopToolbar().add(new Ext.Toolbar.Spacer());
win.getTopToolbar().add(new Ext.Toolbar.Spacer());
win.getTopToolbar().add(new Ext.Toolbar.Spacer());
win.getTopToolbar().add(sliderLabel);
var selectChannel = new Ext.form.ComboBox({
loadingText : 'Loading...',
width : 200,
displayField : 'name',
store : tvheadend.channels,
mode : 'local',
editable : false,
triggerAction : 'all',
emptyText : 'Select channel...'
});
selectChannel.on('select', function(c, r) {
var streamurl = 'stream/channelid/' + r.data.chid;
var playlisturl = 'playlist/channelid/' + r.data.chid;
// check if vlc plugin wasn't initialised correctly
if(!vlc.playlist || (vlc.playlist == 'undefined')) {
vlc.style.display = 'none';
missingPlugin.innerHTML = '<p>Embedded player could not be started. <br> You are probably missing VLC Mozilla plugin for your browser.</p>';
if (url) {
var channelid = url.substr(url.lastIndexOf('/'));
var streamurl = 'stream/channelid/' + channelid;
var playlisturl = 'playlist/channelid/' + channelid;
missingPlugin.innerHTML += '<p><a href="' + playlisturl + '">M3U Playlist</a></p>';
missingPlugin.innerHTML += '<p><a href="' + streamurl + '">Direct URL</a></p>';
}
// if the player was initialised, but not yet shown, make it visible
if (vlc.playlist && (vlc.style.display == 'none'))
vlc.style.display = 'block';
missingPlugin.style.display = 'block';
}
else {
// check if the window was opened with an url-parameter
if (url) {
vlc.playlist.items.clear();
vlc.playlist.add(url);
vlc.playlist.playItem(0);
//enable yadif2x deinterlacer for vlc > 1.1
var point1 = vlc.VersionInfo.indexOf('.');
var point2 = vlc.VersionInfo.indexOf('.', point1+1);
var majVersion = vlc.VersionInfo.substring(0,point1);
var minVersion = vlc.VersionInfo.substring(point1+1,point2);
if ((majVersion >= 1) && (minVersion >= 1))
vlc.video.deinterlace.enable("yadif2x");
}
}
});
if (!vlc.playlist || vlc.playlist == 'undefined') {
// missingPlugin.innerHTML = '<p>Embedded player could not be started. <br> You are probably missing VLC Mozilla plugin for your browser.</p>';
// missingPlugin.innerHTML += '<p><a href="' + playlisturl + '">M3U Playlist</a></p>';
// missingPlugin.innerHTML += '<p><a href="' + streamurl + '">Direct URL</a></p>';
}
else {
vlc.playlist.stop();
vlc.playlist.items.clear();
vlc.playlist.add(streamurl);
vlc.playlist.playItem(0);
vlc.audio.volume = slider.getValue();
}
});
win.show();
var slider = new Ext.Slider({
width : 135,
height : 20,
value : 90,
increment : 1,
minValue : 0,
maxValue : 100
});
var sliderLabel = new Ext.form.Label();
sliderLabel.setText("90%");
slider.addListener('change', function() {
if (vlc.playlist && vlc.playlist.isPlaying) {
vlc.audio.volume = slider.getValue();
sliderLabel.setText(vlc.audio.volume + '%');
}
else {
sliderLabel.setText(slider.getValue() + '%');
}
});
var win = new Ext.Window({
title : 'VLC Player',
layout : 'fit',
width : 507 + 14,
height : 384 + 56,
constrainHeader : true,
iconCls : 'eye',
resizable : true,
tbar : [
selectChannel,
'-',
{
iconCls : 'control_play',
tooltip : 'Play',
handler : function() {
if (vlc.playlist && vlc.playlist.items.count
&& !vlc.playlist.isPlaying) {
vlc.playlist.play();
}
}
},
{
iconCls : 'control_pause',
tooltip : 'Pause',
handler : function() {
if (vlc.playlist && vlc.playlist.items.count) {
vlc.playlist.togglePause();
}
}
},
{
iconCls : 'control_stop',
tooltip : 'Stop',
handler : function() {
if (vlc.playlist) {
vlc.playlist.stop();
}
}
},
'-',
{
iconCls : 'control_fullscreen',
tooltip : 'Fullscreen',
handler : function() {
if (vlc.playlist && vlc.playlist.isPlaying
&& (vlc.VersionInfo.substr(0, 3) != '1.1')) {
vlc.video.toggleFullscreen();
}
else if (vlc.VersionInfo.substr(0, 3) == '1.1') {
alert('Fullscreen mode is broken in VLC 1.1.x');
}
}
}, '-', {
iconCls : 'control_volume',
tooltip : 'Volume',
disabled : true
}, ],
items : [ vlc /*, missingPlugin */]
});
win.on('beforeShow', function() {
win.getTopToolbar().add(slider);
win.getTopToolbar().add(new Ext.Toolbar.Spacer());
win.getTopToolbar().add(new Ext.Toolbar.Spacer());
win.getTopToolbar().add(new Ext.Toolbar.Spacer());
win.getTopToolbar().add(sliderLabel);
// check if vlc plugin wasn't initialised correctly
if (!vlc.playlist || (vlc.playlist == 'undefined')) {
vlc.style.display = 'none';
// missingPlugin.innerHTML = '<p>Embedded player could not be started. <br> You are probably missing VLC Mozilla plugin for your browser.</p>';
if (url) {
var channelid = url.substr(url.lastIndexOf('/'));
var streamurl = 'stream/channelid/' + channelid;
var playlisturl = 'playlist/channelid/' + channelid;
// missingPlugin.innerHTML += '<p><a href="' + playlisturl + '">M3U Playlist</a></p>';
// missingPlugin.innerHTML += '<p><a href="' + streamurl + '">Direct URL</a></p>';
}
// missingPlugin.style.display = 'block';
}
else {
// check if the window was opened with an url-parameter
if (url) {
vlc.playlist.items.clear();
vlc.playlist.add(url);
vlc.playlist.playItem(0);
//enable yadif2x deinterlacer for vlc > 1.1
var point1 = vlc.VersionInfo.indexOf('.');
var point2 = vlc.VersionInfo.indexOf('.', point1 + 1);
var majVersion = vlc.VersionInfo.substring(0, point1);
var minVersion = vlc.VersionInfo.substring(point1 + 1, point2);
if ((majVersion >= 1) && (minVersion >= 1))
vlc.video.deinterlace.enable("yadif2x");
}
}
});
win.show();
};
/**
@ -222,134 +222,132 @@ tvheadend.VLC = function(url) {
*/
function accessUpdate(o) {
if(o.dvr == true && tvheadend.dvrpanel == null) {
tvheadend.dvrpanel = new tvheadend.dvr;
tvheadend.rootTabPanel.add(tvheadend.dvrpanel);
}
if (o.dvr == true && tvheadend.dvrpanel == null) {
tvheadend.dvrpanel = new tvheadend.dvr;
tvheadend.rootTabPanel.add(tvheadend.dvrpanel);
}
if(o.admin == true && tvheadend.confpanel == null) {
tvheadend.confpanel = new Ext.TabPanel({
activeTab:0,
autoScroll:true,
title: 'Configuration',
iconCls: 'wrench',
items: [
new tvheadend.miscconf,
new tvheadend.chconf,
new tvheadend.epggrab,
new tvheadend.cteditor,
new tvheadend.dvrsettings,
new tvheadend.tvadapters,
new tvheadend.iptv,
new tvheadend.acleditor,
new tvheadend.cwceditor,
new tvheadend.capmteditor]
});
tvheadend.rootTabPanel.add(tvheadend.confpanel);
}
if (o.admin == true && tvheadend.confpanel == null) {
tvheadend.confpanel = new Ext.TabPanel({
activeTab : 0,
autoScroll : true,
title : 'Configuration',
iconCls : 'wrench',
items : [ new tvheadend.miscconf, new tvheadend.chconf,
new tvheadend.epggrab, new tvheadend.cteditor,
new tvheadend.dvrsettings, new tvheadend.tvadapters,
new tvheadend.iptv, new tvheadend.acleditor,
new tvheadend.cwceditor, new tvheadend.capmteditor ]
});
tvheadend.rootTabPanel.add(tvheadend.confpanel);
}
if(tvheadend.aboutPanel == null) {
tvheadend.aboutPanel = new Ext.Panel({
border: false,
layout:'fit',
title:'About',
iconCls:'info',
autoLoad: 'about.html'
});
tvheadend.rootTabPanel.add(tvheadend.aboutPanel);
}
if (tvheadend.aboutPanel == null) {
tvheadend.aboutPanel = new Ext.Panel({
border : false,
layout : 'fit',
title : 'About',
iconCls : 'info',
autoLoad : 'about.html'
});
tvheadend.rootTabPanel.add(tvheadend.aboutPanel);
}
tvheadend.rootTabPanel.doLayout();
tvheadend.rootTabPanel.doLayout();
}
/**
*
*/
function setServerIpPort(o) {
tvheadend.serverIp = o.ip;
tvheadend.serverPort = o.port;
}
function makeRTSPprefix() {
return 'rtsp://' + tvheadend.serverIp + ':' + tvheadend.serverPort + '/';
}
/**
*
*/
tvheadend.log = function(msg, style) {
s = style ? '<div style="' + style + '">' : '<div>'
sl = Ext.get('systemlog');
e = Ext.DomHelper.append(sl, s + '<pre>' + msg + '</pre></div>');
e.scrollIntoView('systemlog');
}
/**
*
*/
// create application
function setServerIpPort(o) {
tvheadend.serverIp = o.ip;
tvheadend.serverPort = o.port;
}
function makeRTSPprefix() {
return 'rtsp://' + tvheadend.serverIp + ':' + tvheadend.serverPort + '/';
}
/**
*
*/
tvheadend.log = function(msg, style) {
s = style ? '<div style="' + style + '">' : '<div>'
sl = Ext.get('systemlog');
e = Ext.DomHelper.append(sl, s + '<pre>' + msg + '</pre></div>');
e.scrollIntoView('systemlog');
}
/**
*
*/
//create application
tvheadend.app = function() {
// public space
return {
// public methods
init: function() {
tvheadend.rootTabPanel = new Ext.TabPanel({
region:'center',
activeTab:0,
items:[new tvheadend.epg]
});
// public space
return {
var viewport = new Ext.Viewport({
layout:'border',
items:[
{
region:'south',
contentEl: 'systemlog',
split:true,
autoScroll:true,
height: 150,
minSize: 100,
maxSize: 400,
collapsible: true,
collapsed: true,
title:'System log',
margins:'0 0 0 0',
tools:[{
id:'gear',
qtip: 'Enable debug output',
handler: function(event, toolEl, panel){
Ext.Ajax.request({
url: 'comet/debug',
params : {
boxid: tvheadend.boxid
}
});
}
}]
},tvheadend.rootTabPanel
]
});
// public methods
init : function() {
var header = new Ext.Panel({
split: true,
region: 'north',
height : 45,
boxMaxHeight : 45,
boxMinHeight : 45,
border: false,
html: '<div id="header"><h1>Tvheadend Web-Panel</h1></div>'
});
tvheadend.rootTabPanel = new Ext.TabPanel({
region : 'center',
activeTab : 0,
items : [ new tvheadend.epg ]
});
tvheadend.comet.on('accessUpdate', accessUpdate);
var viewport = new Ext.Viewport({
layout : 'border',
items : [{
region : 'south',
contentEl : 'systemlog',
split : true,
autoScroll : true,
height : 150,
minSize : 100,
maxSize : 400,
collapsible : true,
collapsed : true,
title : 'System log',
margins : '0 0 0 0',
tools : [ {
id : 'gear',
qtip : 'Enable debug output',
handler : function(event, toolEl, panel) {
Ext.Ajax.request({
url : 'comet/debug',
params : {
boxid : tvheadend.boxid
}
});
}
} ]
}, tvheadend.rootTabPanel, header ]
});
tvheadend.comet.on('setServerIpPort', setServerIpPort);
tvheadend.comet.on('accessUpdate', accessUpdate);
tvheadend.comet.on('logmessage', function(m) {
tvheadend.log(m.logtxt);
});
tvheadend.comet.on('setServerIpPort', setServerIpPort);
new tvheadend.cometPoller;
tvheadend.comet.on('logmessage', function(m) {
tvheadend.log(m.logtxt);
});
Ext.QuickTips.init();
}
};
new tvheadend.cometPoller;
Ext.QuickTips.init();
}
};
}(); // end of app

View file

@ -1,333 +1,321 @@
/**
* V4L adapter details
*/
tvheadend.v4l_adapter_general = function(adapterData) {
adapterId = adapterData.identifier;
adapterId = adapterData.identifier;
/* Conf panel */
/* Conf panel */
var confreader = new Ext.data.JsonReader({
root: 'v4ladapters'
}, ['name', 'logging']);
var confreader = new Ext.data.JsonReader({
root : 'v4ladapters'
}, [ 'name', 'logging' ]);
function saveConfForm () {
confform.getForm().submit({
url:'v4l/adapter/' + adapterId,
params:{'op':'save'},
waitMsg:'Saving Data...'
});
}
var items = [
{
fieldLabel: 'Adapter name',
name: 'name',
width: 250
},
new Ext.form.Checkbox({
fieldLabel: 'Detailed logging',
name: 'logging'
})
];
var confform = new Ext.FormPanel({
title:'Adapter configuration',
columnWidth: .40,
frame:true,
border:true,
disabled:true,
style:'margin:10px',
bodyStyle:'padding:5px',
labelAlign: 'right',
labelWidth: 110,
waitMsgTarget: true,
reader: confreader,
defaultType: 'textfield',
items: items,
buttons: [{
text: 'Save',
handler: saveConfForm
}]
});
confform.getForm().load({
url:'v4l/adapter/' + adapterId,
params:{'op':'load'},
success:function(form, action) {
confform.enable();
function saveConfForm() {
confform.getForm().submit({
url : 'v4l/adapter/' + adapterId,
params : {
'op' : 'save'
},
waitMsg : 'Saving Data...'
});
}
});
/**
* Information / capabilities panel
*/
var infoTemplate = new Ext.XTemplate(
'<h2 style="font-size: 150%">Hardware</h2>' +
'<h3>Device path:</h3>{path}' +
'<h3>Device name:</h3>{devicename}' +
'<h2 style="font-size: 150%">Status</h2>' +
'<h3>Currently tuned to:</h3>{currentMux}&nbsp'
);
var items = [ {
fieldLabel : 'Adapter name',
name : 'name',
width : 250
}, new Ext.form.Checkbox({
fieldLabel : 'Detailed logging',
name : 'logging'
}) ];
var infoPanel = new Ext.Panel({
title:'Information and capabilities',
columnWidth: .35,
frame:true,
border:true,
style:'margin:10px',
bodyStyle:'padding:5px',
html: infoTemplate.applyTemplate(adapterData)
});
var confform = new Ext.FormPanel({
title : 'Adapter configuration',
columnWidth : .40,
frame : true,
border : true,
disabled : true,
style : 'margin:10px',
bodyStyle : 'padding:5px',
labelAlign : 'right',
labelWidth : 110,
waitMsgTarget : true,
reader : confreader,
defaultType : 'textfield',
items : items,
buttons : [ {
text : 'Save',
handler : saveConfForm
} ]
});
/**
* Main adapter panel
*/
var panel = new Ext.Panel({
title: 'General',
layout:'column',
items: [confform, infoPanel]
});
confform.getForm().load({
url : 'v4l/adapter/' + adapterId,
params : {
'op' : 'load'
},
success : function(form, action) {
confform.enable();
}
});
/**
* Information / capabilities panel
*/
/**
* Subscribe and react on updates for this adapter
*/
tvheadend.tvAdapterStore.on('update', function(s, r, o) {
if(r.data.identifier != adapterId)
return;
infoTemplate.overwrite(infoPanel.body, r.data);
});
var infoTemplate = new Ext.XTemplate(
'<h2 style="font-size: 150%">Hardware</h2>'
+ '<h3>Device path:</h3>{path}' + '<h3>Device name:</h3>{devicename}'
+ '<h2 style="font-size: 150%">Status</h2>'
+ '<h3>Currently tuned to:</h3>{currentMux}&nbsp');
return panel;
var infoPanel = new Ext.Panel({
title : 'Information and capabilities',
columnWidth : .35,
frame : true,
border : true,
style : 'margin:10px',
bodyStyle : 'padding:5px',
html : infoTemplate.applyTemplate(adapterData)
});
/**
* Main adapter panel
*/
var panel = new Ext.Panel({
title : 'General',
layout : 'column',
items : [ confform, infoPanel ]
});
/**
* Subscribe and react on updates for this adapter
*/
tvheadend.tvAdapterStore.on('update', function(s, r, o) {
if (r.data.identifier != adapterId) return;
infoTemplate.overwrite(infoPanel.body, r.data);
});
return panel;
}
/**
* V4L service grid
*/
tvheadend.v4l_services = function(adapterId) {
var fm = Ext.form;
var enabledColumn = new Ext.grid.CheckColumn({
header: "Enabled",
dataIndex: 'enabled',
width: 45
});
var fm = Ext.form;
var cm = new Ext.grid.ColumnModel([
enabledColumn,
{
header: "Channel name",
dataIndex: 'channelname',
width: 150,
renderer: function(value, metadata, record, row, col, store) {
return value ? value :
'<span class="tvh-grid-unset">Unmapped</span>';
},
editor: new fm.ComboBox({
store: tvheadend.channels,
allowBlank: true,
typeAhead: true,
minChars: 2,
lazyRender: true,
triggerAction: 'all',
mode: 'local',
displayField:'name'
})
},
{
header: "Frequency",
dataIndex: 'frequency',
width: 60,
editor: new fm.NumberField({
minValue: 10000,
maxValue: 1000000000
})
var enabledColumn = new Ext.grid.CheckColumn({
header : "Enabled",
dataIndex : 'enabled',
width : 45
});
var cm = new Ext.grid.ColumnModel([ enabledColumn, {
header : "Channel name",
dataIndex : 'channelname',
width : 150,
renderer : function(value, metadata, record, row, col, store) {
return value ? value : '<span class="tvh-grid-unset">Unmapped</span>';
},
editor : new fm.ComboBox({
store : tvheadend.channels,
allowBlank : true,
typeAhead : true,
minChars : 2,
lazyRender : true,
triggerAction : 'all',
mode : 'local',
displayField : 'name'
})
}, {
header : "Frequency",
dataIndex : 'frequency',
width : 60,
editor : new fm.NumberField({
minValue : 10000,
maxValue : 1000000000
})
} ]);
cm.defaultSortable = true;
var rec = Ext.data.Record.create([ 'id', 'enabled', 'channelname',
'frequency' ]);
var store = new Ext.data.JsonStore({
root : 'entries',
fields : rec,
url : "v4l/services/" + adapterId,
autoLoad : true,
id : 'id',
baseParams : {
op : "get"
},
listeners : {
'update' : function(s, r, o) {
d = s.getModifiedRecords().length == 0
saveBtn.setDisabled(d);
rejectBtn.setDisabled(d);
}
}
});
function addRecord() {
Ext.Ajax.request({
url : "v4l/services/" + adapterId,
params : {
op : "create"
},
failure : function(response, options) {
Ext.MessageBox.alert('Server Error',
'Unable to generate new record');
},
success : function(response, options) {
var responseData = Ext.util.JSON.decode(response.responseText);
var p = new rec(responseData, responseData.id);
grid.stopEditing();
store.insert(0, p);
grid.startEditing(0, 0);
}
})
}
]);
;
cm.defaultSortable = true;
function delSelected() {
var selectedKeys = grid.selModel.selections.keys;
if (selectedKeys.length > 0) {
Ext.MessageBox.confirm('Message',
'Do you really want to delete selection?', deleteRecord);
}
else {
Ext.MessageBox.alert('Message',
'Please select at least one item to delete');
}
}
;
var rec = Ext.data.Record.create([
'id', 'enabled', 'channelname', 'frequency'
]);
function deleteRecord(btn) {
if (btn == 'yes') {
var selectedKeys = grid.selModel.selections.keys;
var store = new Ext.data.JsonStore({
root: 'entries',
fields: rec,
url: "v4l/services/" + adapterId,
autoLoad: true,
id: 'id',
baseParams: {op: "get"},
listeners: {
'update': function(s, r, o) {
Ext.Ajax.request({
url : "v4l/services/" + adapterId,
params : {
op : "delete",
entries : Ext.encode(selectedKeys)
},
failure : function(response, options) {
Ext.MessageBox.alert('Server Error', 'Unable to delete');
},
success : function(response, options) {
store.reload();
}
})
}
}
function saveChanges() {
var mr = store.getModifiedRecords();
var out = new Array();
for ( var x = 0; x < mr.length; x++) {
v = mr[x].getChanges();
out[x] = v;
out[x].id = mr[x].id;
}
Ext.Ajax.request({
url : "v4l/services/" + adapterId,
params : {
op : "update",
entries : Ext.encode(out)
},
success : function(response, options) {
store.commitChanges();
},
failure : function(response, options) {
Ext.MessageBox.alert('Message', response.statusText);
}
});
}
var delButton = new Ext.Toolbar.Button({
tooltip : 'Delete one or more selected rows',
iconCls : 'remove',
text : 'Delete selected services',
handler : delSelected,
disabled : true
});
var saveBtn = new Ext.Toolbar.Button({
tooltip : 'Save any changes made (Changed cells have red borders).',
iconCls : 'save',
text : "Save changes",
handler : saveChanges,
disabled : true
});
var rejectBtn = new Ext.Toolbar.Button({
tooltip : 'Revert any changes made (Changed cells have red borders).',
iconCls : 'undo',
text : "Revert changes",
handler : function() {
store.rejectChanges();
},
disabled : true
});
var selModel = new Ext.grid.RowSelectionModel({
singleSelect : false
});
var grid = new Ext.grid.EditorGridPanel({
stripeRows : true,
title : 'Services',
plugins : [ enabledColumn ],
store : store,
clicksToEdit : 2,
cm : cm,
viewConfig : {
forceFit : true
},
selModel : selModel,
tbar : [
{
tooltip : 'Create a new entry on the server. '
+ 'The new entry is initially disabled so it must be enabled '
+ 'before it start taking effect.',
iconCls : 'add',
text : 'Add service',
handler : addRecord
}, '-', delButton, '-', saveBtn, rejectBtn ]
});
store.on('update', function(s, r, o) {
d = s.getModifiedRecords().length == 0
saveBtn.setDisabled(d);
rejectBtn.setDisabled(d);
}
}
});
function addRecord() {
Ext.Ajax.request({
url: "v4l/services/" + adapterId,
params: {
op:"create"
},
failure:function(response,options){
Ext.MessageBox.alert('Server Error',
'Unable to generate new record');
},
success:function(response,options){
var responseData = Ext.util.JSON.decode(response.responseText);
var p = new rec(responseData, responseData.id);
grid.stopEditing();
store.insert(0, p);
grid.startEditing(0, 0);
}
})
};
function delSelected() {
var selectedKeys = grid.selModel.selections.keys;
if(selectedKeys.length > 0) {
Ext.MessageBox.confirm('Message',
'Do you really want to delete selection?',
deleteRecord);
} else {
Ext.MessageBox.alert('Message',
'Please select at least one item to delete');
}
};
function deleteRecord(btn) {
if(btn=='yes') {
var selectedKeys = grid.selModel.selections.keys;
Ext.Ajax.request({
url: "v4l/services/" + adapterId,
params: {
op:"delete",
entries:Ext.encode(selectedKeys)
},
failure:function(response,options) {
Ext.MessageBox.alert('Server Error','Unable to delete');
},
success:function(response,options) {
store.reload();
}
})
}
}
function saveChanges() {
var mr = store.getModifiedRecords();
var out = new Array();
for (var x = 0; x < mr.length; x++) {
v = mr[x].getChanges();
out[x] = v;
out[x].id = mr[x].id;
}
Ext.Ajax.request({
url: "v4l/services/" + adapterId,
params: {
op:"update",
entries:Ext.encode(out)
},
success:function(response,options) {
store.commitChanges();
},
failure:function(response,options) {
Ext.MessageBox.alert('Message',response.statusText);
}
});
}
var delButton = new Ext.Toolbar.Button({
tooltip: 'Delete one or more selected rows',
iconCls:'remove',
text: 'Delete selected services',
handler: delSelected,
disabled: true
});
selModel.on('selectionchange', function(self) {
delButton.setDisabled(self.getCount() == 0);
});
var saveBtn = new Ext.Toolbar.Button({
tooltip: 'Save any changes made (Changed cells have red borders).',
iconCls:'save',
text: "Save changes",
handler: saveChanges,
disabled: true
});
var rejectBtn = new Ext.Toolbar.Button({
tooltip: 'Revert any changes made (Changed cells have red borders).',
iconCls:'undo',
text: "Revert changes",
handler: function() {
store.rejectChanges();
},
disabled: true
});
var selModel = new Ext.grid.RowSelectionModel({
singleSelect:false
});
var grid = new Ext.grid.EditorGridPanel({
stripeRows: true,
title: 'Services',
plugins: [enabledColumn],
store: store,
clicksToEdit: 2,
cm: cm,
viewConfig: {forceFit:true},
selModel: selModel,
tbar: [{
tooltip: 'Create a new entry on the server. '+
'The new entry is initially disabled so it must be enabled '+
'before it start taking effect.',
iconCls:'add',
text: 'Add service',
handler: addRecord
}, '-', delButton, '-', saveBtn, rejectBtn]
});
store.on('update', function(s, r, o) {
d = s.getModifiedRecords().length == 0
saveBtn.setDisabled(d);
rejectBtn.setDisabled(d);
});
selModel.on('selectionchange', function(self) {
delButton.setDisabled(self.getCount() == 0);
});
return grid;
return grid;
}
/**
*
*/
tvheadend.v4l_adapter = function(data)
{
var panel = new Ext.TabPanel({
border: false,
activeTab:0,
autoScroll:true,
items: [
new tvheadend.v4l_adapter_general(data),
new tvheadend.v4l_services(data.identifier)
]
});
return panel;
tvheadend.v4l_adapter = function(data) {
var panel = new Ext.TabPanel({
border : false,
activeTab : 0,
autoScroll : true,
items : [ new tvheadend.v4l_adapter_general(data),
new tvheadend.v4l_services(data.identifier) ]
});
return panel;
}

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

View file

@ -1,3 +1,6 @@
2006-11-21 jvs:
ext-all.css contains all of the other css files combined and stripped of comments (except themes).
2010-03-16 jwr:
The CSS file, yourtheme.css, is an exact copy of xtheme-blue.css. Feel free to edit the images inside the yourtheme image directory to build your custom theme--just remember to update your background-image file paths in yourtheme.css.
2006-11-21 jvs:
ext-all.css contains all of the other css files combined and stripped of comments (except themes).

View file

@ -1,111 +0,0 @@
/*
* Ext JS Library 2.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
/*
Creates rounded, raised boxes like on the Ext website - the markup isn't pretty:
<div class="x-box-blue">
<div class="x-box-tl"><div class="x-box-tr"><div class="x-box-tc"></div></div></div>
<div class="x-box-ml"><div class="x-box-mr"><div class="x-box-mc">
<h3>YOUR TITLE HERE (optional)</h3>
<div>YOUR CONTENT HERE</div>
</div></div></div>
<div class="x-box-bl"><div class="x-box-br"><div class="x-box-bc"></div></div></div>
</div>
*/
.x-box-tl {
background: transparent url(../images/default/box/corners.gif) no-repeat 0 0;
zoom:1;
}
.x-box-tc {
height: 8px;
background: transparent url(../images/default/box/tb.gif) repeat-x 0 0;
overflow: hidden;
}
.x-box-tr {
background: transparent url(../images/default/box/corners.gif) no-repeat right -8px;
}
.x-box-ml {
background: transparent url(../images/default/box/l.gif) repeat-y 0;
padding-left: 4px;
overflow: hidden;
zoom:1;
}
.x-box-mc {
background: #eee url(../images/default/box/tb.gif) repeat-x 0 -16px;
padding: 4px 10px;
font-family: "Myriad Pro","Myriad Web","Tahoma","Helvetica","Arial",sans-serif;
color: #393939;
font-size: 12px;
}
.x-box-mc h3 {
font-size: 14px;
font-weight: bold;
margin: 0 0 4px 0;
zoom:1;
}
.x-box-mr {
background: transparent url(../images/default/box/r.gif) repeat-y right;
padding-right: 4px;
overflow: hidden;
}
.x-box-bl {
background: transparent url(../images/default/box/corners.gif) no-repeat 0 -16px;
zoom:1;
}
.x-box-bc {
background: transparent url(../images/default/box/tb.gif) repeat-x 0 -8px;
height: 8px;
overflow: hidden;
}
.x-box-br {
background: transparent url(../images/default/box/corners.gif) no-repeat right -24px;
}
.x-box-tl, .x-box-bl {
padding-left: 8px;
overflow: hidden;
}
.x-box-tr, .x-box-br {
padding-right: 8px;
overflow: hidden;
}
.x-box-blue .x-box-bl, .x-box-blue .x-box-br, .x-box-blue .x-box-tl, .x-box-blue .x-box-tr {
background-image: url(../images/default/box/corners-blue.gif);
}
.x-box-blue .x-box-bc, .x-box-blue .x-box-mc, .x-box-blue .x-box-tc {
background-image: url(../images/default/box/tb-blue.gif);
}
.x-box-blue .x-box-mc {
background-color: #c3daf9;
}
.x-box-blue .x-box-mc h3 {
color: #17385b;
}
.x-box-blue .x-box-ml {
background-image: url(../images/default/box/l-blue.gif);
}
.x-box-blue .x-box-mr {
background-image: url(../images/default/box/r-blue.gif);
}

View file

@ -1,161 +0,0 @@
/*
* Ext JS Library 2.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
.x-btn{
font:normal 11px tahoma, verdana, helvetica;
cursor:pointer;
white-space: nowrap;
}
.x-btn button{
border:0 none;
background:transparent;
font:normal 11px tahoma,verdana,helvetica;
padding-left:3px;
padding-right:3px;
cursor:pointer;
margin:0;
overflow:visible;
width:auto;
-moz-outline:0 none;
outline:0 none;
}
* html .ext-ie .x-btn button {
width:1px;
}
.ext-gecko .x-btn button {
padding-left:0;
padding-right:0;
}
.ext-ie .x-btn button {
padding-top:2px;
}
/*
Predefined css class for buttons with only icon. Add this class (x-btn-icon) and a class with a background-image
to your button for a button with just an icon.
e.g.
.my-class .x-btn-text { background-image: url(foo.gif); }
*/
.x-btn-icon .x-btn-center .x-btn-text{
background-position: center;
background-repeat: no-repeat;
height: 16px;
width: 16px;
cursor:pointer;
white-space: nowrap;
padding:0;
}
.x-btn-icon .x-btn-center{
padding:1px;
}
.x-btn em {
font-style:normal;
font-weight:normal;
}
/*
Button class for icon and text. Add this class (x-btn-text-icon) and a class with a background-image
to your button for both text and icon.
*/
.x-btn-text-icon .x-btn-center .x-btn-text{
background-position: 0 2px;
background-repeat: no-repeat;
padding-left:18px;
padding-top:3px;
padding-bottom:2px;
padding-right:0;
}
.ext-gecko3 .x-btn-text-icon .x-btn-center .x-btn-text {
padding-top:2px;
}
.x-btn-left, .x-btn-right{
font-size:1px;
line-height:1px;
}
.x-btn-left{
width:3px;
height:21px;
background:url(../images/default/button/btn-sprite.gif) no-repeat 0 0;
}
.x-btn-right{
width:3px;
height:21px;
background:url(../images/default/button/btn-sprite.gif) no-repeat 0 -21px;
}
.x-btn-left i, .x-btn-right i{
display:block;
width:3px;
overflow:hidden;
font-size:1px;
line-height:1px;
}
.x-btn-center{
background:url(../images/default/button/btn-sprite.gif) repeat-x 0 -42px;
vertical-align: middle;
text-align:center;
padding:0 5px;
cursor:pointer;
white-space:nowrap;
}
.x-btn-over .x-btn-left{
background-position:0 -63px;
}
.x-btn-over .x-btn-right{
background-position:0 -84px;
}
.x-btn-over .x-btn-center{
background-position:0 -105px;
}
.x-btn-click .x-btn-center, .x-btn-menu-active .x-btn-center{
background-position:0 -126px;
}
.x-btn-disabled *{
color:gray !important;
cursor:default !important;
}
.x-btn-menu-text-wrap .x-btn-center {
padding:0 3px;
}
.ext-gecko .x-btn-menu-text-wrap .x-btn-center {
padding:0 1px;
}
.x-btn-menu-arrow-wrap .x-btn-center {
padding:0;
}
.x-btn-menu-arrow-wrap .x-btn-center button {
width:12px !important;
height:21px;
padding:0 !important;
display:block;
background:transparent url(../images/default/button/btn-arrow.gif) no-repeat left 3px;
}
.x-btn-with-menu .x-btn-center {
padding-right:2px !important;
}
.x-btn-with-menu .x-btn-center em {
display:block;
background:transparent url(../images/default/toolbar/btn-arrow.gif) no-repeat right 0;
padding-right:10px;
}
.x-btn-text-icon .x-btn-with-menu .x-btn-center em {
display:block;
background:transparent url(../images/default/toolbar/btn-arrow.gif) no-repeat right 3px;
padding-right:10px;
}
/* Toggle button styles */
.x-btn-pressed .x-btn-left{
background: url(../images/default/button/btn-sprite.gif) no-repeat 0 -63px;
}
.x-btn-pressed .x-btn-right{
background: url(../images/default/button/btn-sprite.gif) no-repeat 0 -84px;
}
.x-btn-pressed .x-btn-center{
background: url(../images/default/button/btn-sprite.gif) repeat-x 0 -126px;
}

View file

@ -1,55 +0,0 @@
/*
* Ext JS Library 2.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
.x-combo-list {
border:1px solid #98c0f4;
background:#ddecfe;
zoom:1;
overflow:hidden;
}
.x-combo-list-inner {
overflow:auto;
background:white;
position:relative; /* for calculating scroll offsets */
zoom:1;
overflow-x:hidden;
}
.x-combo-list-hd {
font:bold 11px tahoma, arial, helvetica, sans-serif;
color:#15428b;
background-image: url(../images/default/layout/panel-title-light-bg.gif);
border-bottom:1px solid #98c0f4;
padding:3px;
}
.x-resizable-pinned .x-combo-list-inner {
border-bottom:1px solid #98c0f4;
}
.x-combo-list-item {
font:normal 12px tahoma, arial, helvetica, sans-serif;
padding:2px;
border:1px solid #fff;
white-space: nowrap;
overflow:hidden;
text-overflow: ellipsis;
}
.x-combo-list .x-combo-selected{
border:1px dotted #a3bae9 !important;
background:#DFE8F6;
cursor:pointer;
}
.x-combo-noedit{
cursor:pointer;
}
.x-combo-list .x-toolbar {
border-top:1px solid #98c0f4;
border-bottom:0 none;
}
.x-combo-list-small .x-combo-list-item {
font:normal 11px tahoma, arial, helvetica, sans-serif;
}

View file

@ -1,75 +0,0 @@
/*
* Ext JS Library 2.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
.x-dd-drag-proxy{
position:absolute;
left:0;top:0;
visibility:hidden;
z-index:15000;
}
.x-dd-drag-ghost{
color: black;
font: normal 11px arial, helvetica, sans-serif;
-moz-opacity: 0.85;
opacity:.85;
filter: alpha(opacity=85);
border-top:1px solid #dddddd;
border-left:1px solid #dddddd;
border-right:1px solid #bbbbbb;
border-bottom:1px solid #bbbbbb;
padding:3px;
padding-left:20px;
background-color:white;
white-space:nowrap;
}
.x-dd-drag-repair .x-dd-drag-ghost{
-moz-opacity: 0.4;
opacity:.4;
filter: alpha(opacity=40);
border:0 none;
padding:0;
background-color:transparent;
}
.x-dd-drag-repair .x-dd-drop-icon{
visibility:hidden;
}
.x-dd-drop-icon{
position:absolute;
top:3px;
left:3px;
display:block;
width:16px;
height:16px;
background-color:transparent;
background-position: center;
background-repeat: no-repeat;
z-index:1;
}
.x-dd-drop-nodrop .x-dd-drop-icon{
background-image: url(../images/default/dd/drop-no.gif);
}
.x-dd-drop-ok .x-dd-drop-icon{
background-image: url(../images/default/dd/drop-yes.gif);
}
.x-dd-drop-ok-add .x-dd-drop-icon{
background-image: url(../images/default/dd/drop-add.gif);
}
.x-view-selector {
position:absolute;
left:0;
top:0;
width:0;
background:#c3daf9;
border:1px dotted #3399bb;
opacity: .5;
-moz-opacity: .5;
filter:alpha(opacity=50);
zoom:1;
}

View file

@ -1,37 +1,43 @@
/*
* Ext JS Library 2.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
#x-debug-browser .x-tree .x-tree-node a span {
color:#222297;
font-size:11px;
padding-top:2px;
font-family:"monotype","courier new",sans-serif;
line-height:18px;
}
#x-debug-browser .x-tree a i {
color:#FF4545;
font-style:normal;
}
#x-debug-browser .x-tree a em {
color:#999;
}
#x-debug-browser .x-tree .x-tree-node .x-tree-selected a span{
background:#c3daf9;
}
#x-debug-browser .x-tool-toggle {
background-position:0 -75px;
}
#x-debug-browser .x-tool-toggle-over {
background-position:-15px -75px;
}
#x-debug-browser.x-panel-collapsed .x-tool-toggle {
background-position:0 -60px;
}
#x-debug-browser.x-panel-collapsed .x-tool-toggle-over {
background-position:-15px -60px;
}#x-debug-browser .x-tree .x-tree-node a span {
color:#222297;
font-size:11px;
font-family:"monotype","courier new",sans-serif;
}
#x-debug-browser .x-tree a i {
color:#ff4545;
font-style:normal;
}
#x-debug-browser .x-tree a em {
color:#999;
}
#x-debug-browser .x-tree .x-tree-node .x-tree-selected a span{
background-color:#c3daf9;
}

View file

@ -1,69 +0,0 @@
/*
* Ext JS Library 2.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
.x-window-dlg .x-window-body {
border:0 none !important;
padding:5px 10px;
overflow:hidden !important;
}
.x-window-dlg .x-window-mc {
border:0 none !important;
}
.x-window-dlg .ext-mb-text,
.x-window-dlg .x-window-header-text {
font-size:12px;
}
.x-window-dlg .ext-mb-input {
margin-top:4px;
width:95%;
}
.x-window-dlg .ext-mb-textarea {
margin-top:4px;
font:normal 12px tahoma,arial,helvetica,sans-serif;
}
.x-window-dlg .x-progress-wrap {
margin-top:4px;
}
.ext-ie .x-window-dlg .x-progress-wrap {
margin-top:6px;
}
.x-window-dlg .x-msg-box-wait {
background: transparent url(../images/default/grid/loading.gif) no-repeat left;
display:block;
width:300px;
padding-left:18px;
line-height:18px;
}
.x-window-dlg .ext-mb-icon {
float:left;
width:47px;
height:32px;
}
.x-window-dlg .ext-mb-icon {
float:left;
width:47px;
height:32px;
}
.ext-ie .x-window-dlg .ext-mb-icon {
width:44px; /* 3px IE margin issue */
}
.x-window-dlg .ext-mb-info {
background:transparent url(../images/default/window/icon-info.gif) no-repeat top left;
}
.x-window-dlg .ext-mb-warning {
background:transparent url(../images/default/window/icon-warning.gif) no-repeat top left;
}
.x-window-dlg .ext-mb-question {
background:transparent url(../images/default/window/icon-question.gif) no-repeat top left;
}
.x-window-dlg .ext-mb-error {
background:transparent url(../images/default/window/icon-error.gif) no-repeat top left;
}
.ext-gecko2 .ext-mb-fix-cursor {
overflow:auto;
}

View file

@ -1,66 +0,0 @@
/*
* Ext JS Library 2.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
.x-html-editor-wrap {
border:1px solid #a9bfd3;
background:white;
}
.x-html-editor-tb .x-btn-text {
background:transparent url(../images/default/editor/tb-sprite.gif) no-repeat;
}
.x-html-editor-tb .x-edit-bold .x-btn-text {
background-position:0 0;
}
.x-html-editor-tb .x-edit-italic .x-btn-text {
background-position:-16px 0;
}
.x-html-editor-tb .x-edit-underline .x-btn-text {
background-position:-32px 0;
}
.x-html-editor-tb .x-edit-forecolor .x-btn-text {
background-position:-160px 0;
}
.x-html-editor-tb .x-edit-backcolor .x-btn-text {
background-position:-176px 0;
}
.x-html-editor-tb .x-edit-justifyleft .x-btn-text {
background-position:-112px 0;
}
.x-html-editor-tb .x-edit-justifycenter .x-btn-text {
background-position:-128px 0;
}
.x-html-editor-tb .x-edit-justifyright .x-btn-text {
background-position:-144px 0;
}
.x-html-editor-tb .x-edit-insertorderedlist .x-btn-text {
background-position:-80px 0;
}
.x-html-editor-tb .x-edit-insertunorderedlist .x-btn-text {
background-position:-96px 0;
}
.x-html-editor-tb .x-edit-increasefontsize .x-btn-text {
background-position:-48px 0;
}
.x-html-editor-tb .x-edit-decreasefontsize .x-btn-text {
background-position:-64px 0;
}
.x-html-editor-tb .x-edit-sourceedit .x-btn-text {
background-position:-192px 0;
}
.x-html-editor-tb .x-edit-createlink .x-btn-text {
background-position:-208px 0;
}
.x-html-editor-tip .x-tip-bd .x-tip-bd-inner {
padding:5px;
padding-bottom:1px;
}
.x-html-editor-tb .x-toolbar {
position:static !important;
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,142 +0,0 @@
/*
* Ext JS Library 2.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
.x-menu {
border: 1px solid #718bb7;
z-index: 15000;
zoom: 1;
background: #f0f0f0 url(../images/default/menu/menu.gif) repeat-y;
padding: 2px;
}
.x-menu a {
text-decoration: none !important;
}
.ext-ie .x-menu {
zoom:1;
overflow:hidden;
}
.x-menu-list{
background:transparent;
border:0 none;
}
.x-menu li{
line-height:100%;
}
.x-menu li.x-menu-sep-li{
font-size:1px;
line-height:1px;
}
.x-menu-list-item{
font:normal 11px tahoma,arial, sans-serif;
white-space: nowrap;
-moz-user-select: none;
-khtml-user-select: none;
display:block;
padding:1px;
}
.x-menu-item-arrow{
background:transparent url(../images/default/menu/menu-parent.gif) no-repeat right;
}
.x-menu-sep {
display:block;
font-size:1px;
line-height:1px;
margin: 2px 3px;
background-color:#e0e0e0;
border-bottom:1px solid #fff;
overflow:hidden;
}
.x-menu-focus {
position:absolute;
left:-1px;
top:-1px;
width:1px;
height:1px;
line-height:1px;
font-size:1px;
-moz-outline:0 none;
outline:0 none;
-moz-user-select: text;
-khtml-user-select: text;
overflow:hidden;
display:block;
}
.x-menu a.x-menu-item {
display:block;
line-height:16px;
padding:3px 21px 3px 3px;
white-space: nowrap;
text-decoration:none;
color:#222;
-moz-outline: 0 none;
outline: 0 none;
cursor:pointer;
}
.x-menu-item-active {
background: #ebf3fd url(../images/default/menu/item-over.gif) repeat-x left bottom;
border:1px solid #aaccf6;
padding: 0;
}
.x-menu-item-active a.x-menu-item {
color: #233d6d;
}
.x-menu-item-icon {
border: 0 none;
height: 16px;
padding: 0;
vertical-align: top;
width: 16px;
margin: 0 8px 0 0;
background-position:center;
}
.x-menu-check-item .x-menu-item-icon{
background: transparent url(../images/default/menu/unchecked.gif) no-repeat center;
}
.x-menu-item-checked .x-menu-item-icon{
background-image:url(../images/default/menu/checked.gif);
}
.x-menu-group-item .x-menu-item-icon{
background: transparent;
}
.x-menu-item-checked .x-menu-group-item .x-menu-item-icon{
background: transparent url(../images/default/menu/group-checked.gif) no-repeat center;
}
.x-menu-plain {
background:#fff !important;
}
.x-menu-date-item{
padding:0;
}
.x-menu .x-color-palette, .x-menu .x-date-picker{
margin-left: 26px;
margin-right:4px;
}
.x-menu .x-date-picker{
border:1px solid #a3bad9;
margin-top:2px;
margin-bottom:2px;
}
.x-menu-plain .x-color-palette, .x-menu-plain .x-date-picker{
margin: 0;
border: 0 none;
}
.x-date-menu {
padding:0 !important;
}
.x-cycle-menu .x-menu-item-checked {
border:1px dotted #a3bae9 !important;
background:#DFE8F6;
padding:0;
}

View file

@ -1,43 +0,0 @@
/*
* Ext JS Library 2.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
.x-progress-wrap {
border:1px solid #6593cf;
overflow:hidden;
}
.x-progress-inner {
height:18px;
background: #e0e8f3 url(../images/default/qtip/bg.gif) repeat-x;
position:relative;
}
.x-progress-bar {
height:18px;
float:left;
width:0;
background:#9CBFEE url( ../images/default/progress/progress-bg.gif ) repeat-x left center;
border-top:1px solid #D1E4FD;
border-bottom:1px solid #7FA9E4;
border-right:1px solid #7FA9E4;
}
.x-progress-text {
font-size:11px;
font-weight:bold;
color:#fff;
padding:1px 5px;
overflow:hidden;
position:absolute;
left:0;
text-align:center;
}
.x-progress-text-back {
color:#396095;
line-height:16px;
}
.ext-ie .x-progress-text-back {
line-height:15px;
}

View file

@ -1,134 +0,0 @@
/*
* Ext JS Library 2.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
.x-tip{
position: absolute;
top: 0;
left:0;
visibility: hidden;
z-index: 20000;
border:0 none;
}
.x-tip .x-tip-close{
background-image: url(../images/default/qtip/close.gif);
height: 15px;
float:right;
width: 15px;
margin:0 0 2px 2px;
cursor:pointer;
display:none;
}
.x-tip .x-tip-tc {
background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat 0 -62px;
padding-top:3px;
overflow:hidden;
zoom:1;
}
.x-tip .x-tip-tl {
background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat 0 0;
padding-left:6px;
overflow:hidden;
zoom:1;
}
.x-tip .x-tip-tr {
background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat right 0;
padding-right:6px;
overflow:hidden;
zoom:1;
}
.x-tip .x-tip-bc {
background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat 0 -121px;
height:3px;
overflow:hidden;
}
.x-tip .x-tip-bl {
background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat 0 -59px;
padding-left:6px;
zoom:1;
}
.x-tip .x-tip-br {
background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat right -59px;
padding-right:6px;
zoom:1;
}
.x-tip .x-tip-mc {
border:0 none;
font: normal 11px tahoma,arial,helvetica,sans-serif;
}
.x-tip .x-tip-ml {
background: #fff url(../images/default/qtip/tip-sprite.gif) no-repeat 0 -124px;
padding-left:6px;
zoom:1;
}
.x-tip .x-tip-mr {
background: transparent url(../images/default/qtip/tip-sprite.gif) no-repeat right -124px;
padding-right:6px;
zoom:1;
}
.ext-ie .x-tip .x-tip-header,.ext-ie .x-tip .x-tip-tc {
font-size:0;
line-height:0;
}
.x-tip .x-tip-header-text {
font: bold 11px tahoma,arial,helvetica,sans-serif;
padding:0;
margin:0 0 2px 0;
color:#444;
}
.x-tip .x-tip-body {
font: normal 11px tahoma,arial,helvetica,sans-serif;
margin:0 !important;
line-height:14px;
color:#444;
padding:0;
}
.x-tip .x-tip-body .loading-indicator {
margin:0;
}
.x-tip-draggable .x-tip-header,.x-tip-draggable .x-tip-header-text {
cursor:move;
}
.x-form-invalid-tip {
}
.x-form-invalid-tip .x-tip-tc {
background: url(../images/default/form/error-tip-corners.gif) repeat-x 0 -12px;
padding-top:6px;
}
.x-form-invalid-tip .x-tip-tl {
background-image: url(../images/default/form/error-tip-corners.gif);
}
.x-form-invalid-tip .x-tip-tr {
background-image: url(../images/default/form/error-tip-corners.gif);
}
.x-form-invalid-tip .x-tip-bc {
background: url(../images/default/form/error-tip-corners.gif) repeat-x 0 -18px;
height:6px;
}
.x-form-invalid-tip .x-tip-bl {
background: url(../images/default/form/error-tip-corners.gif) no-repeat 0 -6px;
}
.x-form-invalid-tip .x-tip-br {
background: url(../images/default/form/error-tip-corners.gif) no-repeat right -6px;
}
.x-form-invalid-tip .x-tip-ml {
background-image: url(../images/default/form/error-tip-corners.gif);
}
.x-form-invalid-tip .x-tip-mr {
background-image: url(../images/default/form/error-tip-corners.gif);
}
.x-form-invalid-tip .x-tip-body {
padding:2px;
}
.x-form-invalid-tip .x-tip-body {
padding-left:24px;
background:transparent url(../images/default/form/exclamation.gif) no-repeat 2px 2px;
}

View file

@ -1,9 +1,7 @@
/*
* Ext JS Library 2.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote,th,td{margin:0;padding:0;}img,body,html{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}ol,ul {list-style:none;}caption,th {text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;}q:before,q:after{content:'';}

View file

@ -1,61 +1,54 @@
/*
* Ext JS Library 2.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
.x-panel-noborder .x-panel-body-noborder {
border-width:0;
}
.x-panel-noborder .x-panel-header-noborder {
border-width:0;
border-bottom:1px solid #99bbe8;
}
.x-panel-noborder .x-panel-tbar-noborder .x-toolbar {
border-width:0;
border-bottom:1px solid #99bbe8;
}
.x-panel-noborder .x-panel-bbar-noborder .x-toolbar {
border-width:0;
border-top:1px solid #99bbe8;
}
.x-window-noborder .x-window-mc {
border-width:0;
}
.x-window-plain .x-window-body-noborder {
border-width:0;
}
.x-tab-panel-noborder .x-tab-panel-body-noborder {
border-width:0;
}
.x-tab-panel-noborder .x-tab-panel-header-noborder {
border-top-width:0;
border-left-width:0;
border-right-width:0;
}
.x-tab-panel-noborder .x-tab-panel-footer-noborder {
border-bottom-width:0;
border-left-width:0;
border-right-width:0;
}
.x-tab-panel-bbar-noborder .x-toolbar {
border-width:0;
border-top:1px solid #99bbe8;
}
.x-tab-panel-tbar-noborder .x-toolbar {
border-width:0;
border-bottom:1px solid #99bbe8;
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-panel-noborder .x-panel-body-noborder {
border-width:0;
}
.x-panel-noborder .x-panel-header-noborder {
border-width:0 0 1px;
border-style:solid;
}
.x-panel-noborder .x-panel-tbar-noborder .x-toolbar {
border-width:0 0 1px;
border-style:solid;
}
.x-panel-noborder .x-panel-bbar-noborder .x-toolbar {
border-width:1px 0 0 0;
border-style:solid;
}
.x-window-noborder .x-window-mc {
border-width:0;
}
.x-window-plain .x-window-body-noborder {
border-width:0;
}
.x-tab-panel-noborder .x-tab-panel-body-noborder {
border-width:0;
}
.x-tab-panel-noborder .x-tab-panel-header-noborder {
border-width: 0 0 1px 0;
}
.x-tab-panel-noborder .x-tab-panel-footer-noborder {
border-width: 1px 0 0 0;
}
.x-tab-panel-bbar-noborder .x-toolbar {
border-width: 1px 0 0 0;
border-style:solid;
}
.x-tab-panel-tbar-noborder .x-toolbar {
border-width:0 0 1px;
border-style:solid;
}

View file

@ -0,0 +1,80 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
/*
Creates rounded, raised boxes like on the Ext website - the markup isn't pretty:
<div class="x-box-blue">
<div class="x-box-tl"><div class="x-box-tr"><div class="x-box-tc"></div></div></div>
<div class="x-box-ml"><div class="x-box-mr"><div class="x-box-mc">
<h3>YOUR TITLE HERE (optional)</h3>
<div>YOUR CONTENT HERE</div>
</div></div></div>
<div class="x-box-bl"><div class="x-box-br"><div class="x-box-bc"></div></div></div>
</div>
*/
.x-box-tl {
background: transparent no-repeat 0 0;
zoom:1;
}
.x-box-tc {
height: 8px;
background: transparent repeat-x 0 0;
overflow: hidden;
}
.x-box-tr {
background: transparent no-repeat right -8px;
}
.x-box-ml {
background: transparent repeat-y 0;
padding-left: 4px;
overflow: hidden;
zoom:1;
}
.x-box-mc {
background: repeat-x 0 -16px;
padding: 4px 10px;
}
.x-box-mc h3 {
margin: 0 0 4px 0;
zoom:1;
}
.x-box-mr {
background: transparent repeat-y right;
padding-right: 4px;
overflow: hidden;
}
.x-box-bl {
background: transparent no-repeat 0 -16px;
zoom:1;
}
.x-box-bc {
background: transparent repeat-x 0 -8px;
height: 8px;
overflow: hidden;
}
.x-box-br {
background: transparent no-repeat right -24px;
}
.x-box-tl, .x-box-bl {
padding-left: 8px;
overflow: hidden;
}
.x-box-tr, .x-box-br {
padding-right: 8px;
overflow: hidden;
}

View file

@ -0,0 +1,445 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-btn{
cursor:pointer;
white-space: nowrap;
}
.x-btn button{
border:0 none;
background-color:transparent;
padding-left:3px;
padding-right:3px;
cursor:pointer;
margin:0;
overflow:visible;
width:auto;
-moz-outline:0 none;
outline:0 none;
}
* html .ext-ie .x-btn button {
width:1px;
}
.ext-gecko .x-btn button, .ext-webkit .x-btn button {
padding-left:0;
padding-right:0;
}
.ext-gecko .x-btn button::-moz-focus-inner {
padding:0;
}
.ext-ie .x-btn button {
padding-top:2px;
}
.x-btn td {
padding:0 !important;
}
.x-btn-text {
cursor:pointer;
white-space: nowrap;
padding:0;
}
/* icon placement and sizing styles */
/* Only text */
.x-btn-noicon .x-btn-small .x-btn-text{
height: 16px;
}
.x-btn-noicon .x-btn-medium .x-btn-text{
height: 24px;
}
.x-btn-noicon .x-btn-large .x-btn-text{
height: 32px;
}
/* Only icons */
.x-btn-icon .x-btn-text{
background-position: center;
background-repeat: no-repeat;
}
.x-btn-icon .x-btn-small .x-btn-text{
height: 16px;
width: 16px;
}
.x-btn-icon .x-btn-medium .x-btn-text{
height: 24px;
width: 24px;
}
.x-btn-icon .x-btn-large .x-btn-text{
height: 32px;
width: 32px;
}
/* Icons and text */
/* left */
.x-btn-text-icon .x-btn-icon-small-left .x-btn-text{
background-position: 0 center;
background-repeat: no-repeat;
padding-left:18px;
height:16px;
}
.x-btn-text-icon .x-btn-icon-medium-left .x-btn-text{
background-position: 0 center;
background-repeat: no-repeat;
padding-left:26px;
height:24px;
}
.x-btn-text-icon .x-btn-icon-large-left .x-btn-text{
background-position: 0 center;
background-repeat: no-repeat;
padding-left:34px;
height:32px;
}
/* top */
.x-btn-text-icon .x-btn-icon-small-top .x-btn-text{
background-position: center 0;
background-repeat: no-repeat;
padding-top:18px;
}
.x-btn-text-icon .x-btn-icon-medium-top .x-btn-text{
background-position: center 0;
background-repeat: no-repeat;
padding-top:26px;
}
.x-btn-text-icon .x-btn-icon-large-top .x-btn-text{
background-position: center 0;
background-repeat: no-repeat;
padding-top:34px;
}
/* right */
.x-btn-text-icon .x-btn-icon-small-right .x-btn-text{
background-position: right center;
background-repeat: no-repeat;
padding-right:18px;
height:16px;
}
.x-btn-text-icon .x-btn-icon-medium-right .x-btn-text{
background-position: right center;
background-repeat: no-repeat;
padding-right:26px;
height:24px;
}
.x-btn-text-icon .x-btn-icon-large-right .x-btn-text{
background-position: right center;
background-repeat: no-repeat;
padding-right:34px;
height:32px;
}
/* bottom */
.x-btn-text-icon .x-btn-icon-small-bottom .x-btn-text{
background-position: center bottom;
background-repeat: no-repeat;
padding-bottom:18px;
}
.x-btn-text-icon .x-btn-icon-medium-bottom .x-btn-text{
background-position: center bottom;
background-repeat: no-repeat;
padding-bottom:26px;
}
.x-btn-text-icon .x-btn-icon-large-bottom .x-btn-text{
background-position: center bottom;
background-repeat: no-repeat;
padding-bottom:34px;
}
/* background positioning */
.x-btn-tr i, .x-btn-tl i, .x-btn-mr i, .x-btn-ml i, .x-btn-br i, .x-btn-bl i{
font-size:1px;
line-height:1px;
width:3px;
display:block;
overflow:hidden;
}
.x-btn-tr i, .x-btn-tl i, .x-btn-br i, .x-btn-bl i{
height:3px;
}
.x-btn-tl{
width:3px;
height:3px;
background:no-repeat 0 0;
}
.x-btn-tr{
width:3px;
height:3px;
background:no-repeat -3px 0;
}
.x-btn-tc{
height:3px;
background:repeat-x 0 -6px;
}
.x-btn-ml{
width:3px;
background:no-repeat 0 -24px;
}
.x-btn-mr{
width:3px;
background:no-repeat -3px -24px;
}
.x-btn-mc{
background:repeat-x 0 -1096px;
vertical-align: middle;
text-align:center;
padding:0 5px;
cursor:pointer;
white-space:nowrap;
}
/* Fixes an issue with the button height */
.ext-strict .ext-ie6 .x-btn-mc, .ext-strict .ext-ie7 .x-btn-mc {
height: 100%;
}
.x-btn-bl{
width:3px;
height:3px;
background:no-repeat 0 -3px;
}
.x-btn-br{
width:3px;
height:3px;
background:no-repeat -3px -3px;
}
.x-btn-bc{
height:3px;
background:repeat-x 0 -15px;
}
.x-btn-over .x-btn-tl{
background-position: -6px 0;
}
.x-btn-over .x-btn-tr{
background-position: -9px 0;
}
.x-btn-over .x-btn-tc{
background-position: 0 -9px;
}
.x-btn-over .x-btn-ml{
background-position: -6px -24px;
}
.x-btn-over .x-btn-mr{
background-position: -9px -24px;
}
.x-btn-over .x-btn-mc{
background-position: 0 -2168px;
}
.x-btn-over .x-btn-bl{
background-position: -6px -3px;
}
.x-btn-over .x-btn-br{
background-position: -9px -3px;
}
.x-btn-over .x-btn-bc{
background-position: 0 -18px;
}
.x-btn-click .x-btn-tl, .x-btn-menu-active .x-btn-tl, .x-btn-pressed .x-btn-tl{
background-position: -12px 0;
}
.x-btn-click .x-btn-tr, .x-btn-menu-active .x-btn-tr, .x-btn-pressed .x-btn-tr{
background-position: -15px 0;
}
.x-btn-click .x-btn-tc, .x-btn-menu-active .x-btn-tc, .x-btn-pressed .x-btn-tc{
background-position: 0 -12px;
}
.x-btn-click .x-btn-ml, .x-btn-menu-active .x-btn-ml, .x-btn-pressed .x-btn-ml{
background-position: -12px -24px;
}
.x-btn-click .x-btn-mr, .x-btn-menu-active .x-btn-mr, .x-btn-pressed .x-btn-mr{
background-position: -15px -24px;
}
.x-btn-click .x-btn-mc, .x-btn-menu-active .x-btn-mc, .x-btn-pressed .x-btn-mc{
background-position: 0 -3240px;
}
.x-btn-click .x-btn-bl, .x-btn-menu-active .x-btn-bl, .x-btn-pressed .x-btn-bl{
background-position: -12px -3px;
}
.x-btn-click .x-btn-br, .x-btn-menu-active .x-btn-br, .x-btn-pressed .x-btn-br{
background-position: -15px -3px;
}
.x-btn-click .x-btn-bc, .x-btn-menu-active .x-btn-bc, .x-btn-pressed .x-btn-bc{
background-position: 0 -21px;
}
.x-btn-disabled *{
cursor:default !important;
}
/* With a menu arrow */
/* right */
.x-btn-mc em.x-btn-arrow {
display:block;
background:transparent no-repeat right center;
padding-right:10px;
}
.x-btn-mc em.x-btn-split {
display:block;
background:transparent no-repeat right center;
padding-right:14px;
}
/* bottom */
.x-btn-mc em.x-btn-arrow-bottom {
display:block;
background:transparent no-repeat center bottom;
padding-bottom:14px;
}
.x-btn-mc em.x-btn-split-bottom {
display:block;
background:transparent no-repeat center bottom;
padding-bottom:14px;
}
/* height adjustment class */
.x-btn-as-arrow .x-btn-mc em {
display:block;
background-color:transparent;
padding-bottom:14px;
}
/* groups */
.x-btn-group {
padding:1px;
}
.x-btn-group-header {
padding:2px;
text-align:center;
}
.x-btn-group-tc {
background: transparent repeat-x 0 0;
overflow:hidden;
}
.x-btn-group-tl {
background: transparent no-repeat 0 0;
padding-left:3px;
zoom:1;
}
.x-btn-group-tr {
background: transparent no-repeat right 0;
zoom:1;
padding-right:3px;
}
.x-btn-group-bc {
background: transparent repeat-x 0 bottom;
zoom:1;
}
.x-btn-group-bc .x-panel-footer {
zoom:1;
}
.x-btn-group-bl {
background: transparent no-repeat 0 bottom;
padding-left:3px;
zoom:1;
}
.x-btn-group-br {
background: transparent no-repeat right bottom;
padding-right:3px;
zoom:1;
}
.x-btn-group-mc {
border:0 none;
padding:1px 0 0 0;
margin:0;
}
.x-btn-group-mc .x-btn-group-body {
background-color:transparent;
border: 0 none;
}
.x-btn-group-ml {
background: transparent repeat-y 0 0;
padding-left:3px;
zoom:1;
}
.x-btn-group-mr {
background: transparent repeat-y right 0;
padding-right:3px;
zoom:1;
}
.x-btn-group-bc .x-btn-group-footer {
padding-bottom:6px;
}
.x-panel-nofooter .x-btn-group-bc {
height:3px;
font-size:0;
line-height:0;
}
.x-btn-group-bwrap {
overflow:hidden;
zoom:1;
}
.x-btn-group-body {
overflow:hidden;
zoom:1;
}
.x-btn-group-notitle .x-btn-group-tc {
background: transparent repeat-x 0 0;
overflow:hidden;
height:2px;
}

View file

@ -0,0 +1,45 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-combo-list {
border:1px solid;
zoom:1;
overflow:hidden;
}
.x-combo-list-inner {
overflow:auto;
position:relative; /* for calculating scroll offsets */
zoom:1;
overflow-x:hidden;
}
.x-combo-list-hd {
border-bottom:1px solid;
padding:3px;
}
.x-resizable-pinned .x-combo-list-inner {
border-bottom:1px solid;
}
.x-combo-list-item {
padding:2px;
border:1px solid;
white-space: nowrap;
overflow:hidden;
text-overflow: ellipsis;
}
.x-combo-list .x-combo-selected{
border:1px dotted !important;
cursor:pointer;
}
.x-combo-list .x-toolbar {
border-top:1px solid;
border-bottom:0 none;
}

View file

@ -1,314 +1,341 @@
/*
* Ext JS Library 2.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
.ext-el-mask {
z-index: 20000;
position: absolute;
top:0;
left:0;
-moz-opacity: 0.5;
opacity: .50;
filter: alpha(opacity=50);
background-color: #CCC;
width: 100%;
height: 100%;
zoom: 1;
}
.ext-el-mask-msg {
z-index: 20001;
position: absolute;
top: 0;
left: 0;
border:1px solid #6593cf;
background: #c3daf9 url(../images/default/box/tb-blue.gif) repeat-x 0 -16px;
padding:2px;
}
.ext-el-mask-msg div {
padding:5px 10px 5px 10px;
background: #eee;
border:1px solid #a3bad9;
color:#222;
font:normal 11px tahoma, arial, helvetica, sans-serif;
cursor:wait;
}
.ext-shim {
position:absolute;
visibility:hidden;
left:0;
top:0;
overflow:hidden;
}
.ext-ie .ext-shim {
filter: alpha(opacity=0);
}
.ext-ie6 .ext-shim {
margin-left: 5px;
margin-top: 3px;
}
.x-mask-loading div {
padding:5px 10px 5px 25px;
background: #fbfbfb url( '../images/default/grid/loading.gif' ) no-repeat 5px 5px;
line-height: 16px;
}
/* class for hiding elements without using display:none */
.x-hidden, .x-hide-offsets {
position:absolute;
left:-10000px;
top:-10000px;
visibility:hidden;
}
.x-hide-display {
display:none !important;
}
.x-hide-visibility {
visibility:hidden !important;
}
.x-masked {
overflow: hidden !important;
}
.x-masked select, .x-masked object, .x-masked embed {
visibility: hidden;
}
.x-layer {
visibility: hidden;
}
.x-unselectable, .x-unselectable * {
-moz-user-select: none;
-khtml-user-select: none;
}
.x-repaint {
zoom: 1;
background-color: transparent;
-moz-outline: none;
}
.x-item-disabled {
color: gray;
cursor: default;
opacity: .6;
-moz-opacity: .6;
filter: alpha(opacity=60);
}
.x-item-disabled * {
color: gray !important;
cursor: default !important;
}
.x-splitbar-proxy {
position: absolute;
visibility: hidden;
z-index: 20001;
background: #aaa;
zoom: 1;
line-height: 1px;
font-size: 1px;
overflow: hidden;
}
.x-splitbar-h, .x-splitbar-proxy-h {
cursor: e-resize;
cursor: col-resize;
}
.x-splitbar-v, .x-splitbar-proxy-v {
cursor: s-resize;
cursor: row-resize;
}
.x-color-palette {
width: 150px;
height: 92px;
cursor: pointer;
}
.x-color-palette a {
border: 1px solid #fff;
float: left;
padding: 2px;
text-decoration: none;
-moz-outline: 0 none;
outline: 0 none;
cursor: pointer;
}
.x-color-palette a:hover, .x-color-palette a.x-color-palette-sel {
border: 1px solid #8BB8F3;
background: #deecfd;
}
.x-color-palette em {
display: block;
border: 1px solid #ACA899;
}
.x-color-palette em span {
cursor: pointer;
display: block;
height: 10px;
line-height: 10px;
width: 10px;
}
.x-ie-shadow {
display: none;
position: absolute;
overflow: hidden;
left:0;
top:0;
background:#777;
zoom:1;
}
.x-shadow {
display: none;
position: absolute;
overflow: hidden;
left:0;
top:0;
}
.x-shadow * {
overflow: hidden;
}
.x-shadow * {
padding: 0;
border: 0;
margin: 0;
clear: none;
zoom: 1;
}
/* top bottom */
.x-shadow .xstc, .x-shadow .xsbc {
height: 6px;
float: left;
}
/* corners */
.x-shadow .xstl, .x-shadow .xstr, .x-shadow .xsbl, .x-shadow .xsbr {
width: 6px;
height: 6px;
float: left;
}
/* sides */
.x-shadow .xsc {
width: 100%;
}
.x-shadow .xsml, .x-shadow .xsmr {
width: 6px;
float: left;
height: 100%;
}
.x-shadow .xsmc {
float: left;
height: 100%;
background: transparent url( ../images/default/shadow-c.png );
}
.x-shadow .xst, .x-shadow .xsb {
height: 6px;
overflow: hidden;
width: 100%;
}
.x-shadow .xsml {
background: transparent url( ../images/default/shadow-lr.png ) repeat-y 0 0;
}
.x-shadow .xsmr {
background: transparent url( ../images/default/shadow-lr.png ) repeat-y -6px 0;
}
.x-shadow .xstl {
background: transparent url( ../images/default/shadow.png ) no-repeat 0 0;
}
.x-shadow .xstc {
background: transparent url( ../images/default/shadow.png ) repeat-x 0 -30px;
}
.x-shadow .xstr {
background: transparent url( ../images/default/shadow.png ) repeat-x 0 -18px;
}
.x-shadow .xsbl {
background: transparent url( ../images/default/shadow.png ) no-repeat 0 -12px;
}
.x-shadow .xsbc {
background: transparent url( ../images/default/shadow.png ) repeat-x 0 -36px;
}
.x-shadow .xsbr {
background: transparent url( ../images/default/shadow.png ) repeat-x 0 -6px;
}
.loading-indicator {
font-size: 11px;
background-image: url(../images/default/grid/loading.gif);
background-repeat: no-repeat;
background-position: left;
padding-left: 20px;
line-height: 16px;
margin: 3px;
}
.x-text-resize {
position: absolute;
left: -1000px;
top: -1000px;
visibility: hidden;
zoom: 1;
}
.x-drag-overlay {
width: 100%;
height: 100%;
display: none;
position: absolute;
left: 0;
top: 0;
background-image:url(../images/default/s.gif);
z-index: 20000;
}
.x-clear {
clear:both;
height:0;
overflow:hidden;
line-height:0;
font-size:0;
}
.x-spotlight {
z-index: 8999;
position: absolute;
top:0;
left:0;
-moz-opacity: 0.5;
opacity: .50;
filter: alpha(opacity=50);
background-color: #CCC;
width:0;
height:0;
zoom: 1;
}
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.ext-el-mask {
z-index: 100;
position: absolute;
top:0;
left:0;
-moz-opacity: 0.5;
opacity: .50;
filter: alpha(opacity=50);
width: 100%;
height: 100%;
zoom: 1;
}
.ext-el-mask-msg {
z-index: 20001;
position: absolute;
top: 0;
left: 0;
border:1px solid;
background:repeat-x 0 -16px;
padding:2px;
}
.ext-el-mask-msg div {
padding:5px 10px 5px 10px;
border:1px solid;
cursor:wait;
}
.ext-shim {
position:absolute;
visibility:hidden;
left:0;
top:0;
overflow:hidden;
}
.ext-ie .ext-shim {
filter: alpha(opacity=0);
}
.ext-ie6 .ext-shim {
margin-left: 5px;
margin-top: 3px;
}
.x-mask-loading div {
padding:5px 10px 5px 25px;
background:no-repeat 5px 5px;
line-height:16px;
}
/* class for hiding elements without using display:none */
.x-hidden, .x-hide-offsets {
position:absolute !important;
left:-10000px;
top:-10000px;
visibility:hidden;
}
.x-hide-display {
display:none !important;
}
.x-hide-nosize,
.x-hide-nosize * /* Emulate display:none for children */
{
height:0px!important;
width:0px!important;
visibility:hidden!important;
border:none!important;
zoom:1;
}
.x-hide-visibility {
visibility:hidden !important;
}
.x-masked {
overflow: hidden !important;
}
.x-masked-relative {
position: relative !important;
}
.x-masked select, .x-masked object, .x-masked embed {
visibility: hidden;
}
.x-layer {
visibility: hidden;
}
.x-unselectable, .x-unselectable * {
-moz-user-select: none;
-khtml-user-select: none;
-webkit-user-select:ignore;
}
.x-repaint {
zoom: 1;
background-color: transparent;
-moz-outline: none;
outline: none;
}
.x-item-disabled {
cursor: default;
opacity: .6;
-moz-opacity: .6;
filter: alpha(opacity=60);
}
.x-item-disabled * {
cursor: default !important;
}
.x-form-radio-group .x-item-disabled {
filter: none;
}
.x-splitbar-proxy {
position: absolute;
visibility: hidden;
z-index: 20001;
zoom: 1;
line-height: 1px;
font-size: 1px;
overflow: hidden;
}
.x-splitbar-h, .x-splitbar-proxy-h {
cursor: e-resize;
cursor: col-resize;
}
.x-splitbar-v, .x-splitbar-proxy-v {
cursor: s-resize;
cursor: row-resize;
}
.x-color-palette {
width: 150px;
height: 92px;
cursor: pointer;
}
.x-color-palette a {
border: 1px solid;
float: left;
padding: 2px;
text-decoration: none;
-moz-outline: 0 none;
outline: 0 none;
cursor: pointer;
}
.x-color-palette a:hover, .x-color-palette a.x-color-palette-sel {
border: 1px solid;
}
.x-color-palette em {
display: block;
border: 1px solid;
}
.x-color-palette em span {
cursor: pointer;
display: block;
height: 10px;
line-height: 10px;
width: 10px;
}
.x-ie-shadow {
display: none;
position: absolute;
overflow: hidden;
left:0;
top:0;
zoom:1;
}
.x-shadow {
display: none;
position: absolute;
overflow: hidden;
left:0;
top:0;
}
.x-shadow * {
overflow: hidden;
}
.x-shadow * {
padding: 0;
border: 0;
margin: 0;
clear: none;
zoom: 1;
}
/* top bottom */
.x-shadow .xstc, .x-shadow .xsbc {
height: 6px;
float: left;
}
/* corners */
.x-shadow .xstl, .x-shadow .xstr, .x-shadow .xsbl, .x-shadow .xsbr {
width: 6px;
height: 6px;
float: left;
}
/* sides */
.x-shadow .xsc {
width: 100%;
}
.x-shadow .xsml, .x-shadow .xsmr {
width: 6px;
float: left;
height: 100%;
}
.x-shadow .xsmc {
float: left;
height: 100%;
background-color: transparent;
}
.x-shadow .xst, .x-shadow .xsb {
height: 6px;
overflow: hidden;
width: 100%;
}
.x-shadow .xsml {
background: transparent repeat-y 0 0;
}
.x-shadow .xsmr {
background: transparent repeat-y -6px 0;
}
.x-shadow .xstl {
background: transparent no-repeat 0 0;
}
.x-shadow .xstc {
background: transparent repeat-x 0 -30px;
}
.x-shadow .xstr {
background: transparent repeat-x 0 -18px;
}
.x-shadow .xsbl {
background: transparent no-repeat 0 -12px;
}
.x-shadow .xsbc {
background: transparent repeat-x 0 -36px;
}
.x-shadow .xsbr {
background: transparent repeat-x 0 -6px;
}
.loading-indicator {
background: no-repeat left;
padding-left: 20px;
line-height: 16px;
margin: 3px;
}
.x-text-resize {
position: absolute;
left: -1000px;
top: -1000px;
visibility: hidden;
zoom: 1;
}
.x-drag-overlay {
width: 100%;
height: 100%;
display: none;
position: absolute;
left: 0;
top: 0;
background-image:url(../images/default/s.gif);
z-index: 20000;
}
.x-clear {
clear:both;
height:0;
overflow:hidden;
line-height:0;
font-size:0;
}
.x-spotlight {
z-index: 8999;
position: absolute;
top:0;
left:0;
-moz-opacity: 0.5;
opacity: .50;
filter: alpha(opacity=50);
width:0;
height:0;
zoom: 1;
}
#x-history-frame {
position:absolute;
top:-1px;
left:0;
width:1px;
height:1px;
visibility:hidden;
}
#x-history-field {
position:absolute;
top:0;
left:-1px;
width:1px;
height:1px;
visibility:hidden;
}

View file

@ -1,51 +1,54 @@
/*
* Ext JS Library 2.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-date-picker {
border: 1px solid #1b376c;
border: 1px solid;
border-top:0 none;
background:#fff;
position:relative;
}
.x-date-picker a {
-moz-outline:0 none;
outline:0 none;
}
.x-date-inner, .x-date-inner td, .x-date-inner th{
border-collapse:separate;
}
.x-date-middle,.x-date-left,.x-date-right {
background: url(../images/default/shared/hd-sprite.gif) repeat-x 0 -83px;
color:#FFF;
font:bold 11px "sans serif", tahoma, verdana, helvetica;
background: repeat-x 0 -83px;
overflow:hidden;
}
.x-date-middle .x-btn-left,.x-date-middle .x-btn-center,.x-date-middle .x-btn-right{
.x-date-middle .x-btn-tc,.x-date-middle .x-btn-tl,.x-date-middle .x-btn-tr,
.x-date-middle .x-btn-mc,.x-date-middle .x-btn-ml,.x-date-middle .x-btn-mr,
.x-date-middle .x-btn-bc,.x-date-middle .x-btn-bl,.x-date-middle .x-btn-br{
background:transparent !important;
vertical-align:middle;
}
.x-date-middle .x-btn .x-btn-text {
color:#fff;
}
.x-date-middle .x-btn-with-menu .x-btn-center em {
background:transparent url(../images/default/toolbar/btn-arrow-light.gif) no-repeat right 0;
.x-date-middle .x-btn-mc em.x-btn-arrow {
background:transparent no-repeat right 0;
}
.x-date-right, .x-date-left {
width:18px;
}
.x-date-right{
text-align:right;
}
.x-date-middle {
padding-top:2px;padding-bottom:2px;
padding-top:2px;
padding-bottom:2px;
width:130px; /* FF3 */
}
.x-date-right a, .x-date-left a{
display:block;
width:16px;
@ -57,105 +60,120 @@
opacity:.6;
filter: alpha(opacity=60);
}
.x-date-right a:hover, .x-date-left a:hover{
-moz-opacity: 1;
opacity:1;
filter: alpha(opacity=100);
}
.x-item-disabled .x-date-right a:hover, .x-item-disabled .x-date-left a:hover{
-moz-opacity: 0.6;
opacity:.6;
filter: alpha(opacity=60);
}
.x-date-right a {
background-image: url(../images/default/shared/right-btn.gif);
margin-right:2px;
text-decoration:none !important;
}
.x-date-left a{
background-image: url(../images/default/shared/left-btn.gif);
margin-left:2px;
text-decoration:none !important;
}
table.x-date-inner {
width:100%;
width: 100%;
table-layout:fixed;
}
.ext-webkit table.x-date-inner{
/* Fix for webkit browsers */
width: 175px;
}
.x-date-inner th {
width:25px;
}
.x-date-inner th {
background: #dfecfb url(../images/default/shared/glass-bg.gif) repeat-x left top;
background: repeat-x left top;
text-align:right !important;
border-bottom: 1px solid #a3bad9;
font:normal 10px arial, helvetica,tahoma,sans-serif;
color:#233d6d;
border-bottom: 1px solid;
cursor:default;
padding:0;
border-collapse:separate;
}
.x-date-inner th span {
display:block;
padding:2px;
padding-right:7px;
}
.x-date-inner td {
border: 1px solid #fff;
border: 1px solid;
text-align:right;
padding:0;
}
.x-date-inner a {
padding:2px 5px;
display:block;
font:normal 11px arial, helvetica,tahoma,sans-serif;
text-decoration:none;
color:black;
text-align:right;
zoom:1;
}
.x-date-inner .x-date-active{
cursor:pointer;
color:black;
}
.x-date-inner .x-date-selected a{
background: #dfecfb url(../images/default/shared/glass-bg.gif) repeat-x left top;
border:1px solid #8db2e3;
padding:1px 4px;
}
.x-date-inner .x-date-today a{
border: 1px solid darkred;
background: repeat-x left top;
border:1px solid;
padding:1px 4px;
}
.x-date-inner .x-date-selected span{
font-weight:bold;
.x-date-inner .x-date-today a{
border: 1px solid;
padding:1px 4px;
}
.x-date-inner .x-date-prevday a,.x-date-inner .x-date-nextday a {
color:#aaaaaa;
text-decoration:none !important;
}
.x-date-bottom {
padding:4px;
border-top: 1px solid #a3bad9;
background: #dfecfb url(../images/default/shared/glass-bg.gif) repeat-x left top;
border-top: 1px solid;
background: repeat-x left top;
}
.x-date-inner a:hover, .x-date-inner .x-date-disabled a:hover{
text-decoration:none !important;
color:black;
background: #ddecfe;
}
.x-item-disabled .x-date-inner a:hover{
background: none;
}
.x-date-inner .x-date-disabled a {
cursor:default;
background:#eeeeee;
color:#bbbbbb;
}
.x-date-mmenu{
background:#eeeeee !important;
}
.x-date-mmenu .x-menu-item {
font-size:10px;
.x-date-menu .x-menu-item {
padding:1px 24px 1px 4px;
white-space: nowrap;
color:#000;
}
.x-date-mmenu .x-menu-item .x-menu-item-icon {
width:10px;height:10px;margin-right:5px;
.x-date-menu .x-menu-item .x-menu-item-icon {
width:10px;
height:10px;
margin-right:5px;
background-position:center -4px !important;
}
@ -163,85 +181,91 @@ table.x-date-inner {
position:absolute;
left:0;
top:0;
background:white;
display:none;
}
.x-date-mp td {
padding:2px;
font:normal 11px arial, helvetica,tahoma,sans-serif;
}
td.x-date-mp-month,td.x-date-mp-year,td.x-date-mp-ybtn {
border: 0 none;
border: 0 none;
text-align:center;
vertical-align: middle;
width:25%;
}
.x-date-mp-ok {
margin-right:3px;
}
.x-date-mp-btns button {
text-decoration:none;
text-align:center;
text-decoration:none !important;
background:#083772;
color:white;
border:1px solid;
border-color: #3366cc #000055 #000055 #3366cc;
padding:1px 3px 1px;
font:normal 11px arial, helvetica,tahoma,sans-serif;
cursor:pointer;
}
.x-date-mp-btns {
background: #dfecfb url(../images/default/shared/glass-bg.gif) repeat-x left top;
background: repeat-x left top;
}
.x-date-mp-btns td {
border-top: 1px solid #c5d2df;
text-align:center;
border-top: 1px solid;
text-align:center;
}
td.x-date-mp-month a,td.x-date-mp-year a {
display:block;
padding:2px 4px;
text-decoration:none;
text-align:center;
color:#15428b;
}
td.x-date-mp-month a:hover,td.x-date-mp-year a:hover {
color:#15428b;
text-decoration:none;
cursor:pointer;
background: #ddecfe;
}
td.x-date-mp-sel a {
padding:1px 3px;
background: #dfecfb url(../images/default/shared/glass-bg.gif) repeat-x left top;
border:1px solid #8db2e3;
background: repeat-x left top;
border:1px solid;
}
.x-date-mp-ybtn a {
overflow:hidden;
width:15px;
height:15px;
cursor:pointer;
background:transparent url(../images/default/panel/tool-sprites.gif) no-repeat;
background:transparent no-repeat;
display:block;
margin:0 auto;
}
.x-date-mp-ybtn a.x-date-mp-next {
background-position:0 -120px;
}
.x-date-mp-ybtn a.x-date-mp-next:hover {
background-position:-15px -120px;
}
.x-date-mp-ybtn a.x-date-mp-prev {
background-position:0 -105px;
}
.x-date-mp-ybtn a.x-date-mp-prev:hover {
background-position:-15px -105px;
}
.x-date-mp-ybtn {
text-align:center;
}
td.x-date-mp-sep {
border-right:1px solid #c5d2df;
border-right:1px solid;
}

View file

@ -0,0 +1,61 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-dd-drag-proxy{
position:absolute;
left:0;
top:0;
visibility:hidden;
z-index:15000;
}
.x-dd-drag-ghost{
-moz-opacity: 0.85;
opacity:.85;
filter: alpha(opacity=85);
border: 1px solid;
padding:3px;
padding-left:20px;
white-space:nowrap;
}
.x-dd-drag-repair .x-dd-drag-ghost{
-moz-opacity: 0.4;
opacity:.4;
filter: alpha(opacity=40);
border:0 none;
padding:0;
background-color:transparent;
}
.x-dd-drag-repair .x-dd-drop-icon{
visibility:hidden;
}
.x-dd-drop-icon{
position:absolute;
top:3px;
left:3px;
display:block;
width:16px;
height:16px;
background-color:transparent;
background-position: center;
background-repeat: no-repeat;
z-index:1;
}
.x-view-selector {
position:absolute;
left:0;
top:0;
width:0;
border:1px dotted;
opacity: .5;
-moz-opacity: .5;
filter:alpha(opacity=50);
zoom:1;
}

View file

@ -0,0 +1,26 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
#x-debug-browser .x-tree .x-tree-node a span {
padding-top:2px;
line-height:18px;
}
#x-debug-browser .x-tool-toggle {
background-position:0 -75px;
}
#x-debug-browser .x-tool-toggle-over {
background-position:-15px -75px;
}
#x-debug-browser.x-panel-collapsed .x-tool-toggle {
background-position:0 -60px;
}
#x-debug-browser.x-panel-collapsed .x-tool-toggle-over {
background-position:-15px -60px;
}

View file

@ -0,0 +1,59 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-window-dlg .x-window-body {
border:0 none !important;
padding:5px 10px;
overflow:hidden !important;
}
.x-window-dlg .x-window-mc {
border:0 none !important;
}
.x-window-dlg .ext-mb-input {
margin-top:4px;
width:95%;
}
.x-window-dlg .ext-mb-textarea {
margin-top:4px;
}
.x-window-dlg .x-progress-wrap {
margin-top:4px;
}
.ext-ie .x-window-dlg .x-progress-wrap {
margin-top:6px;
}
.x-window-dlg .x-msg-box-wait {
background:transparent no-repeat left;
display:block;
width:300px;
padding-left:18px;
line-height:18px;
}
.x-window-dlg .ext-mb-icon {
float:left;
width:47px;
height:32px;
}
.x-window-dlg .x-dlg-icon .ext-mb-content{
zoom: 1;
margin-left: 47px;
}
.x-window-dlg .ext-mb-info, .x-window-dlg .ext-mb-warning, .x-window-dlg .ext-mb-question, .x-window-dlg .ext-mb-error {
background:transparent no-repeat top left;
}
.ext-gecko2 .ext-mb-fix-cursor {
overflow:auto;
}

View file

@ -0,0 +1,92 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-html-editor-wrap {
border:1px solid;
}
.x-html-editor-tb .x-btn-text {
background:transparent no-repeat;
}
.x-html-editor-tb .x-edit-bold, .x-menu-item img.x-edit-bold {
background-position:0 0;
background-image:url(../images/default/editor/tb-sprite.gif);
}
.x-html-editor-tb .x-edit-italic, .x-menu-item img.x-edit-italic {
background-position:-16px 0;
background-image:url(../images/default/editor/tb-sprite.gif);
}
.x-html-editor-tb .x-edit-underline, .x-menu-item img.x-edit-underline {
background-position:-32px 0;
background-image:url(../images/default/editor/tb-sprite.gif);
}
.x-html-editor-tb .x-edit-forecolor, .x-menu-item img.x-edit-forecolor {
background-position:-160px 0;
background-image:url(../images/default/editor/tb-sprite.gif);
}
.x-html-editor-tb .x-edit-backcolor, .x-menu-item img.x-edit-backcolor {
background-position:-176px 0;
background-image:url(../images/default/editor/tb-sprite.gif);
}
.x-html-editor-tb .x-edit-justifyleft, .x-menu-item img.x-edit-justifyleft {
background-position:-112px 0;
background-image:url(../images/default/editor/tb-sprite.gif);
}
.x-html-editor-tb .x-edit-justifycenter, .x-menu-item img.x-edit-justifycenter {
background-position:-128px 0;
background-image:url(../images/default/editor/tb-sprite.gif);
}
.x-html-editor-tb .x-edit-justifyright, .x-menu-item img.x-edit-justifyright {
background-position:-144px 0;
background-image:url(../images/default/editor/tb-sprite.gif);
}
.x-html-editor-tb .x-edit-insertorderedlist, .x-menu-item img.x-edit-insertorderedlist {
background-position:-80px 0;
background-image:url(../images/default/editor/tb-sprite.gif);
}
.x-html-editor-tb .x-edit-insertunorderedlist, .x-menu-item img.x-edit-insertunorderedlist {
background-position:-96px 0;
background-image:url(../images/default/editor/tb-sprite.gif);
}
.x-html-editor-tb .x-edit-increasefontsize, .x-menu-item img.x-edit-increasefontsize {
background-position:-48px 0;
background-image:url(../images/default/editor/tb-sprite.gif);
}
.x-html-editor-tb .x-edit-decreasefontsize, .x-menu-item img.x-edit-decreasefontsize {
background-position:-64px 0;
background-image:url(../images/default/editor/tb-sprite.gif);
}
.x-html-editor-tb .x-edit-sourceedit, .x-menu-item img.x-edit-sourceedit {
background-position:-192px 0;
background-image:url(../images/default/editor/tb-sprite.gif);
}
.x-html-editor-tb .x-edit-createlink, .x-menu-item img.x-edit-createlink {
background-position:-208px 0;
background-image:url(../images/default/editor/tb-sprite.gif);
}
.x-html-editor-tip .x-tip-bd .x-tip-bd-inner {
padding:5px;
padding-bottom:1px;
}
.x-html-editor-tb .x-toolbar {
position:static !important;
}

View file

@ -1,193 +1,172 @@
/*
* Ext JS Library 2.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
/* all fields */
.x-form-field{
margin: 0 0 0 0;
font:normal 12px tahoma, arial, helvetica, sans-serif;
}
.ext-webkit *:focus{
outline: none !important;
}
/* ---- text fields ---- */
.x-form-text, textarea.x-form-field{
padding:1px 3px;
background:#fff url(../images/default/form/text-bg.gif) repeat-x 0 0;
border:1px solid #B5B8C8;
background:repeat-x 0 0;
border:1px solid;
}
textarea.x-form-field {
padding:2px 3px;
}
.x-form-text {
.x-form-text, .ext-ie .x-form-file {
height:22px;
line-height:18px;
vertical-align:middle;
}
.ext-ie .x-form-text {
.ext-ie6 .x-form-text, .ext-ie7 .x-form-text {
margin:-1px 0; /* ie bogus margin bug */
height:22px; /* ie quirks */
line-height:18px;
}
.ext-ie textarea.x-form-field {
.x-quirks .ext-ie9 .x-form-text {
height: 22px;
padding-top: 3px;
padding-bottom: 0px;
}
/* Ugly hacks for the bogus 1px margin bug in IE9 quirks */
.x-quirks .ext-ie9 .x-input-wrapper .x-form-text,
.x-quirks .ext-ie9 .x-form-field-trigger-wrap .x-form-text {
margin-top: -1px;
margin-bottom: -1px;
}
.x-quirks .ext-ie9 .x-input-wrapper .x-form-element {
margin-bottom: -1px;
}
.ext-ie6 .x-form-field-wrap .x-form-file-btn, .ext-ie7 .x-form-field-wrap .x-form-file-btn {
top: -1px; /* because of all these margin hacks, these buttons are off by one pixel in IE6,7 */
}
.ext-ie6 textarea.x-form-field, .ext-ie7 textarea.x-form-field {
margin:-1px 0; /* ie bogus margin bug */
}
.ext-strict .x-form-text {
height:18px;
}
.ext-safari .x-form-text {
height:20px; /* safari always same size */
padding:0 3px; /* remove extra top/bottom padding */
}
.ext-safari.ext-mac textarea.x-form-field {
margin-bottom:-2px; /* another bogus margin bug, safari/mac only */
}
.ext-gecko .x-form-text {
/*
.ext-strict .ext-ie8 .x-form-text, .ext-strict .ext-ie8 textarea.x-form-field {
margin-bottom: 1px;
}
*/
.ext-gecko .x-form-text , .ext-ie8 .x-form-text {
padding-top:2px; /* FF won't center the text vertically */
padding-bottom:0;
}
.ext-ie6 .x-form-composite .x-form-text.x-box-item, .ext-ie7 .x-form-composite .x-form-text.x-box-item {
margin: 0 !important; /* clear ie bogus margin bug fix */
}
textarea {
resize: none; /* Disable browser resizable textarea */
}
/* select boxes */
.x-form-select-one {
height:20px;
line-height:18px;
vertical-align:middle;
background-color:#fff; /* opera */
border: 1px solid #B5B8C8;
border: 1px solid;
}
/* multi select boxes */
/* --- TODO --- */
/* checkboxes / radios */
.x-form-check-group, .x-form-radio-group {
margin-bottom: 0;
}
.x-form-check-group .x-form-invalid .x-panel-body,
.x-form-radio-group .x-form-invalid .x-panel-body {
background-color: transparent;
}
.x-form-check-wrap, .x-form-radio-wrap {
padding: 3px 0 0 0;
/* 2.0.2 style */
.x-form-check-wrap {
line-height:18px;
height: auto;
}
.x-form-check-group .x-form-check-wrap,
.x-form-radio-group .x-form-radio-wrap {
height: 18px;
}
.ext-ie .x-form-check-group .x-form-check-wrap,
.ext-ie .x-form-radio-group .x-form-radio-wrap {
height: 21px;
}
.ext-ie .x-form-check-wrap input,
.ext-ie .x-form-radio-wrap input {
.ext-ie .x-form-check-wrap input {
width:15px;
height:15px;
}
.x-form-check, .x-form-radio {
height: 13px;
width: 13px;
.x-form-check-wrap input{
vertical-align: bottom;
}
.x-form-radio {
margin-bottom: 3px;
}
.x-form-check, .ext-ie .x-form-radio {
margin-bottom: 2px;
.x-editor .x-form-check-wrap {
padding:3px;
}
.x-form-check-wrap-inner, .x-form-radio-wrap-inner {
display: inline;
padding: 3px 0 0 0;
}
.x-form-check {
background: url('../images/default/form/checkbox.gif') no-repeat 0 0;
}
.x-form-radio {
background: url('../images/default/form/radio.gif') no-repeat 0 0;
}
.x-form-check-focus .x-form-check, .x-form-check-over .x-form-check,
.x-form-check-focus .x-form-radio, .x-form-check-over .x-form-radio {
background-position: -13px 0;
}
.x-form-check-down .x-form-check,
.x-form-check-down .x-form-radio {
background-position:-26px 0;
}
.x-form-check-checked .x-form-check-focus .x-form-check,
.x-form-check-checked .x-form-check-over .x-form-check {
background-position:-13px -13px;
}
.x-form-check-checked .x-form-check-down .x-form-check {
background-position:-26px -13px;
}
.x-form-check-checked .x-form-check,
.x-form-check-checked .x-form-radio {
background-position:0 -13px;
.x-editor .x-form-checkbox {
height:13px;
}
.x-form-check-group-label {
border-bottom: 1px solid #99BBE8;
color: #15428B;
border-bottom: 1px solid;
margin-bottom: 5px;
padding-left: 3px !important;
float: none !important;
}
/* wrapped fields and triggers */
.x-form-field-wrap {
position:relative;
zoom:1;
white-space: nowrap;
}
.x-form-field-wrap .x-form-trigger{
width:17px;
height:21px;
border:0;
background:transparent url(../images/default/form/trigger.gif) no-repeat 0 0;
background:transparent no-repeat 0 0;
cursor:pointer;
border-bottom: 1px solid #B5B8C8;
border-bottom: 1px solid;
position:absolute;
top:0;
}
.ext-safari .x-form-field-wrap .x-form-trigger{
height:21px; /* safari doesn't allow height adjustments to the fields, so adjust trigger */
.x-form-field-wrap .x-form-date-trigger, .x-form-field-wrap .x-form-clear-trigger, .x-form-field-wrap .x-form-search-trigger{
cursor:pointer;
}
.x-form-field-wrap .x-form-date-trigger{
background-image: url(../images/default/form/date-trigger.gif);
cursor:pointer;
}
.x-form-field-wrap .x-form-clear-trigger{
background-image: url(../images/default/form/clear-trigger.gif);
cursor:pointer;
}
.x-form-field-wrap .x-form-search-trigger{
background-image: url(../images/default/form/search-trigger.gif);
cursor:pointer;
}
.ext-safari .x-form-field-wrap .x-form-trigger{
right:0;
}
.x-form-field-wrap .x-form-twin-triggers{
}
.x-form-field-wrap .x-form-twin-triggers .x-form-trigger{
position:static;
top:auto;
vertical-align:top;
}
.x-form-field-wrap {
position:relative;
left:0;top:0;
text-align: left;
zoom:1;
white-space: nowrap;
}
.ext-strict .ext-ie8 .x-toolbar-cell .x-form-field-trigger-wrap .x-form-trigger {
right: 0; /* IE8 Strict mode trigger bug */
}
.x-form-field-wrap .x-form-trigger-over{
background-position:-17px 0;
}
.x-form-field-wrap .x-form-trigger-click{
background-position:-34px 0;
}
@ -195,38 +174,46 @@ textarea {
.x-trigger-wrap-focus .x-form-trigger{
background-position:-51px 0;
}
.x-trigger-wrap-focus .x-form-trigger-over{
background-position:-68px 0;
}
.x-trigger-wrap-focus .x-form-trigger-click{
background-position:-85px 0;
}
.x-trigger-wrap-focus .x-form-trigger{
border-bottom: 1px solid #7eadd9;
border-bottom: 1px solid;
}
.x-item-disabled .x-form-trigger-over{
background-position:0 0 !important;
border-bottom: 1px solid #B5B8C8;
border-bottom: 1px solid;
}
.x-item-disabled .x-form-trigger-click{
background-position:0 0 !important;
border-bottom: 1px solid #B5B8C8;
border-bottom: 1px solid;
}
.x-trigger-noedit{
cursor:pointer;
}
/* field focus style */
.x-form-focus, textarea.x-form-focus{
border: 1px solid #7eadd9;
border: 1px solid;
}
/* invalid fields */
.x-form-invalid, textarea.x-form-invalid{
background:#fff url(../images/default/grid/invalid_line.gif) repeat-x bottom;
border: 1px solid #dd7870;
background:repeat-x bottom;
border: 1px solid;
}
.ext-safari .x-form-invalid{
background-color:#ffeeee;
border: 1px solid #ff7870;
.x-form-inner-invalid, textarea.x-form-inner-invalid{
background:repeat-x bottom;
}
/* editors */
@ -235,44 +222,36 @@ textarea {
padding:0;
margin:0;
}
.x-editor .x-form-check-wrap,
.x-editor .x-form-radio-wrap {
background:#fff;
padding:3px;
}
.x-editor .x-form-checkbox {
height:13px;
}
/* If you override the default field font above, you would need to change this font as well */
.x-form-grow-sizer {
font:normal 12px tahoma, arial, helvetica, sans-serif;
left: -10000px;
padding: 8px 3px;
padding: 8px 3px;
position: absolute;
visibility:hidden;
top: -10000px;
white-space: pre-wrap;
white-space: pre-wrap;
white-space: -moz-pre-wrap;
white-space: -pre-wrap;
white-space: -o-pre-wrap;
word-wrap: break-word;
zoom:1;
}
.x-form-grow-sizer p {
margin:0 !important;
border:0 none !important;
padding:0 !important;
}
/* Form Items CSS */
.x-form-item {
font:normal 12px tahoma, arial, helvetica, sans-serif;
display:block;
margin-bottom:4px;
zoom:1;
}
.x-form-item label {
.x-form-item label.x-form-item-label {
display:block;
float:left;
width:100px;
@ -289,24 +268,22 @@ textarea {
}
.x-form-invalid-msg {
color:#ee0000;
padding:2px;
padding-left:18px;
font:normal 11px tahoma, arial, helvetica, sans-serif;
background: transparent url(../images/default/shared/warning.gif) no-repeat 0 2px;
background: transparent no-repeat 0 2px;
line-height:16px;
width:200px;
}
.x-form-label-right label {
text-align:right;
}
.x-form-label-left label {
.x-form-label-left label.x-form-item-label {
text-align:left;
}
.x-form-label-top .x-form-item label {
.x-form-label-right label.x-form-item-label {
text-align:right;
}
.x-form-label-top .x-form-item label.x-form-item-label {
width:auto;
float:none;
clear:none;
@ -324,36 +301,29 @@ textarea {
padding-bottom:4px;
}
.x-form-empty-field {
color:gray;
}
/* Editor small font for grid, toolbar and tree */
.x-small-editor .x-form-field {
font:normal 11px arial, tahoma, helvetica, sans-serif;
}
.x-small-editor .x-form-text {
height:20px;
line-height:16px;
vertical-align:middle;
}
.ext-ie .x-small-editor .x-form-text {
.ext-ie6 .x-small-editor .x-form-text, .ext-ie7 .x-small-editor .x-form-text {
margin-top:-1px !important; /* ie bogus margin bug */
margin-bottom:-1px !important;
height:20px !important; /* ie quirks */
line-height:16px !important;
}
.ext-strict .x-small-editor .x-form-text {
height:16px !important;
}
.ext-safari .x-small-editor .x-form-field {
/* safari text field will not size so needs bigger font */
font:normal 12px arial, tahoma, helvetica, sans-serif;
}
.ext-ie .x-small-editor .x-form-text {
.ext-ie6 .x-small-editor .x-form-text, .ext-ie7 .x-small-editor .x-form-text {
height:20px;
line-height:16px;
}
.ext-border-box .x-small-editor .x-form-text {
height:20px;
}
@ -363,13 +333,20 @@ textarea {
line-height:16px;
vertical-align:middle;
}
.x-small-editor .x-form-num-field {
text-align:right;
}
.x-small-editor .x-form-field-wrap .x-form-trigger{
height:19px;
}
.ext-webkit .x-small-editor .x-form-text{padding-top:3px;font-size:100%;}
.ext-strict .ext-webkit .x-small-editor .x-form-text{
height:14px !important;
}
.x-form-clear {
clear:both;
@ -386,12 +363,38 @@ textarea {
font-size:0;
}
.ext-ie6 .x-form-check-wrap input, .ext-border-box .x-form-check-wrap input{
margin-top: 3px;
}
.x-form-cb-label {
width:'auto' !important;
float:none !important;
clear:none !important;
display:inline !important;
position: relative;
margin-left:4px;
top: 2px;
}
.ext-ie .x-form-cb-label{
top: 1px;
}
.ext-ie6 .x-form-cb-label, .ext-border-box .x-form-cb-label{
top: 3px;
}
.x-form-display-field{
padding-top: 2px;
}
.ext-gecko .x-form-display-field, .ext-strict .ext-ie7 .x-form-display-field{
padding-top: 1px;
}
.ext-ie .x-form-display-field{
padding-top: 3px;
}
.ext-strict .ext-ie8 .x-form-display-field{
padding-top: 0;
}
.x-form-column {
@ -405,50 +408,61 @@ textarea {
/* buttons */
.x-form .x-form-btns-ct .x-btn{
float:right;
clear:none;
float:right;
clear:none;
}
.x-form .x-form-btns-ct .x-form-btns td {
border:0;
padding:0;
border:0;
padding:0;
}
.x-form .x-form-btns-ct .x-form-btns-right table{
float:right;
clear:none;
float:right;
clear:none;
}
.x-form .x-form-btns-ct .x-form-btns-left table{
float:left;
clear:none;
float:left;
clear:none;
}
.x-form .x-form-btns-ct .x-form-btns-center{
text-align:center; /*ie*/
text-align:center; /*ie*/
}
.x-form .x-form-btns-ct .x-form-btns-center table{
margin:0 auto; /*everyone else*/
margin:0 auto; /*everyone else*/
}
.x-form .x-form-btns-ct table td.x-form-btn-td{
padding:3px;
padding:3px;
}
.x-form .x-form-btns-ct .x-btn-focus .x-btn-left{
background-position:0 -147px;
background-position:0 -147px;
}
.x-form .x-form-btns-ct .x-btn-focus .x-btn-right{
background-position:0 -168px;
background-position:0 -168px;
}
.x-form .x-form-btns-ct .x-btn-focus .x-btn-center{
background-position:0 -189px;
background-position:0 -189px;
}
.x-form .x-form-btns-ct .x-btn-click .x-btn-center{
background-position:0 -126px;
background-position:0 -126px;
}
.x-form .x-form-btns-ct .x-btn-click .x-btn-right{
background-position:0 -84px;
background-position:0 -84px;
}
.x-form .x-form-btns-ct .x-btn-click .x-btn-left{
background-position:0 -63px;
background-position:0 -63px;
}
.x-form-invalid-icon {
width:16px;
height:18px;
@ -457,87 +471,118 @@ textarea {
left:0;
top:0;
display:block;
background:transparent url(../images/default/form/exclamation.gif) no-repeat 0 2px;
background:transparent no-repeat 0 2px;
}
/* fieldsets */
.x-fieldset {
border:1px solid #B5B8C8;
border:1px solid;
padding:10px;
margin-bottom:10px;
display:block; /* preserve margins in IE */
}
.x-fieldset legend {
font:bold 11px tahoma, arial, helvetica, sans-serif;
color:#15428b;
/* make top of checkbox/tools visible in webkit */
.ext-webkit .x-fieldset-header {
padding-top: 1px;
}
.ext-ie .x-fieldset legend {
margin-bottom:10px;
}
.ext-strict .ext-ie9 .x-fieldset legend.x-fieldset-header {
padding-top: 1px;
}
.ext-ie .x-fieldset {
padding-top: 0;
padding-bottom:10px;
}
.x-fieldset legend .x-tool-toggle {
margin-right:3px;
margin-left:0;
float:left !important;
}
.x-fieldset legend input {
margin-right:3px;
float:left !important;
height:13px;
width:13px;
}
fieldset.x-panel-collapsed {
padding-bottom:0 !important;
border-width: 1px 0 0 0 !important;
border-width: 1px 1px 0 1px !important;
border-left-color: transparent;
border-right-color: transparent;
}
.ext-ie6 fieldset.x-panel-collapsed{
padding-bottom:0 !important;
border-width: 1px 0 0 0 !important;
margin-left: 1px;
margin-right: 1px;
}
fieldset.x-panel-collapsed .x-fieldset-bwrap {
visibility:hidden;
position:absolute;
left:-1000px;
top:-1000px;
}
.ext-ie .x-fieldset-bwrap {
zoom:1;
}
.ext-ie td .x-form-text {
position:relative;
top:-1px;
}
.x-fieldset-noborder {
border:0px none transparent;
}
.x-fieldset-noborder legend {
margin-left:-3px;
}
/* IE legend positioing bug */
/* IE legend positioning bug */
.ext-ie .x-fieldset-noborder legend {
position: relative;
margin-bottom:23px;
}
.ext-ie .x-fieldset-noborder legend span {
position: absolute;
left:-5px;
left:16px;
}
.ext-gecko .x-window-body .x-form-item {
-moz-outline: none;
outline: none;
overflow: auto;
}
.ext-mac.ext-gecko .x-window-body .x-form-item {
overflow:hidden;
}
.ext-gecko .x-form-item {
-moz-outline: none;
outline: none;
}
.x-hide-label label.x-form-item-label {
display:none;
}
.x-hide-label .x-form-element {
padding-left: 0 !important;
}
.x-form-label-top .x-hide-label label.x-form-item-label{
display: none;
}
.x-fieldset {
overflow:hidden;
}
@ -549,4 +594,4 @@ fieldset.x-panel-collapsed .x-fieldset-bwrap {
.x-fieldset-body {
overflow:hidden;
}
}

View file

@ -1,14 +1,13 @@
/*
* Ext JS Library 2.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-border-layout-ct {
background:#dfe8f6;
position: relative;
}
.x-border-panel {
position:absolute;
left:0;
@ -18,6 +17,7 @@
.x-tool-collapse-south {
background-position:0 -195px;
}
.x-tool-collapse-south-over {
background-position:-15px -195px;
}
@ -25,6 +25,7 @@
.x-tool-collapse-north {
background-position:0 -210px;
}
.x-tool-collapse-north-over {
background-position:-15px -210px;
}
@ -32,6 +33,7 @@
.x-tool-collapse-west {
background-position:0 -180px;
}
.x-tool-collapse-west-over {
background-position:-15px -180px;
}
@ -39,14 +41,15 @@
.x-tool-collapse-east {
background-position:0 -165px;
}
.x-tool-collapse-east-over {
background-position:-15px -165px;
}
.x-tool-expand-south {
background-position:0 -210px;
}
.x-tool-expand-south-over {
background-position:-15px -210px;
}
@ -61,6 +64,7 @@
.x-tool-expand-west {
background-position:0 -165px;
}
.x-tool-expand-west-over {
background-position:-15px -165px;
}
@ -68,6 +72,7 @@
.x-tool-expand-east {
background-position:0 -180px;
}
.x-tool-expand-east-over {
background-position:-15px -180px;
}
@ -76,33 +81,33 @@
float:right;
margin:3px;
}
.x-tool-expand-east, .x-tool-expand-west {
float:none;
margin:3px auto;
margin:3px 2px;
}
.x-accordion-hd .x-tool-toggle {
background-position:0 -255px;
}
.x-accordion-hd .x-tool-toggle-over {
background-position:-15px -255px;
}
.x-panel-collapsed .x-accordion-hd .x-tool-toggle {
background-position:0 -240px;
}
.x-panel-collapsed .x-accordion-hd .x-tool-toggle-over {
background-position:-15px -240px;
}
.x-accordion-hd {
color:#222;
padding-top:4px;
padding-bottom:3px;
border-top:0 none;
font-weight:normal;
background: transparent url(../images/default/panel/light-hd.gif) repeat-x 0 -9px;
background: transparent repeat-x 0 -9px;
}
.x-layout-collapsed{
@ -110,21 +115,22 @@
left:-10000px;
top:-10000px;
visibility:hidden;
background-color:#d2e0f2;
width:20px;
height:20px;
overflow:hidden;
border:1px solid #98c0f4;
border:1px solid;
z-index:20;
}
.ext-border-box .x-layout-collapsed{
width:22px;
height:22px;
}
.x-layout-collapsed-over{
cursor:pointer;
background-color:#d9e8fb;
}
.x-layout-collapsed-west .x-layout-collapsed-tools, .x-layout-collapsed-east .x-layout-collapsed-tools{
position:absolute;
top:0;
@ -149,11 +155,12 @@
background-color: #fff !important;
filter: alpha(opacity=1);
}
.x-layout-split-h{
background-image:url(../images/default/s.gif);
background-position: left;
}
.x-layout-split-v{
background-image:url(../images/default/s.gif);
background-position: top;
@ -161,7 +168,6 @@
.x-column-layout-ct {
overflow:hidden;
/*padding:3px 3px 3px 3px;*/
zoom:1;
}
@ -171,11 +177,14 @@
margin:0;
overflow:hidden;
zoom:1;
/*margin:3px;*/
}
.x-column-inner {
overflow:hidden;
zoom:1;
}
/* mini mode */
.x-layout-mini {
position:absolute;
top:0;
@ -188,6 +197,7 @@
-moz-opacity:.5;
filter:alpha(opacity=50);
}
.x-layout-mini-over, .x-layout-collapsed-over .x-layout-mini{
opacity:1;
-moz-opacity:1;
@ -196,62 +206,56 @@
.x-layout-split-west .x-layout-mini {
top:48%;
background-image:url(../images/default/layout/mini-left.gif);
}
.x-layout-split-east .x-layout-mini {
top:48%;
background-image:url(../images/default/layout/mini-right.gif);
}
.x-layout-split-north .x-layout-mini {
left:48%;
height:5px;
width:35px;
background-image:url(../images/default/layout/mini-top.gif);
}
.x-layout-split-south .x-layout-mini {
left:48%;
height:5px;
width:35px;
background-image:url(../images/default/layout/mini-bottom.gif);
}
.x-layout-cmini-west .x-layout-mini {
top:48%;
background-image:url(../images/default/layout/mini-right.gif);
}
.x-layout-cmini-east .x-layout-mini {
top:48%;
background-image:url(../images/default/layout/mini-left.gif);
}
.x-layout-cmini-north .x-layout-mini {
left:48%;
height:5px;
width:35px;
background-image:url(../images/default/layout/mini-bottom.gif);
}
.x-layout-cmini-south .x-layout-mini {
left:48%;
height:5px;
width:35px;
background-image:url(../images/default/layout/mini-top.gif);
}
.x-layout-cmini-west, .x-layout-cmini-east {
border:0 none;
width:5px !important;
padding:0;
background:transparent;
background-color:transparent;
}
.x-layout-cmini-north, .x-layout-cmini-south {
border:0 none;
height:5px !important;
padding:0;
background:transparent;
background-color:transparent;
}
.x-viewport, .x-viewport body {
@ -270,4 +274,23 @@
.ext-ie input.x-abs-layout-item, .ext-ie textarea.x-abs-layout-item {
margin:0;
}
.x-box-layout-ct {
overflow:hidden;
zoom:1;
}
.x-box-inner {
overflow:hidden;
zoom:1;
position:relative;
left:0;
top:0;
}
.x-box-item {
position:absolute;
left:0;
top:0;
}

View file

@ -0,0 +1,86 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-list-header{
background: repeat-x 0 bottom;
cursor:default;
zoom:1;
height:22px;
}
.x-list-header-inner div {
display:block;
float:left;
overflow:hidden;
-o-text-overflow: ellipsis;
text-overflow: ellipsis;
white-space: nowrap;
}
.x-list-header-inner div em {
display:block;
border-left:1px solid;
padding:4px 4px;
overflow:hidden;
-moz-user-select: none;
-khtml-user-select: none;
line-height:14px;
}
.x-list-body {
overflow:auto;
overflow-x:hidden;
overflow-y:auto;
zoom:1;
float: left;
width: 100%;
}
.x-list-body dl {
zoom:1;
}
.x-list-body dt {
display:block;
float:left;
overflow:hidden;
-o-text-overflow: ellipsis;
text-overflow: ellipsis;
white-space: nowrap;
cursor:pointer;
zoom:1;
}
.x-list-body dt em {
display:block;
padding:3px 4px;
overflow:hidden;
-moz-user-select: none;
-khtml-user-select: none;
}
.x-list-resizer {
border-left:1px solid;
border-right:1px solid;
position:absolute;
left:0;
top:0;
}
.x-list-header-inner em.sort-asc {
background: transparent no-repeat center 0;
border-style:solid;
border-width: 0 1px 1px;
padding-bottom:3px;
}
.x-list-header-inner em.sort-desc {
background: transparent no-repeat center -23px;
border-style:solid;
border-width: 0 1px 1px;
padding-bottom:3px;
}

View file

@ -0,0 +1,245 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-menu {
z-index: 15000;
zoom: 1;
background: repeat-y;
}
.x-menu-floating{
border: 1px solid;
}
.x-menu a {
text-decoration: none !important;
}
.ext-ie .x-menu {
zoom:1;
overflow:hidden;
}
.x-menu-list{
padding: 2px;
background-color:transparent;
border:0 none;
overflow:hidden;
overflow-y: hidden;
}
.ext-strict .ext-ie .x-menu-list{
position: relative;
}
.x-menu li{
line-height:100%;
}
.x-menu li.x-menu-sep-li{
font-size:1px;
line-height:1px;
}
.x-menu-list-item{
white-space: nowrap;
display:block;
padding:1px;
}
.x-menu-item{
-moz-user-select: none;
-khtml-user-select:none;
-webkit-user-select:ignore;
}
.x-menu-item-arrow{
background:transparent no-repeat right;
}
.x-menu-sep {
display:block;
font-size:1px;
line-height:1px;
margin: 2px 3px;
border-bottom:1px solid;
overflow:hidden;
}
.x-menu-focus {
position:absolute;
left:-1px;
top:-1px;
width:1px;
height:1px;
line-height:1px;
font-size:1px;
-moz-outline:0 none;
outline:0 none;
-moz-user-select: none;
-khtml-user-select:none;
-webkit-user-select:ignore;
overflow:hidden;
display:block;
}
a.x-menu-item {
cursor: pointer;
display: block;
line-height: 16px;
outline-color: -moz-use-text-color;
outline-style: none;
outline-width: 0;
padding: 3px 21px 3px 27px;
position: relative;
text-decoration: none;
white-space: nowrap;
}
.x-menu-item-active {
background-repeat: repeat-x;
background-position: left bottom;
border-style:solid;
border-width: 1px 0;
margin:0 1px;
padding: 0;
}
.x-menu-item-active a.x-menu-item {
border-style:solid;
border-width:0 1px;
margin:0 -1px;
}
.x-menu-item-icon {
border: 0 none;
height: 16px;
padding: 0;
vertical-align: top;
width: 16px;
position: absolute;
left: 3px;
top: 3px;
margin: 0;
background-position:center;
}
.ext-ie .x-menu-item-icon {
left: -24px;
}
.ext-strict .x-menu-item-icon {
left: 3px;
}
.ext-ie6 .x-menu-item-icon {
left: -24px;
}
.ext-ie .x-menu-item-icon {
vertical-align: middle;
}
.x-menu-check-item .x-menu-item-icon{
background: transparent no-repeat center;
}
.x-menu-group-item .x-menu-item-icon{
background-color: transparent;
}
.x-menu-item-checked .x-menu-group-item .x-menu-item-icon{
background: transparent no-repeat center;
}
.x-date-menu .x-menu-list{
padding: 0;
}
.x-menu-date-item{
padding:0;
}
.x-menu .x-color-palette, .x-menu .x-date-picker{
margin-left: 26px;
margin-right:4px;
}
.x-menu .x-date-picker{
border:1px solid;
margin-top:2px;
margin-bottom:2px;
}
.x-menu-plain .x-color-palette, .x-menu-plain .x-date-picker{
margin: 0;
border: 0 none;
}
.x-date-menu {
padding:0 !important;
}
/*
* fixes separator visibility problem in IE 6
*/
.ext-strict .ext-ie6 .x-menu-sep-li {
padding: 3px 4px;
}
.ext-strict .ext-ie6 .x-menu-sep {
margin: 0;
height: 1px;
}
/*
* Fixes an issue with "fat" separators in webkit
*/
.ext-webkit .x-menu-sep{
height: 1px;
}
/*
* Ugly mess to remove the white border under the picker
*/
.ext-ie .x-date-menu{
height: 199px;
}
.ext-strict .ext-ie .x-date-menu, .ext-border-box .ext-ie8 .x-date-menu{
height: 197px;
}
.ext-strict .ext-ie7 .x-date-menu{
height: 195px;
}
.ext-strict .ext-ie8 .x-date-menu{
height: auto;
}
.x-cycle-menu .x-menu-item-checked {
border:1px dotted !important;
padding:0;
}
.x-menu .x-menu-scroller {
width: 100%;
background-repeat:no-repeat;
background-position:center;
height:8px;
line-height: 8px;
cursor:pointer;
margin: 0;
padding: 0;
}
.x-menu .x-menu-scroller-active{
height: 6px;
line-height: 6px;
}
.x-menu-list-item-indent{
padding-left: 27px;
}

View file

@ -0,0 +1,130 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
/**
* W3C Suggested Default style sheet for HTML 4
* http://www.w3.org/TR/CSS21/sample.html
*
* Resets for Ext.Panel @cfg normal: true
*/
.x-panel-reset .x-panel-body html,
.x-panel-reset .x-panel-body address,
.x-panel-reset .x-panel-body blockquote,
.x-panel-reset .x-panel-body body,
.x-panel-reset .x-panel-body dd,
.x-panel-reset .x-panel-body div,
.x-panel-reset .x-panel-body dl,
.x-panel-reset .x-panel-body dt,
.x-panel-reset .x-panel-body fieldset,
.x-panel-reset .x-panel-body form,
.x-panel-reset .x-panel-body frame, frameset,
.x-panel-reset .x-panel-body h1,
.x-panel-reset .x-panel-body h2,
.x-panel-reset .x-panel-body h3,
.x-panel-reset .x-panel-body h4,
.x-panel-reset .x-panel-body h5,
.x-panel-reset .x-panel-body h6,
.x-panel-reset .x-panel-body noframes,
.x-panel-reset .x-panel-body ol,
.x-panel-reset .x-panel-body p,
.x-panel-reset .x-panel-body ul,
.x-panel-reset .x-panel-body center,
.x-panel-reset .x-panel-body dir,
.x-panel-reset .x-panel-body hr,
.x-panel-reset .x-panel-body menu,
.x-panel-reset .x-panel-body pre { display: block }
.x-panel-reset .x-panel-body li { display: list-item }
.x-panel-reset .x-panel-body head { display: none }
.x-panel-reset .x-panel-body table { display: table }
.x-panel-reset .x-panel-body tr { display: table-row }
.x-panel-reset .x-panel-body thead { display: table-header-group }
.x-panel-reset .x-panel-body tbody { display: table-row-group }
.x-panel-reset .x-panel-body tfoot { display: table-footer-group }
.x-panel-reset .x-panel-body col { display: table-column }
.x-panel-reset .x-panel-body colgroup { display: table-column-group }
.x-panel-reset .x-panel-body td,
.x-panel-reset .x-panel-body th { display: table-cell }
.x-panel-reset .x-panel-body caption { display: table-caption }
.x-panel-reset .x-panel-body th { font-weight: bolder; text-align: center }
.x-panel-reset .x-panel-body caption { text-align: center }
.x-panel-reset .x-panel-body body { margin: 8px }
.x-panel-reset .x-panel-body h1 { font-size: 2em; margin: .67em 0 }
.x-panel-reset .x-panel-body h2 { font-size: 1.5em; margin: .75em 0 }
.x-panel-reset .x-panel-body h3 { font-size: 1.17em; margin: .83em 0 }
.x-panel-reset .x-panel-body h4,
.x-panel-reset .x-panel-body p,
.x-panel-reset .x-panel-body blockquote,
.x-panel-reset .x-panel-body ul,
.x-panel-reset .x-panel-body fieldset,
.x-panel-reset .x-panel-body form,
.x-panel-reset .x-panel-body ol,
.x-panel-reset .x-panel-body dl,
.x-panel-reset .x-panel-body dir,
.x-panel-reset .x-panel-body menu { margin: 1.12em 0 }
.x-panel-reset .x-panel-body h5 { font-size: .83em; margin: 1.5em 0 }
.x-panel-reset .x-panel-body h6 { font-size: .75em; margin: 1.67em 0 }
.x-panel-reset .x-panel-body h1,
.x-panel-reset .x-panel-body h2,
.x-panel-reset .x-panel-body h3,
.x-panel-reset .x-panel-body h4,
.x-panel-reset .x-panel-body h5,
.x-panel-reset .x-panel-body h6,
.x-panel-reset .x-panel-body b,
.x-panel-reset .x-panel-body strong { font-weight: bolder }
.x-panel-reset .x-panel-body blockquote { margin-left: 40px; margin-right: 40px }
.x-panel-reset .x-panel-body i,
.x-panel-reset .x-panel-body cite,
.x-panel-reset .x-panel-body em,
.x-panel-reset .x-panel-body var,
.x-panel-reset .x-panel-body address { font-style: italic }
.x-panel-reset .x-panel-body pre,
.x-panel-reset .x-panel-body tt,
.x-panel-reset .x-panel-body code,
.x-panel-reset .x-panel-body kbd,
.x-panel-reset .x-panel-body samp { font-family: monospace }
.x-panel-reset .x-panel-body pre { white-space: pre }
.x-panel-reset .x-panel-body button,
.x-panel-reset .x-panel-body textarea,
.x-panel-reset .x-panel-body input,
.x-panel-reset .x-panel-body select { display: inline-block }
.x-panel-reset .x-panel-body big { font-size: 1.17em }
.x-panel-reset .x-panel-body small,
.x-panel-reset .x-panel-body sub,
.x-panel-reset .x-panel-body sup { font-size: .83em }
.x-panel-reset .x-panel-body sub { vertical-align: sub }
.x-panel-reset .x-panel-body sup { vertical-align: super }
.x-panel-reset .x-panel-body table { border-spacing: 2px; }
.x-panel-reset .x-panel-body thead,
.x-panel-reset .x-panel-body tbody,
.x-panel-reset .x-panel-body tfoot { vertical-align: middle }
.x-panel-reset .x-panel-body td,
.x-panel-reset .x-panel-body th { vertical-align: inherit }
.x-panel-reset .x-panel-body s,
.x-panel-reset .x-panel-body strike,
.x-panel-reset .x-panel-body del { text-decoration: line-through }
.x-panel-reset .x-panel-body hr { border: 1px inset }
.x-panel-reset .x-panel-body ol,
.x-panel-reset .x-panel-body ul,
.x-panel-reset .x-panel-body dir,
.x-panel-reset .x-panel-body menu,
.x-panel-reset .x-panel-body dd { margin-left: 40px }
.x-panel-reset .x-panel-body ul, .x-panel-reset .x-panel-body menu, .x-panel-reset .x-panel-body dir { list-style-type: disc;}
.x-panel-reset .x-panel-body ol { list-style-type: decimal }
.x-panel-reset .x-panel-body ol ul,
.x-panel-reset .x-panel-body ul ol,
.x-panel-reset .x-panel-body ul ul,
.x-panel-reset .x-panel-body ol ol { margin-top: 0; margin-bottom: 0 }
.x-panel-reset .x-panel-body u,
.x-panel-reset .x-panel-body ins { text-decoration: underline }
.x-panel-reset .x-panel-body br:before { content: "\A" }
.x-panel-reset .x-panel-body :before, .x-panel-reset .x-panel-body :after { white-space: pre-line }
.x-panel-reset .x-panel-body center { text-align: center }
.x-panel-reset .x-panel-body :link, .x-panel-reset .x-panel-body :visited { text-decoration: underline }
.x-panel-reset .x-panel-body :focus { outline: invert dotted thin }
/* Begin bidirectionality settings (do not change) */
.x-panel-reset .x-panel-body BDO[DIR="ltr"] { direction: ltr; unicode-bidi: bidi-override }
.x-panel-reset .x-panel-body BDO[DIR="rtl"] { direction: rtl; unicode-bidi: bidi-override }

View file

@ -1,147 +1,147 @@
/*
* Ext JS Library 2.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-panel {
border-style: solid;
border-color: #99bbe8;
border-width:0;
}
.x-panel-header {
overflow:hidden;
zoom:1;
color:#15428b;
font:bold 11px tahoma,arial,verdana,sans-serif;
padding:5px 3px 4px 5px;
border:1px solid #99bbe8;
border:1px solid;
line-height: 15px;
background: transparent url(../images/default/panel/white-top-bottom.gif) repeat-x 0 -1px;
background: transparent repeat-x 0 -1px;
}
.x-panel-body {
border:1px solid #99bbe8;
border:1px solid;
border-top:0 none;
overflow:hidden;
background:white;
position: relative; /* added for item scroll positioning */
}
.x-panel-bbar .x-toolbar {
border:1px solid #99bbe8;
border-top:0 none;
overflow:hidden;
padding:2px;
}
.x-panel-tbar .x-toolbar {
border:1px solid #99bbe8;
.x-panel-bbar .x-toolbar, .x-panel-tbar .x-toolbar {
border:1px solid;
border-top:0 none;
overflow:hidden;
padding:2px;
}
.x-panel-tbar-noheader .x-toolbar, .x-panel-mc .x-panel-tbar .x-toolbar {
border-top:1px solid #99bbe8;
border-top:1px solid;
border-bottom: 0 none;
}
.x-panel-body-noheader, .x-panel-mc .x-panel-body {
border-top:1px solid #99bbe8;
border-top:1px solid;
}
.x-panel-header {
overflow:hidden;
zoom:1;
}
.x-panel-tl .x-panel-header {
color:#15428b;
font:bold 11px tahoma,arial,verdana,sans-serif;
padding:5px 0 4px 0;
border:0 none;
background:transparent;
background:transparent no-repeat;
}
.x-panel-tl .x-panel-icon, .x-window-tl .x-panel-icon {
padding-left:20px !important;
background-repeat:no-repeat;
background-position:0 4px;
zoom:1;
}
.x-panel-inline-icon {
width:16px;
height:16px;
height:16px;
background-repeat:no-repeat;
background-position:0 0;
vertical-align:middle;
margin-right:4px;
margin-top:-1px;
margin-bottom:-1px;
vertical-align:middle;
margin-right:4px;
margin-top:-1px;
margin-bottom:-1px;
}
.x-panel-tc {
background: transparent url(../images/default/panel/top-bottom.gif) repeat-x 0 0;
background: transparent repeat-x 0 0;
overflow:hidden;
}
/* fix ie7 strict mode bug */
.ext-strict .ext-ie7 .x-panel-tc {
overflow: visible;
}
.x-panel-tl {
background: transparent url(../images/default/panel/corners-sprite.gif) no-repeat 0 0;
background: transparent no-repeat 0 0;
padding-left:6px;
zoom:1;
border-bottom:1px solid #99bbe8;
border-bottom:1px solid;
}
.x-panel-tr {
background: transparent url(../images/default/panel/corners-sprite.gif) no-repeat right 0;
background: transparent no-repeat right 0;
zoom:1;
padding-right:6px;
}
.x-panel-bc {
background: transparent url(../images/default/panel/top-bottom.gif) repeat-x 0 bottom;
background: transparent repeat-x 0 bottom;
zoom:1;
}
.x-panel-bc .x-panel-footer {
zoom:1;
}
.x-panel-bl {
background: transparent url(../images/default/panel/corners-sprite.gif) no-repeat 0 bottom;
background: transparent no-repeat 0 bottom;
padding-left:6px;
zoom:1;
}
.x-panel-br {
background: transparent url(../images/default/panel/corners-sprite.gif) no-repeat right bottom;
background: transparent no-repeat right bottom;
padding-right:6px;
zoom:1;
}
.x-panel-mc {
border:0 none;
padding:0;
margin:0;
font: normal 11px tahoma,arial,helvetica,sans-serif;
padding-top:6px;
background:#dfe8f6;
}
.x-panel-mc .x-panel-body {
background:transparent;
background-color:transparent;
border: 0 none;
}
.x-panel-ml {
background: #fff url(../images/default/panel/left-right.gif) repeat-y 0 0;
background: repeat-y 0 0;
padding-left:6px;
zoom:1;
}
.x-panel-mr {
background: transparent url(../images/default/panel/left-right.gif) repeat-y right 0;
background: transparent repeat-y right 0;
padding-right:6px;
zoom:1;
}
.x-panel-bc .x-panel-footer {
padding-bottom:6px;
}
.x-panel-nofooter .x-panel-bc, .x-panel-nofooter .x-window-bc {
height:6px;
font-size:0;
@ -151,7 +151,8 @@
.x-panel-bwrap {
overflow:hidden;
zoom:1;
left:0;top:0;
left:0;
top:0;
}
.x-panel-body {
overflow:hidden;
@ -197,7 +198,7 @@
height:15px;
float:right;
cursor:pointer;
background:transparent url(../images/default/panel/tool-sprites.gif) no-repeat;
background:transparent no-repeat;
margin-left:2px;
}
@ -205,19 +206,24 @@
.x-tool-toggle {
background-position:0 -60px;
}
.x-tool-toggle-over {
background-position:-15px -60px;
}
.x-panel-collapsed .x-tool-toggle {
background-position:0 -75px;
}
.x-panel-collapsed .x-tool-toggle-over {
background-position:-15px -75px;
}
.x-tool-close {
background-position:0 -0;
}
.x-tool-close-over {
background-position:-15px 0;
}
@ -225,6 +231,7 @@
.x-tool-minimize {
background-position:0 -15px;
}
.x-tool-minimize-over {
background-position:-15px -15px;
}
@ -232,6 +239,7 @@
.x-tool-maximize {
background-position:0 -30px;
}
.x-tool-maximize-over {
background-position:-15px -30px;
}
@ -239,6 +247,7 @@
.x-tool-restore {
background-position:0 -45px;
}
.x-tool-restore-over {
background-position:-15px -45px;
}
@ -246,94 +255,165 @@
.x-tool-gear {
background-position:0 -90px;
}
.x-tool-gear-over {
background-position:-15px -90px;
}
.x-tool-prev {
background-position:0 -105px;
}
.x-tool-prev-over {
background-position:-15px -105px;
}
.x-tool-next {
background-position:0 -120px;
}
.x-tool-next-over {
background-position:-15px -120px;
}
.x-tool-pin {
background-position:0 -135px;
}
.x-tool-pin-over {
background-position:-15px -135px;
}
.x-tool-unpin {
background-position:0 -150px;
}
.x-tool-unpin-over {
background-position:-15px -150px;
}
.x-tool-right {
background-position:0 -165px;
}
.x-tool-right-over {
background-position:-15px -165px;
}
.x-tool-left {
background-position:0 -180px;
}
.x-tool-left-over {
background-position:-15px -180px;
}
.x-tool-up {
background-position:0 -210px;
}
.x-tool-up-over {
background-position:-15px -210px;
}
.x-tool-down {
background-position:0 -195px;
}
.x-tool-down-over {
background-position:-15px -195px;
}
.x-tool-up {
background-position:0 -210px;
}
.x-tool-up-over {
background-position:-15px -210px;
}
.x-tool-refresh {
background-position:0 -225px;
}
.x-tool-refresh-over {
background-position:-15px -225px;
}
.x-tool-plus {
background-position:0 -240px;
}
.x-tool-plus-over {
background-position:-15px -240px;
}
.x-tool-minus {
background-position:0 -255px;
}
.x-tool-minus-over {
background-position:-15px -255px;
}
.x-tool-plus {
background-position:0 -240px;
}
.x-tool-plus-over {
background-position:-15px -240px;
}
.x-tool-search {
background-position:0 -270px;
}
.x-tool-search-over {
background-position:-15px -270px;
}
.x-tool-save {
background-position:0 -285px;
}
.x-tool-save-over {
background-position:-15px -285px;
}
.x-tool-help {
background-position:0 -300px;
}
.x-tool-help-over {
background-position:-15px -300px;
}
.x-tool-print {
background-position:0 -315px;
}
.x-tool-print-over {
background-position:-15px -315px;
}
.x-tool-expand {
background-position:0 -330px;
}
.x-tool-expand-over {
background-position:-15px -330px;
}
.x-tool-collapse {
background-position:0 -345px;
}
.x-tool-collapse-over {
background-position:-15px -345px;
}
.x-tool-resize {
background-position:0 -360px;
}
.x-tool-resize-over {
background-position:-15px -360px;
}
.x-tool-move {
background-position:0 -375px;
}
.x-tool-move-over {
background-position:-15px -375px;
}
/* Ghosting */
.x-panel-ghost {
background:#cbddf3;
z-index:12000;
overflow:hidden;
position:absolute;
@ -349,7 +429,7 @@
overflow:hidden;
font-size:0;
line-height:0;
border:1px solid #99bbe8;
border:1px solid;
border-top:0 none;
display:block;
}
@ -359,66 +439,55 @@
}
.x-panel-dd-spacer {
border:2px dashed #99bbe8;
border:2px dashed;
}
/* Buttons */
.x-panel-btns-ct {
.x-panel-btns {
padding:5px;
overflow:hidden;
}
.x-panel-btns-ct .x-btn{
float:right;
clear:none;
}
.x-panel-btns-ct .x-panel-btns td {
border:0;
padding:0;
}
.x-panel-btns-ct .x-panel-btns-right table{
float:right;
clear:none;
}
.x-panel-btns-ct .x-panel-btns-left table{
float:left;
clear:none;
}
.x-panel-btns-ct .x-panel-btns-center{
text-align:center; /*ie*/
}
.x-panel-btns-ct .x-panel-btns-center table{
margin:0 auto; /*everyone else*/
}
.x-panel-btns-ct table td.x-panel-btn-td{
.x-panel-btns td.x-toolbar-cell{
padding:3px;
}
.x-panel-btns-ct .x-btn-focus .x-btn-left{
.x-panel-btns .x-btn-focus .x-btn-left{
background-position:0 -147px;
}
.x-panel-btns-ct .x-btn-focus .x-btn-right{
.x-panel-btns .x-btn-focus .x-btn-right{
background-position:0 -168px;
}
.x-panel-btns-ct .x-btn-focus .x-btn-center{
.x-panel-btns .x-btn-focus .x-btn-center{
background-position:0 -189px;
}
.x-panel-btns-ct .x-btn-over .x-btn-left{
.x-panel-btns .x-btn-over .x-btn-left{
background-position:0 -63px;
}
.x-panel-btns-ct .x-btn-over .x-btn-right{
.x-panel-btns .x-btn-over .x-btn-right{
background-position:0 -84px;
}
.x-panel-btns-ct .x-btn-over .x-btn-center{
.x-panel-btns .x-btn-over .x-btn-center{
background-position:0 -105px;
}
.x-panel-btns-ct .x-btn-click .x-btn-center{
.x-panel-btns .x-btn-click .x-btn-center{
background-position:0 -126px;
}
.x-panel-btns-ct .x-btn-click .x-btn-right{
.x-panel-btns .x-btn-click .x-btn-right{
background-position:0 -84px;
}
.x-panel-btns-ct .x-btn-click .x-btn-left{
.x-panel-btns .x-btn-click .x-btn-left{
background-position:0 -63px;
}
}
.x-panel-fbar td,.x-panel-fbar span,.x-panel-fbar input,.x-panel-fbar div,.x-panel-fbar select,.x-panel-fbar label{
white-space: nowrap;
}

View file

@ -0,0 +1,65 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-pivotgrid .x-grid3-header-offset table {
width: 100%;
border-collapse: collapse;
}
.x-pivotgrid .x-grid3-header-offset table td {
padding: 4px 3px 4px 5px;
text-align: center;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size: 11px;
line-height: 13px;
font-family: tahoma;
}
.x-pivotgrid .x-grid3-row-headers {
display: block;
float: left;
}
.x-pivotgrid .x-grid3-row-headers table {
height: 100%;
width: 100%;
border-collapse: collapse;
}
.x-pivotgrid .x-grid3-row-headers table td {
height: 18px;
padding: 2px 7px 0 0;
text-align: right;
text-overflow: ellipsis;
font-size: 11px;
font-family: tahoma;
}
.ext-gecko .x-pivotgrid .x-grid3-row-headers table td {
height: 21px;
}
.x-grid3-header-title {
top: 0%;
left: 0%;
position: absolute;
text-align: center;
vertical-align: middle;
font-family: tahoma;
font-size: 11px;
padding: auto 1px;
display: table-cell;
}
.x-grid3-header-title span {
position: absolute;
top: 50%;
left: 0%;
width: 100%;
margin-top: -6px;
}

View file

@ -0,0 +1,46 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-progress-wrap {
border:1px solid;
overflow:hidden;
}
.x-progress-inner {
height:18px;
background:repeat-x;
position:relative;
}
.x-progress-bar {
height:18px;
float:left;
width:0;
background: repeat-x left center;
border-top:1px solid;
border-bottom:1px solid;
border-right:1px solid;
}
.x-progress-text {
padding:1px 5px;
overflow:hidden;
position:absolute;
left:0;
text-align:center;
}
.x-progress-text-back {
line-height:16px;
}
.ext-ie .x-progress-text-back {
line-height:15px;
}
.ext-strict .ext-ie7 .x-progress-text-back{
width: 100%;
}

View file

@ -0,0 +1,153 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-tip{
position: absolute;
top: 0;
left:0;
visibility: hidden;
z-index: 20002;
border:0 none;
}
.x-tip .x-tip-close{
height: 15px;
float:right;
width: 15px;
margin:0 0 2px 2px;
cursor:pointer;
display:none;
}
.x-tip .x-tip-tc {
background: transparent no-repeat 0 -62px;
padding-top:3px;
overflow:hidden;
zoom:1;
}
.x-tip .x-tip-tl {
background: transparent no-repeat 0 0;
padding-left:6px;
overflow:hidden;
zoom:1;
}
.x-tip .x-tip-tr {
background: transparent no-repeat right 0;
padding-right:6px;
overflow:hidden;
zoom:1;
}
.x-tip .x-tip-bc {
background: transparent no-repeat 0 -121px;
height:3px;
overflow:hidden;
}
.x-tip .x-tip-bl {
background: transparent no-repeat 0 -59px;
padding-left:6px;
zoom:1;
}
.x-tip .x-tip-br {
background: transparent no-repeat right -59px;
padding-right:6px;
zoom:1;
}
.x-tip .x-tip-mc {
border:0 none;
}
.x-tip .x-tip-ml {
background: no-repeat 0 -124px;
padding-left:6px;
zoom:1;
}
.x-tip .x-tip-mr {
background: transparent no-repeat right -124px;
padding-right:6px;
zoom:1;
}
.ext-ie .x-tip .x-tip-header,.ext-ie .x-tip .x-tip-tc {
font-size:0;
line-height:0;
}
.ext-border-box .x-tip .x-tip-header, .ext-border-box .x-tip .x-tip-tc{
line-height: 1px;
}
.x-tip .x-tip-header-text {
padding:0;
margin:0 0 2px 0;
}
.x-tip .x-tip-body {
margin:0 !important;
line-height:14px;
padding:0;
}
.x-tip .x-tip-body .loading-indicator {
margin:0;
}
.x-tip-draggable .x-tip-header,.x-tip-draggable .x-tip-header-text {
cursor:move;
}
.x-form-invalid-tip .x-tip-tc {
background: repeat-x 0 -12px;
padding-top:6px;
}
.x-form-invalid-tip .x-tip-bc {
background: repeat-x 0 -18px;
height:6px;
}
.x-form-invalid-tip .x-tip-bl {
background: no-repeat 0 -6px;
}
.x-form-invalid-tip .x-tip-br {
background: no-repeat right -6px;
}
.x-form-invalid-tip .x-tip-body {
padding:2px;
}
.x-form-invalid-tip .x-tip-body {
padding-left:24px;
background:transparent no-repeat 2px 2px;
}
.x-tip-anchor {
position: absolute;
width: 9px;
height: 10px;
overflow:hidden;
background: transparent no-repeat 0 0;
zoom:1;
}
.x-tip-anchor-bottom {
background-position: -9px 0;
}
.x-tip-anchor-right {
background-position: -18px 0;
width: 10px;
}
.x-tip-anchor-left {
background-position: -28px 0;
width: 10px;
}

View file

@ -1,9 +1,13 @@
/*
* Ext JS Library 2.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote,th,td{margin:0;padding:0;}img,body,html{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}ol,ul {list-style:none;}caption,th {text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;}q:before,q:after{content:'';}
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote,th,td{margin:0;padding:0;}img,body,html{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}ol,ul {list-style:none;}caption,th {text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;}q:before,q:after{content:'';}
.ext-forced-border-box, .ext-forced-border-box * {
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
-webkit-box-sizing: border-box;
}

View file

@ -1,143 +1,149 @@
/*
* Ext JS Library 2.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
.x-resizable-handle {
position:absolute;
z-index:100;
/* ie needs these */
font-size:1px;
line-height:6px;
overflow:hidden;
background:white;
filter:alpha(opacity=0);
opacity:0;
zoom:1;
}
.x-resizable-handle-east{
width:6px;
cursor:e-resize;
right:0;
top:0;
height:100%;
}
.ext-ie .x-resizable-handle-east {
margin-right:-1px; /*IE rounding error*/
}
.x-resizable-handle-south{
width:100%;
cursor:s-resize;
left:0;
bottom:0;
height:6px;
}
.ext-ie .x-resizable-handle-south {
margin-bottom:-1px; /*IE rounding error*/
}
.x-resizable-handle-west{
width:6px;
cursor:w-resize;
left:0;
top:0;
height:100%;
}
.x-resizable-handle-north{
width:100%;
cursor:n-resize;
left:0;
top:0;
height:6px;
}
.x-resizable-handle-southeast{
width:6px;
cursor:se-resize;
right:0;
bottom:0;
height:6px;
z-index:101;
}
.x-resizable-handle-northwest{
width:6px;
cursor:nw-resize;
left:0;
top:0;
height:6px;
z-index:101;
}
.x-resizable-handle-northeast{
width:6px;
cursor:ne-resize;
right:0;
top:0;
height:6px;
z-index:101;
}
.x-resizable-handle-southwest{
width:6px;
cursor:sw-resize;
left:0;
bottom:0;
height:6px;
z-index:101;
}
.x-resizable-over .x-resizable-handle, .x-resizable-pinned .x-resizable-handle{
filter:alpha(opacity=100);
opacity:1;
}
.x-resizable-over .x-resizable-handle-east, .x-resizable-pinned .x-resizable-handle-east{
background:url(../images/default/sizer/e-handle.gif);
background-position: left;
}
.x-resizable-over .x-resizable-handle-west, .x-resizable-pinned .x-resizable-handle-west{
background:url(../images/default/sizer/e-handle.gif);
background-position: left;
}
.x-resizable-over .x-resizable-handle-south, .x-resizable-pinned .x-resizable-handle-south{
background:url(../images/default/sizer/s-handle.gif);
background-position: top;
}
.x-resizable-over .x-resizable-handle-north, .x-resizable-pinned .x-resizable-handle-north{
background:url(../images/default/sizer/s-handle.gif);
background-position: top;
}
.x-resizable-over .x-resizable-handle-southeast, .x-resizable-pinned .x-resizable-handle-southeast{
background:url(../images/default/sizer/se-handle.gif);
background-position: top left;
}
.x-resizable-over .x-resizable-handle-northwest, .x-resizable-pinned .x-resizable-handle-northwest{
background:url(../images/default/sizer/nw-handle.gif);
background-position:bottom right;
}
.x-resizable-over .x-resizable-handle-northeast, .x-resizable-pinned .x-resizable-handle-northeast{
background:url(../images/default/sizer/ne-handle.gif);
background-position: bottom left;
}
.x-resizable-over .x-resizable-handle-southwest, .x-resizable-pinned .x-resizable-handle-southwest{
background:url(../images/default/sizer/sw-handle.gif);
background-position: top right;
}
.x-resizable-proxy{
border: 1px dashed #3b5a82;
position:absolute;
overflow:hidden;
display:none;
left:0;top:0;
z-index:50000;
}
.x-resizable-overlay{
width:100%;
height:100%;
display:none;
position:absolute;
left:0;
top:0;
background:white;
z-index:200000;
-moz-opacity: 0;
opacity:0;
filter: alpha(opacity=0);
}
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-resizable-handle {
position:absolute;
z-index:100;
/* ie needs these */
font-size:1px;
line-height:6px;
overflow:hidden;
filter:alpha(opacity=0);
opacity:0;
zoom:1;
}
.x-resizable-handle-east{
width:6px;
cursor:e-resize;
right:0;
top:0;
height:100%;
}
.ext-ie .x-resizable-handle-east {
margin-right:-1px; /*IE rounding error*/
}
.x-resizable-handle-south{
width:100%;
cursor:s-resize;
left:0;
bottom:0;
height:6px;
}
.ext-ie .x-resizable-handle-south {
margin-bottom:-1px; /*IE rounding error*/
}
.x-resizable-handle-west{
width:6px;
cursor:w-resize;
left:0;
top:0;
height:100%;
}
.x-resizable-handle-north{
width:100%;
cursor:n-resize;
left:0;
top:0;
height:6px;
}
.x-resizable-handle-southeast{
width:6px;
cursor:se-resize;
right:0;
bottom:0;
height:6px;
z-index:101;
}
.x-resizable-handle-northwest{
width:6px;
cursor:nw-resize;
left:0;
top:0;
height:6px;
z-index:101;
}
.x-resizable-handle-northeast{
width:6px;
cursor:ne-resize;
right:0;
top:0;
height:6px;
z-index:101;
}
.x-resizable-handle-southwest{
width:6px;
cursor:sw-resize;
left:0;
bottom:0;
height:6px;
z-index:101;
}
.x-resizable-over .x-resizable-handle, .x-resizable-pinned .x-resizable-handle{
filter:alpha(opacity=100);
opacity:1;
}
.x-resizable-over .x-resizable-handle-east, .x-resizable-pinned .x-resizable-handle-east,
.x-resizable-over .x-resizable-handle-west, .x-resizable-pinned .x-resizable-handle-west
{
background-position: left;
}
.x-resizable-over .x-resizable-handle-south, .x-resizable-pinned .x-resizable-handle-south,
.x-resizable-over .x-resizable-handle-north, .x-resizable-pinned .x-resizable-handle-north
{
background-position: top;
}
.x-resizable-over .x-resizable-handle-southeast, .x-resizable-pinned .x-resizable-handle-southeast{
background-position: top left;
}
.x-resizable-over .x-resizable-handle-northwest, .x-resizable-pinned .x-resizable-handle-northwest{
background-position:bottom right;
}
.x-resizable-over .x-resizable-handle-northeast, .x-resizable-pinned .x-resizable-handle-northeast{
background-position: bottom left;
}
.x-resizable-over .x-resizable-handle-southwest, .x-resizable-pinned .x-resizable-handle-southwest{
background-position: top right;
}
.x-resizable-proxy{
border: 1px dashed;
position:absolute;
overflow:hidden;
display:none;
left:0;
top:0;
z-index:50000;
}
.x-resizable-overlay{
width:100%;
height:100%;
display:none;
position:absolute;
left:0;
top:0;
z-index:200000;
-moz-opacity: 0;
opacity:0;
filter: alpha(opacity=0);
}

View file

@ -1,90 +1,103 @@
/*
* Ext JS Library 2.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
/* Shared styles */
.x-slider {
zoom:1;
}
.x-slider-inner {
position:relative;
left:0;
top:0;
overflow:visible;
zoom:1;
}
.x-slider-focus {
position:absolute;
left:0;
top:0;
width:1px;
height:1px;
line-height:1px;
font-size:1px;
-moz-outline:0 none;
outline:0 none;
-moz-user-select: text;
-khtml-user-select: text;
}
/* Horizontal styles */
.x-slider-horz {
padding-left:7px;
background:transparent url(../images/default/slider/slider-bg.png) no-repeat 0 -22px;
}
.x-slider-horz .x-slider-end {
padding-right:7px;
zoom:1;
background:transparent url(../images/default/slider/slider-bg.png) no-repeat right -44px;
}
.x-slider-horz .x-slider-inner {
background:transparent url(../images/default/slider/slider-bg.png) repeat-x 0 0;
height:22px;
}
.x-slider-horz .x-slider-thumb {
width:14px;
height:15px;
position:absolute;
left:0;
top:3px;
background:transparent url(../images/default/slider/slider-thumb.png) no-repeat 0 0;
}
.x-slider-horz .x-slider-thumb-over {
background-position: -14px -15px;
}
.x-slider-horz .x-slider-thumb-drag {
background-position: -28px -30px;
}
/* Vertical styles */
.x-slider-vert {
padding-top:7px;
background:transparent url(../images/default/slider/slider-v-bg.png) no-repeat -44px 0;
width:22px;
}
.x-slider-vert .x-slider-end {
padding-bottom:7px;
zoom:1;
background:transparent url(../images/default/slider/slider-v-bg.png) no-repeat -22px bottom;
}
.x-slider-vert .x-slider-inner {
background:transparent url(../images/default/slider/slider-v-bg.png) repeat-y 0 0;
}
.x-slider-vert .x-slider-thumb {
width:15px;
height:14px;
position:absolute;
left:3px;
bottom:0;
background:transparent url(../images/default/slider/slider-v-thumb.png) no-repeat 0 0;
}
.x-slider-vert .x-slider-thumb-over {
background-position: -15px -14px;
}
.x-slider-vert .x-slider-thumb-drag {
background-position: -30px -28px;
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
/* Shared styles */
.x-slider {
zoom:1;
}
.x-slider-inner {
position:relative;
left:0;
top:0;
overflow:visible;
zoom:1;
}
.x-slider-focus {
position:absolute;
left:0;
top:0;
width:1px;
height:1px;
line-height:1px;
font-size:1px;
-moz-outline:0 none;
outline:0 none;
-moz-user-select: none;
-khtml-user-select:none;
-webkit-user-select:ignore;
display:block;
overflow:hidden;
}
/* Horizontal styles */
.x-slider-horz {
padding-left:7px;
background:transparent no-repeat 0 -22px;
}
.x-slider-horz .x-slider-end {
padding-right:7px;
zoom:1;
background:transparent no-repeat right -44px;
}
.x-slider-horz .x-slider-inner {
background:transparent repeat-x 0 0;
height:22px;
}
.x-slider-horz .x-slider-thumb {
width:14px;
height:15px;
position:absolute;
left:0;
top:3px;
background:transparent no-repeat 0 0;
}
.x-slider-horz .x-slider-thumb-over {
background-position: -14px -15px;
}
.x-slider-horz .x-slider-thumb-drag {
background-position: -28px -30px;
}
/* Vertical styles */
.x-slider-vert {
padding-top:7px;
background:transparent no-repeat -44px 0;
width:22px;
}
.x-slider-vert .x-slider-end {
padding-bottom:7px;
zoom:1;
background:transparent no-repeat -22px bottom;
}
.x-slider-vert .x-slider-inner {
background:transparent repeat-y 0 0;
}
.x-slider-vert .x-slider-thumb {
width:15px;
height:14px;
position:absolute;
left:3px;
bottom:0;
background:transparent no-repeat 0 0;
}
.x-slider-vert .x-slider-thumb-over {
background-position: -15px -14px;
}
.x-slider-vert .x-slider-thumb-drag {
background-position: -30px -28px;
}

View file

@ -1,39 +1,36 @@
/*
* Ext JS Library 2.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-tab-panel {
overflow:hidden;
}
.x-tab-panel-header, .x-tab-panel-footer {
background: #deecfd;
border: 1px solid #8db2e3;
border: 1px solid;
overflow:hidden;
zoom:1;
}
.x-tab-panel-header {
border: 1px solid #8db2e3;
border: 1px solid;
padding-bottom: 2px;
}
.x-tab-panel-footer {
border: 1px solid #8db2e3;
border: 1px solid;
padding-top: 2px;
}
.x-tab-strip-wrap {
width:100%;
overflow:hidden;
position:relative;
zoom:1;
}
ul.x-tab-strip {
display:block;
width:5000px;
@ -42,14 +39,14 @@ ul.x-tab-strip {
ul.x-tab-strip-top{
padding-top: 1px;
background: url(../images/default/tabs/tab-strip-bg.gif) #cedff5 repeat-x bottom;
border-bottom: 1px solid #8db2e3;
background: repeat-x bottom;
border-bottom: 1px solid;
}
ul.x-tab-strip-bottom{
padding-bottom: 1px;
background: url(../images/default/tabs/tab-strip-btm-bg.gif) #cedff5 repeat-x top;
border-top: 1px solid #8db2e3;
background: repeat-x top;
border-top: 1px solid;
border-bottom: 0 none;
}
@ -57,6 +54,7 @@ ul.x-tab-strip-bottom{
background:transparent !important;
padding-top:0 !important;
}
.x-tab-panel-header-plain {
background:transparent !important;
border-width:0 !important;
@ -65,15 +63,16 @@ ul.x-tab-strip-bottom{
.x-tab-panel-header-plain .x-tab-strip-spacer,
.x-tab-panel-footer-plain .x-tab-strip-spacer {
border:1px solid #8db2e3;
border:1px solid;
height:2px;
background: #deecfd;
font-size:1px;
line-height:1px;
}
.x-tab-panel-header-plain .x-tab-strip-spacer {
border-top: 0 none;
}
.x-tab-panel-footer-plain .x-tab-strip-spacer {
border-bottom: 0 none;
}
@ -82,6 +81,7 @@ ul.x-tab-strip-bottom{
background:transparent !important;
padding-bottom:0 !important;
}
.x-tab-panel-footer-plain {
background:transparent !important;
border-width:0 !important;
@ -93,13 +93,11 @@ ul.x-tab-strip-bottom{
height:3px;
}
ul.x-tab-strip li {
float:left;
margin-left:2px;
}
ul.x-tab-strip li.x-tab-edge {
float:left;
margin:0 !important;
@ -130,46 +128,41 @@ ul.x-tab-strip li.x-tab-edge {
}
.x-tab-strip span.x-tab-strip-text {
font:normal 11px tahoma,arial,helvetica;
color:#416aa3;
white-space: nowrap;
cursor:pointer;
padding:4px 0;
}
.x-tab-strip-top .x-tab-with-icon .x-tab-right {
padding-left:6px;
}
.x-tab-strip .x-tab-with-icon span.x-tab-strip-text {
padding-left:20px;
background-position: 0 3px;
background-repeat: no-repeat;
}
.x-tab-strip-over span.x-tab-strip-text {
color:#15428b;
}
.x-tab-strip-active, .x-tab-strip-active a.x-tab-right {
cursor:default;
}
.x-tab-strip-active span.x-tab-strip-text {
cursor:default;
color:#15428b;
font-weight:bold;
}
.x-tab-strip-disabled .x-tabs-text {
cursor:default;
color:#aaaaaa;
}
.x-tab-panel-body {
overflow:hidden;
}
.x-tab-panel-bwrap {
overflow:hidden;
}
.ext-ie .x-tab-strip .x-tab-right {
position:relative;
}
@ -178,6 +171,32 @@ ul.x-tab-strip li.x-tab-edge {
margin-bottom:-1px;
}
/*
* Horrible hack for IE8 in quirks mode
*/
.ext-ie8 .x-tab-strip li {
position: relative;
}
.ext-border-box .ext-ie8 .x-tab-strip-top .x-tab-right {
top: 1px;
}
.ext-ie8 .x-tab-strip-top {
padding-top: 1;
}
.ext-border-box .ext-ie8 .x-tab-strip-top {
padding-top: 0;
}
.ext-ie8 .x-tab-strip .x-tab-strip-closable a.x-tab-strip-close {
top:3px;
}
.ext-border-box .ext-ie8 .x-tab-strip .x-tab-strip-closable a.x-tab-strip-close {
top:4px;
}
.ext-ie8 .x-tab-strip-bottom .x-tab-right{
top:0;
}
.x-tab-strip-top .x-tab-strip-active .x-tab-right span.x-tab-strip-text {
padding-bottom:5px;
}
@ -185,31 +204,33 @@ ul.x-tab-strip li.x-tab-edge {
.x-tab-strip-bottom .x-tab-strip-active .x-tab-right {
margin-top:-1px;
}
.x-tab-strip-bottom .x-tab-strip-active .x-tab-right span.x-tab-strip-text {
padding-top:5px;
}
.x-tab-strip-top .x-tab-right {
background: transparent url(../images/default/tabs/tabs-sprite.gif) no-repeat 0 -51px;
background: transparent no-repeat 0 -51px;
padding-left:10px;
}
.x-tab-strip-top .x-tab-left {
background: transparent url(../images/default/tabs/tabs-sprite.gif) no-repeat right -351px;
background: transparent no-repeat right -351px;
padding-right:10px;
}
.x-tab-strip-top .x-tab-strip-inner {
background: transparent url(../images/default/tabs/tabs-sprite.gif) repeat-x 0 -201px;
background: transparent repeat-x 0 -201px;
}
.x-tab-strip-top .x-tab-strip-over .x-tab-right {
background-position:0 -101px;
}
.x-tab-strip-top .x-tab-strip-over .x-tab-left {
background-position:right -401px;
}
.x-tab-strip-top .x-tab-strip-over .x-tab-strip-inner {
background-position:0 -251px;
}
@ -227,29 +248,34 @@ ul.x-tab-strip li.x-tab-edge {
}
.x-tab-strip-bottom .x-tab-right {
background: url(../images/default/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom right;
background: no-repeat bottom right;
}
.x-tab-strip-bottom .x-tab-left {
background: url(../images/default/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom left;
background: no-repeat bottom left;
}
.x-tab-strip-bottom .x-tab-strip-active .x-tab-right {
background: url(../images/default/tabs/tab-btm-right-bg.gif) no-repeat bottom left;
background: no-repeat bottom right;
}
.x-tab-strip-bottom .x-tab-strip-active .x-tab-left {
background: url(../images/default/tabs/tab-btm-left-bg.gif) no-repeat bottom right;
background: no-repeat bottom left;
}
.x-tab-strip-bottom .x-tab-left {
margin-right: 3px;
padding:0 10px;
}
.x-tab-strip-bottom .x-tab-right {
padding:0;
}
.x-tab-strip .x-tab-strip-close {
display:none;
}
.x-tab-strip-closable {
position:relative;
}
@ -259,12 +285,12 @@ ul.x-tab-strip li.x-tab-edge {
}
.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close {
background-image:url(../images/default/tabs/tab-close.gif);
opacity:.6;
-moz-opacity:.6;
background-repeat:no-repeat;
display:block;
width:11px;height:11px;
width:11px;
height:11px;
position:absolute;
top:3px;
right:3px;
@ -277,25 +303,25 @@ ul.x-tab-strip li.x-tab-edge {
-moz-opacity:.8;
}
.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{
background-image:url(../images/default/tabs/tab-close.gif);
opacity:1;
-moz-opacity:1;
}
.x-tab-panel-body {
border: 1px solid #8db2e3;
background:#fff;
border: 1px solid;
}
.x-tab-panel-body-top {
border-top: 0 none;
}
.x-tab-panel-body-bottom {
border-bottom: 0 none;
}
.x-tab-scroller-left {
background: transparent url(../images/default/tabs/scroll-left.gif) no-repeat -18px 0;
border-bottom: 1px solid #8db2e3;
background: transparent no-repeat -18px 0;
border-bottom: 1px solid;
width:18px;
position:absolute;
left:0;
@ -306,6 +332,7 @@ ul.x-tab-strip li.x-tab-edge {
.x-tab-scroller-left-over {
background-position: 0 0;
}
.x-tab-scroller-left-disabled {
background-position: -18px 0;
opacity:.5;
@ -313,9 +340,10 @@ ul.x-tab-strip li.x-tab-edge {
filter:alpha(opacity=50);
cursor:default;
}
.x-tab-scroller-right {
background: transparent url(../images/default/tabs/scroll-right.gif) no-repeat 0 0;
border-bottom: 1px solid #8db2e3;
background: transparent no-repeat 0 0;
border-bottom: 1px solid;
width:18px;
position:absolute;
right:0;
@ -323,9 +351,11 @@ ul.x-tab-strip li.x-tab-edge {
z-index:10;
cursor:pointer;
}
.x-tab-scroller-right-over {
background-position: -18px 0;
}
.x-tab-scroller-right-disabled {
background-position: 0 0;
opacity:.5;
@ -334,6 +364,10 @@ ul.x-tab-strip li.x-tab-edge {
cursor:default;
}
.x-tab-scrolling-bottom .x-tab-scroller-left, .x-tab-scrolling-bottom .x-tab-scroller-right{
margin-top: 1px;
}
.x-tab-scrolling .x-tab-strip-wrap {
margin-left:18px;
margin-right:18px;
@ -344,14 +378,14 @@ ul.x-tab-strip li.x-tab-edge {
}
.x-tab-panel-bbar .x-toolbar {
border:1px solid #99bbe8;
border:1px solid;
border-top:0 none;
overflow:hidden;
padding:2px;
}
.x-tab-panel-tbar .x-toolbar {
border:1px solid #99bbe8;
border:1px solid;
border-top:0 none;
overflow:hidden;
padding:2px;

View file

@ -0,0 +1,246 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-toolbar{
border-style:solid;
border-width:0 0 1px 0;
display: block;
padding:2px;
background:repeat-x top left;
position:relative;
left:0;
top:0;
zoom:1;
overflow:hidden;
}
.x-toolbar-left {
width: 100%;
}
.x-toolbar .x-item-disabled .x-btn-icon {
opacity: .35;
-moz-opacity: .35;
filter: alpha(opacity=35);
}
.x-toolbar td {
vertical-align:middle;
}
.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{
white-space: nowrap;
}
.x-toolbar .x-item-disabled {
cursor:default;
opacity:.6;
-moz-opacity:.6;
filter:alpha(opacity=60);
}
.x-toolbar .x-item-disabled * {
cursor:default;
}
.x-toolbar .x-toolbar-cell {
vertical-align:middle;
}
.x-toolbar .x-btn-tl, .x-toolbar .x-btn-tr, .x-toolbar .x-btn-tc, .x-toolbar .x-btn-ml, .x-toolbar .x-btn-mr,
.x-toolbar .x-btn-mc, .x-toolbar .x-btn-bl, .x-toolbar .x-btn-br, .x-toolbar .x-btn-bc
{
background-position: 500px 500px;
}
/* These rules are duplicated from button.css to give priority of x-toolbar rules above */
.x-toolbar .x-btn-over .x-btn-tl{
background-position: -6px 0;
}
.x-toolbar .x-btn-over .x-btn-tr{
background-position: -9px 0;
}
.x-toolbar .x-btn-over .x-btn-tc{
background-position: 0 -9px;
}
.x-toolbar .x-btn-over .x-btn-ml{
background-position: -6px -24px;
}
.x-toolbar .x-btn-over .x-btn-mr{
background-position: -9px -24px;
}
.x-toolbar .x-btn-over .x-btn-mc{
background-position: 0 -2168px;
}
.x-toolbar .x-btn-over .x-btn-bl{
background-position: -6px -3px;
}
.x-toolbar .x-btn-over .x-btn-br{
background-position: -9px -3px;
}
.x-toolbar .x-btn-over .x-btn-bc{
background-position: 0 -18px;
}
.x-toolbar .x-btn-click .x-btn-tl, .x-toolbar .x-btn-menu-active .x-btn-tl, .x-toolbar .x-btn-pressed .x-btn-tl{
background-position: -12px 0;
}
.x-toolbar .x-btn-click .x-btn-tr, .x-toolbar .x-btn-menu-active .x-btn-tr, .x-toolbar .x-btn-pressed .x-btn-tr{
background-position: -15px 0;
}
.x-toolbar .x-btn-click .x-btn-tc, .x-toolbar .x-btn-menu-active .x-btn-tc, .x-toolbar .x-btn-pressed .x-btn-tc{
background-position: 0 -12px;
}
.x-toolbar .x-btn-click .x-btn-ml, .x-toolbar .x-btn-menu-active .x-btn-ml, .x-toolbar .x-btn-pressed .x-btn-ml{
background-position: -12px -24px;
}
.x-toolbar .x-btn-click .x-btn-mr, .x-toolbar .x-btn-menu-active .x-btn-mr, .x-toolbar .x-btn-pressed .x-btn-mr{
background-position: -15px -24px;
}
.x-toolbar .x-btn-click .x-btn-mc, .x-toolbar .x-btn-menu-active .x-btn-mc, .x-toolbar .x-btn-pressed .x-btn-mc{
background-position: 0 -3240px;
}
.x-toolbar .x-btn-click .x-btn-bl, .x-toolbar .x-btn-menu-active .x-btn-bl, .x-toolbar .x-btn-pressed .x-btn-bl{
background-position: -12px -3px;
}
.x-toolbar .x-btn-click .x-btn-br, .x-toolbar .x-btn-menu-active .x-btn-br, .x-toolbar .x-btn-pressed .x-btn-br{
background-position: -15px -3px;
}
.x-toolbar .x-btn-click .x-btn-bc, .x-toolbar .x-btn-menu-active .x-btn-bc, .x-toolbar .x-btn-pressed .x-btn-bc{
background-position: 0 -21px;
}
.x-toolbar div.xtb-text{
padding:2px 2px 0;
line-height:16px;
display:block;
}
.x-toolbar .xtb-sep {
background-position: center;
background-repeat: no-repeat;
display: block;
font-size: 1px;
height: 16px;
width:4px;
overflow: hidden;
cursor:default;
margin: 0 2px 0;
border:0;
}
.x-toolbar .xtb-spacer {
width:2px;
}
/* Paging Toolbar */
.x-tbar-page-number{
width:30px;
height:14px;
}
.ext-ie .x-tbar-page-number{
margin-top: 2px;
}
.x-paging-info {
position:absolute;
top:5px;
right: 8px;
}
/* floating */
.x-toolbar-ct {
width:100%;
}
.x-toolbar-right td {
text-align: center;
}
.x-panel-tbar, .x-panel-bbar, .x-window-tbar, .x-window-bbar, .x-tab-panel-tbar, .x-tab-panel-bbar, .x-plain-tbar, .x-plain-bbar {
overflow:hidden;
zoom:1;
}
.x-toolbar-more .x-btn-small .x-btn-text{
height: 16px;
width: 12px;
}
.x-toolbar-more em.x-btn-arrow {
display:inline;
background-color:transparent;
padding-right:0;
}
.x-toolbar-more .x-btn-mc em.x-btn-arrow {
background-image: none;
}
div.x-toolbar-no-items {
color:gray !important;
padding:5px 10px !important;
}
/* fix ie toolbar form items */
.ext-border-box .x-toolbar-cell .x-form-text {
margin-bottom:-1px !important;
}
.ext-border-box .x-toolbar-cell .x-form-field-wrap .x-form-text {
margin:0 !important;
}
.ext-ie .x-toolbar-cell .x-form-field-wrap {
height:21px;
}
.ext-ie .x-toolbar-cell .x-form-text {
position:relative;
top:-1px;
}
.ext-strict .ext-ie8 .x-toolbar-cell .x-form-field-trigger-wrap .x-form-text, .ext-strict .ext-ie .x-toolbar-cell .x-form-text {
top: 0px;
}
.x-toolbar-right td .x-form-field-trigger-wrap{
text-align: left;
}
.x-toolbar-cell .x-form-checkbox, .x-toolbar-cell .x-form-radio{
margin-top: 5px;
}
.x-toolbar-cell .x-form-cb-label{
vertical-align: bottom;
top: 1px;
}
.ext-ie .x-toolbar-cell .x-form-checkbox, .ext-ie .x-toolbar-cell .x-form-radio{
margin-top: 4px;
}
.ext-ie .x-toolbar-cell .x-form-cb-label{
top: 0;
}

View file

@ -0,0 +1,218 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.ext-strict .ext-ie .x-tree .x-panel-bwrap{
position:relative;
overflow:hidden;
}
.x-tree-icon, .x-tree-ec-icon, .x-tree-elbow-line, .x-tree-elbow, .x-tree-elbow-end, .x-tree-elbow-plus, .x-tree-elbow-minus, .x-tree-elbow-end-plus, .x-tree-elbow-end-minus{
border: 0 none;
height: 18px;
margin: 0;
padding: 0;
vertical-align: top;
width: 16px;
background-repeat: no-repeat;
}
.x-tree-node-collapsed .x-tree-node-icon, .x-tree-node-expanded .x-tree-node-icon, .x-tree-node-leaf .x-tree-node-icon{
border: 0 none;
height: 18px;
margin: 0;
padding: 0;
vertical-align: top;
width: 16px;
background-position:center;
background-repeat: no-repeat;
}
.ext-ie .x-tree-node-indent img, .ext-ie .x-tree-node-icon, .ext-ie .x-tree-ec-icon {
vertical-align: middle !important;
}
.ext-strict .ext-ie8 .x-tree-node-indent img, .ext-strict .ext-ie8 .x-tree-node-icon, .ext-strict .ext-ie8 .x-tree-ec-icon {
vertical-align: top !important;
}
/* checkboxes */
input.x-tree-node-cb {
margin-left:1px;
height: 19px;
vertical-align: bottom;
}
.ext-ie input.x-tree-node-cb {
margin-left:0;
margin-top: 1px;
width: 16px;
height: 16px;
vertical-align: middle;
}
.ext-strict .ext-ie8 input.x-tree-node-cb{
margin: 1px 1px;
height: 14px;
vertical-align: bottom;
}
.ext-strict .ext-ie8 input.x-tree-node-cb + a{
vertical-align: bottom;
}
.ext-opera input.x-tree-node-cb {
height: 14px;
vertical-align: middle;
}
.x-tree-noicon .x-tree-node-icon{
width:0; height:0;
}
/* No line styles */
.x-tree-no-lines .x-tree-elbow{
background-color:transparent;
}
.x-tree-no-lines .x-tree-elbow-end{
background-color:transparent;
}
.x-tree-no-lines .x-tree-elbow-line{
background-color:transparent;
}
/* Arrows */
.x-tree-arrows .x-tree-elbow{
background-color:transparent;
}
.x-tree-arrows .x-tree-elbow-plus{
background:transparent no-repeat 0 0;
}
.x-tree-arrows .x-tree-elbow-minus{
background:transparent no-repeat -16px 0;
}
.x-tree-arrows .x-tree-elbow-end{
background-color:transparent;
}
.x-tree-arrows .x-tree-elbow-end-plus{
background:transparent no-repeat 0 0;
}
.x-tree-arrows .x-tree-elbow-end-minus{
background:transparent no-repeat -16px 0;
}
.x-tree-arrows .x-tree-elbow-line{
background-color:transparent;
}
.x-tree-arrows .x-tree-ec-over .x-tree-elbow-plus{
background-position:-32px 0;
}
.x-tree-arrows .x-tree-ec-over .x-tree-elbow-minus{
background-position:-48px 0;
}
.x-tree-arrows .x-tree-ec-over .x-tree-elbow-end-plus{
background-position:-32px 0;
}
.x-tree-arrows .x-tree-ec-over .x-tree-elbow-end-minus{
background-position:-48px 0;
}
.x-tree-elbow-plus, .x-tree-elbow-minus, .x-tree-elbow-end-plus, .x-tree-elbow-end-minus{
cursor:pointer;
}
.ext-ie ul.x-tree-node-ct{
font-size:0;
line-height:0;
zoom:1;
}
.x-tree-node{
white-space: nowrap;
}
.x-tree-node-el {
line-height:18px;
cursor:pointer;
}
.x-tree-node a, .x-dd-drag-ghost a{
text-decoration:none;
-khtml-user-select:none;
-moz-user-select:none;
-webkit-user-select:ignore;
-kthml-user-focus:normal;
-moz-user-focus:normal;
-moz-outline: 0 none;
outline:0 none;
}
.x-tree-node a span, .x-dd-drag-ghost a span{
text-decoration:none;
padding:1px 3px 1px 2px;
}
.x-tree-node .x-tree-node-disabled .x-tree-node-icon{
-moz-opacity: 0.5;
opacity:.5;
filter: alpha(opacity=50);
}
.x-tree-node .x-tree-node-inline-icon{
background-color:transparent;
}
.x-tree-node a:hover, .x-dd-drag-ghost a:hover{
text-decoration:none;
}
.x-tree-node div.x-tree-drag-insert-below{
border-bottom:1px dotted;
}
.x-tree-node div.x-tree-drag-insert-above{
border-top:1px dotted;
}
.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below{
border-bottom:0 none;
}
.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above{
border-top:0 none;
}
.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below a{
border-bottom:2px solid;
}
.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above a{
border-top:2px solid;
}
.x-tree-node .x-tree-drag-append a span{
border:1px dotted;
}
.x-dd-drag-ghost .x-tree-node-indent, .x-dd-drag-ghost .x-tree-ec-icon{
display:none !important;
}
/* Fix for ie rootVisible:false issue */
.x-tree-root-ct {
zoom:1;
}

View file

@ -1,23 +1,21 @@
/*
* Ext JS Library 2.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-window {
zoom:1;
}
.x-window .x-resizable-handle {
.x-window .x-window-handle {
opacity:0;
-moz-opacity:0;
filter:alpha(opacity=0);
}
.x-window-proxy {
background:#C7DFFC;
border:1px solid #99bbe8;
border:1px solid;
z-index:12000;
overflow:hidden;
position:absolute;
@ -32,132 +30,153 @@
overflow:hidden;
zoom:1;
}
.x-window-bwrap {
z-index:1;
position:relative;
zoom:1;
left:0;top:0;
}
.x-window-tl .x-window-header {
color:#15428b;
font:bold 11px tahoma,arial,verdana,sans-serif;
padding:5px 0 4px 0;
}
.x-window-header-text {
cursor:pointer;
}
.x-window-tc {
background: transparent url(../images/default/window/top-bottom.png) repeat-x 0 0;
background: transparent repeat-x 0 0;
overflow:hidden;
zoom:1;
}
.x-window-tl {
background: transparent url(../images/default/window/left-corners.png) no-repeat 0 0;
background: transparent no-repeat 0 0;
padding-left:6px;
zoom:1;
z-index:1;
position:relative;
}
.x-window-tr {
background: transparent url(../images/default/window/right-corners.png) no-repeat right 0;
background: transparent no-repeat right 0;
padding-right:6px;
}
.x-window-bc {
background: transparent url(../images/default/window/top-bottom.png) repeat-x 0 bottom;
background: transparent repeat-x 0 bottom;
zoom:1;
}
.x-window-bc .x-window-footer {
padding-bottom:6px;
zoom:1;
font-size:0;
line-height:0;
}
.x-window-bl {
background: transparent url(../images/default/window/left-corners.png) no-repeat 0 bottom;
background: transparent no-repeat 0 bottom;
padding-left:6px;
zoom:1;
}
.x-window-br {
background: transparent url(../images/default/window/right-corners.png) no-repeat right bottom;
background: transparent no-repeat right bottom;
padding-right:6px;
zoom:1;
}
.x-window-mc {
border:1px solid #99bbe8;
border:1px solid;
padding:0;
margin:0;
font: normal 11px tahoma,arial,helvetica,sans-serif;
background:#dfe8f6;
}
.x-window-ml {
background: transparent url(../images/default/window/left-right.png) repeat-y 0 0;
background: transparent repeat-y 0 0;
padding-left:6px;
zoom:1;
}
.x-window-mr {
background: transparent url(../images/default/window/left-right.png) repeat-y right 0;
background: transparent repeat-y right 0;
padding-right:6px;
zoom:1;
}
.x-window-body {
overflow:hidden;
}
.x-window-bwrap {
overflow:hidden;
}
.x-window-maximized .x-window-bl, .x-window-maximized .x-window-br,
.x-window-maximized .x-window-ml, .x-window-maximized .x-window-mr,
.x-window-maximized .x-window-tl, .x-window-maximized .x-window-tr {
padding:0;
}
.x-window-maximized .x-window-footer {
padding-bottom:0;
}
.x-window-maximized .x-window-tc {
padding-left:3px;
padding-right:3px;
background-color:white;
}
.x-window-maximized .x-window-mc {
border-left:0 none;
border-right:0 none;
}
.x-window-tbar .x-toolbar, .x-window-bbar .x-toolbar {
border-left:0 none;
border-right: 0 none;
}
.x-window-bbar .x-toolbar {
border-top:1px solid #99bbe8;
border-top:1px solid;
border-bottom:0 none;
}
.x-window-draggable, .x-window-draggable .x-window-header-text {
cursor:move;
}
.x-window-maximized .x-window-draggable, .x-window-maximized .x-window-draggable .x-window-header-text {
cursor:default;
}
.x-window-body {
background:transparent;
background-color:transparent;
}
.x-panel-ghost .x-window-tl {
border-bottom:1px solid #99bbe8;
border-bottom:1px solid;
}
.x-panel-collapsed .x-window-tl {
border-bottom:1px solid #84a0c4;
border-bottom:1px solid;
}
.x-window-maximized-ct {
overflow:hidden;
}
.x-window-maximized .x-resizable-handle {
.x-window-maximized .x-window-handle {
display:none;
}
.x-window-sizing-ghost ul {
border:0 none !important;
}
.x-dlg-focus{
-moz-outline:0 none;
outline:0 none;
@ -168,41 +187,36 @@
top:0;
left:0;
}
.ext-webkit .x-dlg-focus{
width: 1px;
height: 1px;
}
.x-dlg-mask{
z-index:10000;
display:none;
position:absolute;
top:0;
left:0;
-moz-opacity: 0.5;
opacity:.50;
filter: alpha(opacity=50);
background-color:#CCC;
z-index:10000;
display:none;
position:absolute;
top:0;
left:0;
-moz-opacity: 0.5;
opacity:.50;
filter: alpha(opacity=50);
}
body.ext-ie6.x-body-masked select {
visibility:hidden;
}
body.ext-ie6.x-body-masked .x-window select {
visibility:visible;
}
.x-window-plain .x-window-mc {
background: #CAD9EC;
border-right:1px solid #DFE8F6;
border-bottom:1px solid #DFE8F6;
border-top:1px solid #a3bae9;
border-left:1px solid #a3bae9;
border: 1px solid;
}
.x-window-plain .x-window-body {
border-left:1px solid #DFE8F6;
border-top:1px solid #DFE8F6;
border-bottom:1px solid #a3bae9;
border-right:1px solid #a3bae9;
border: 1px solid;
background:transparent !important;
}
body.x-body-masked .x-window-plain .x-window-mc {
background: #C7D6E9;
}

View file

@ -0,0 +1,25 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-panel-noborder .x-panel-header-noborder {
border-bottom-color:#343d4e;
}
.x-panel-noborder .x-panel-tbar-noborder .x-toolbar {
border-bottom-color:#343d4e;
}
.x-panel-noborder .x-panel-bbar-noborder .x-toolbar {
border-top-color:#343d4e;
}
.x-tab-panel-bbar-noborder .x-toolbar {
border-top-color:#343d4e;
}
.x-tab-panel-tbar-noborder .x-toolbar {
border-bottom-color:#343d4e;
}

View file

@ -0,0 +1,74 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-box-tl {
background-image: url(../images/default/box/corners.gif);
}
.x-box-tc {
background-image: url(../images/default/box/tb.gif);
}
.x-box-tr {
background-image: url(../images/default/box/corners.gif);
}
.x-box-ml {
background-image: url(../images/default/box/l.gif);
}
.x-box-mc {
background-color: #eee;
background-image: url(../images/default/box/tb.gif);
font-family: "Myriad Pro","Myriad Web","Tahoma","Helvetica","Arial",sans-serif;
color: #393939;
font-size: 15px;
}
.x-box-mc h3 {
font-size: 18px;
font-weight: bold;
}
.x-box-mr {
background-image: url(../images/default/box/r.gif);
}
.x-box-bl {
background-image: url(../images/default/box/corners.gif);
}
.x-box-bc {
background-image: url(../images/default/box/tb.gif);
}
.x-box-br {
background-image: url(../images/default/box/corners.gif);
}
.x-box-blue .x-box-bl, .x-box-blue .x-box-br, .x-box-blue .x-box-tl, .x-box-blue .x-box-tr {
background-image: url(../images/default/box/corners-blue.gif);
}
.x-box-blue .x-box-bc, .x-box-blue .x-box-mc, .x-box-blue .x-box-tc {
background-image: url(../images/default/box/tb-blue.gif);
}
.x-box-blue .x-box-mc {
background-color: #c3daf9;
}
.x-box-blue .x-box-mc h3 {
color: #17385b;
}
.x-box-blue .x-box-ml {
background-image: url(../images/default/box/l-blue.gif);
}
.x-box-blue .x-box-mr {
background-image: url(../images/default/box/r-blue.gif);
}

View file

@ -0,0 +1,136 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-btn {
font:normal 14px tahoma, verdana, helvetica;
}
.x-btn button {
font:normal 14px arial,tahoma,verdana,helvetica;
color:#fffffa;
padding-left:6px !important;
padding-right:6px !important;
}
.x-btn-over .x-btn button{
color:#fff;
}
.x-btn-noicon .x-btn-small .x-btn-text, .x-btn-text-icon .x-btn-icon-small-left .x-btn-text,
.x-btn-icon .x-btn-small .x-btn-text, .x-btn-text-icon .x-btn-icon-small-right .x-btn-text {
height:18px;
}
.x-btn-icon .x-btn-small .x-btn-text {
width:18px;
}
.x-btn-text-icon .x-btn-icon-small-left .x-btn-text {
padding-left:21px !important;
}
.x-btn-text-icon .x-btn-icon-small-right .x-btn-text {
padding-right:21px !important;
}
.x-btn-text-icon .x-btn-icon-medium-left .x-btn-text {
padding-left:29px !important;
}
.x-btn-text-icon .x-btn-icon-medium-right .x-btn-text {
padding-right:29px !important;
}
.x-btn-text-icon .x-btn-icon-large-left .x-btn-text {
padding-left:37px !important;
}
.x-btn-text-icon .x-btn-icon-large-right .x-btn-text {
padding-right:37px !important;
}
.x-btn em {
font-style:normal;
font-weight:normal;
}
.x-btn-tl, .x-btn-tr, .x-btn-tc, .x-btn-ml, .x-btn-mr, .x-btn-mc, .x-btn-bl, .x-btn-br, .x-btn-bc{
background-image:url(../images/access/button/btn.gif);
}
.x-btn-click .x-btn-text, .x-btn-menu-active .x-btn-text, .x-btn-pressed .x-btn-text{
color:#fff;
}
.x-btn-disabled *{
color:#eee !important;
}
.x-btn-mc em.x-btn-arrow {
background-image:url(../images/access/button/arrow.gif);
padding-right:13px;
}
.x-btn-mc em.x-btn-split {
background-image:url(../images/access/button/s-arrow.gif);
padding-right:20px;
}
.x-btn-over .x-btn-mc em.x-btn-split, .x-btn-click .x-btn-mc em.x-btn-split, .x-btn-menu-active .x-btn-mc em.x-btn-split, .x-btn-pressed .x-btn-mc em.x-btn-split {
background-image:url(../images/access/button/s-arrow-o.gif);
}
.x-btn-mc em.x-btn-arrow-bottom {
background-image:url(../images/access/button/s-arrow-b-noline.gif);
}
.x-btn-mc em.x-btn-split-bottom {
background-image:url(../images/access/button/s-arrow-b.gif);
}
.x-btn-over .x-btn-mc em.x-btn-split-bottom, .x-btn-click .x-btn-mc em.x-btn-split-bottom, .x-btn-menu-active .x-btn-mc em.x-btn-split-bottom, .x-btn-pressed .x-btn-mc em.x-btn-split-bottom {
background-image:url(../images/access/button/s-arrow-bo.gif);
}
.x-btn-group-header {
color: #d2d2d2;
}
.x-btn-group-tc {
background-image: url(../images/access/button/group-tb.gif);
}
.x-btn-group-tl {
background-image: url(../images/access/button/group-cs.gif);
}
.x-btn-group-tr {
background-image: url(../images/access/button/group-cs.gif);
}
.x-btn-group-bc {
background-image: url(../images/access/button/group-tb.gif);
}
.x-btn-group-bl {
background-image: url(../images/access/button/group-cs.gif);
}
.x-btn-group-br {
background-image: url(../images/access/button/group-cs.gif);
}
.x-btn-group-ml {
background-image: url(../images/access/button/group-lr.gif);
}
.x-btn-group-mr {
background-image: url(../images/access/button/group-lr.gif);
}
.x-btn-group-notitle .x-btn-group-tc {
background-image: url(../images/access/button/group-tb.gif);
}

View file

@ -0,0 +1,43 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-combo-list {
border:2px solid #232732;
background-color:#555566;
font:normal 15px tahoma, arial, helvetica, sans-serif;
}
.x-combo-list-inner {
background-color:#414551;
}
.x-combo-list-hd {
font:bold 14px tahoma, arial, helvetica, sans-serif;
color:#fff;
background-image: url(../images/default/layout/panel-title-light-bg.gif);
border-bottom-color:#98c0f4;
}
.x-resizable-pinned .x-combo-list-inner {
border-bottom-color:#98c0f4;
}
.x-combo-list-item {
border-color:#556;
}
.x-combo-list .x-combo-selected {
border-color:#e5872c !important;
background-color:#e5872c;
}
.x-combo-list .x-toolbar {
border-top-color:#98c0f4;
}
.x-combo-list-small {
font:normal 14px tahoma, arial, helvetica, sans-serif;
}

View file

@ -0,0 +1,81 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
body {
background-color:#16181a;
color:#fcfcfc;
}
.ext-el-mask {
background-color: #ccc;
}
.ext-el-mask-msg {
border-color:#223;
background-color:#3f4757;
background-image:url(../images/access/box/tb-blue.gif);
}
.ext-el-mask-msg div {
background-color: #232d38;
border-color:#556;
color:#fff;
font:normal 14px tahoma, arial, helvetica, sans-serif;
}
.x-mask-loading div {
background-color:#232d38;
background-image:url(../images/access/grid/loading.gif);
}
.x-item-disabled {
color: #ddd;
}
.x-item-disabled * {
color: #ddd !important;
}
.x-splitbar-proxy {
background-color: #aaa;
}
.x-color-palette a {
border-color:#fff;
}
.x-color-palette a:hover, .x-color-palette a.x-color-palette-sel {
border-color:#8bb8f3;
background-color: #deecfd;
}
.x-color-palette em {
border-color:#aca899;
}
.x-ie-shadow {
background-color:#777;
}
.x-shadow .xsmc {
background-image: url(../images/default/shadow-c.png);
}
.x-shadow .xsml, .x-shadow .xsmr {
background-image: url(../images/default/shadow-lr.png);
}
.x-shadow .xstl, .x-shadow .xstc, .x-shadow .xstr, .x-shadow .xsbl, .x-shadow .xsbc, .x-shadow .xsbr{
background-image: url(../images/default/shadow.png);
}
.loading-indicator {
font-size: 14px;
background-image: url(../images/access/grid/loading.gif);
}
.x-spotlight {
background-color: #ccc;
}

View file

@ -0,0 +1,145 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-date-picker {
border-color: #737b8c;
background-color:#21252e;
}
.x-date-middle,.x-date-left,.x-date-right {
background-image: url(../images/access/shared/hd-sprite.gif);
color:#fff;
font:bold 14px "sans serif", tahoma, verdana, helvetica;
}
.x-date-middle .x-btn .x-btn-text {
color:#fff;
}
.x-date-middle .x-btn-mc em.x-btn-arrow {
background-image:url(../images/access/toolbar/btn-arrow-light.gif);
}
.x-date-right a {
background-image: url(../images/access/shared/right-btn.gif);
}
.x-date-left a{
background-image: url(../images/access/shared/left-btn.gif);
}
.x-date-inner th {
background-color:#363d4a;
background-image:url(../images/access/toolbar/bg.gif);
border-bottom-color:#535b5c;
font:normal 13px arial, helvetica,tahoma,sans-serif;
color:#fff;
}
.x-date-inner td {
border-color:#112;
}
.x-date-inner a {
font:normal 14px arial, helvetica,tahoma,sans-serif;
color:#fff;
padding:2px 7px 1px 3px; /* Structure to account for larger, bolder fonts in Access theme. */
}
.x-date-inner .x-date-active{
color:#000;
}
.x-date-inner .x-date-selected a{
background-color:#e5872c;
background-image:none;
border-color:#864900;
padding:1px 6px 1px 2px; /* Structure to account for larger, bolder fonts in Access theme. */
}
.x-date-inner .x-date-today a{
border-color:#99a;
}
.x-date-inner .x-date-selected span{
font-weight:bold;
}
.x-date-inner .x-date-prevday a,.x-date-inner .x-date-nextday a {
color:#aaa;
}
.x-date-bottom {
border-top-color:#737b8c;
background-color:#464d5a;
background-image:url(../images/access/shared/glass-bg.gif);
}
.x-date-inner a:hover, .x-date-inner .x-date-disabled a:hover{
color:#fff;
background-color:#7e5530;
}
.x-date-inner .x-date-disabled a {
background-color:#eee;
color:#bbb;
}
.x-date-mmenu{
background-color:#eee !important;
}
.x-date-mmenu .x-menu-item {
font-size:13px;
color:#000;
}
.x-date-mp {
background-color:#21252e;
}
.x-date-mp td {
font:normal 14px arial, helvetica,tahoma,sans-serif;
}
.x-date-mp-btns button {
background-color:#083772;
color:#fff;
border-color: #3366cc #000055 #000055 #3366cc;
font:normal 14px arial, helvetica,tahoma,sans-serif;
}
.x-date-mp-btns {
background-color: #dfecfb;
background-image: url(../images/access/shared/glass-bg.gif);
}
.x-date-mp-btns td {
border-top-color: #c5d2df;
}
td.x-date-mp-month a,td.x-date-mp-year a {
color:#fff;
}
td.x-date-mp-month a:hover,td.x-date-mp-year a:hover {
color:#fff;
background-color: #7e5530;
}
td.x-date-mp-sel a {
background-color: #e5872c;
background-image: none;
border-color:#864900;
}
.x-date-mp-ybtn a {
background-image:url(../images/access/panel/tool-sprites.gif);
}
td.x-date-mp-sep {
border-right-color:#c5d2df;
}

View file

@ -0,0 +1,29 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-dd-drag-ghost{
color:#000;
font: normal 14px arial, helvetica, sans-serif;
border-color: #ddd #bbb #bbb #ddd;
background-color:#fff;
}
.x-dd-drop-nodrop .x-dd-drop-icon{
background-image: url(../images/default/dd/drop-no.gif);
}
.x-dd-drop-ok .x-dd-drop-icon{
background-image: url(../images/default/dd/drop-yes.gif);
}
.x-dd-drop-ok-add .x-dd-drop-icon{
background-image: url(../images/default/dd/drop-add.gif);
}
.x-view-selector {
background-color:#c3daf9;
border-color:#3399bb;
}

View file

@ -0,0 +1,24 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
#x-debug-browser .x-tree .x-tree-node a span {
color:#222297;
font-size:14px;
font-family:"monotype","courier new",sans-serif;
}
#x-debug-browser .x-tree a i {
color:#ff4545;
font-style:normal;
}
#x-debug-browser .x-tree a em {
color:#999;
}
#x-debug-browser .x-tree .x-tree-node .x-tree-selected a span{
background-color:#c3daf9;
}

View file

@ -0,0 +1,34 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-window-dlg .ext-mb-text,
.x-window-dlg .x-window-header-text {
font-size:15px;
}
.x-window-dlg .ext-mb-textarea {
font:normal 15px tahoma,arial,helvetica,sans-serif;
}
.x-window-dlg .x-msg-box-wait {
background-image:url(../images/access/grid/loading.gif);
}
.x-window-dlg .ext-mb-info {
background-image:url(../images/access/window/icon-info.gif);
}
.x-window-dlg .ext-mb-warning {
background-image:url(../images/access/window/icon-warning.gif);
}
.x-window-dlg .ext-mb-question {
background-image:url(../images/access/window/icon-question.gif);
}
.x-window-dlg .ext-mb-error {
background-image:url(../images/access/window/icon-error.gif);
}

View file

@ -0,0 +1,16 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-html-editor-wrap {
border-color:#737B8C;
background-color:#fff;
}
.x-html-editor-wrap iframe {
background-color: #fff;
}
.x-html-editor-tb .x-btn-text {
background-image:url(../images/access/editor/tb-sprite.gif);
}

View file

@ -0,0 +1,176 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-form-field {
font:normal 15px tahoma, arial, helvetica, sans-serif;
}
.x-form-text, textarea.x-form-field{
color: #ffffff;
background-color:#33373d;
background-image:url(../images/access/form/text-bg.gif);
border-color:#737b8c;
border-width:2px;
}
.ext-webkit .x-form-text, .ext-webkit textarea.x-form-field{
border-width:2px;
}
.x-form-text, .ext-ie .x-form-file {
height:26px;
}
.ext-strict .x-form-text {
height:20px;
}
.x-form-select-one {
background-color:#fff;
border-color:#b5b8c8;
}
.x-form-check-group-label {
border-bottom: 1px solid #99bbe8;
color: #fff;
}
.x-editor .x-form-check-wrap {
background-color:#fff;
}
.x-form-field-wrap .x-form-trigger{
background-image:url(../images/access/form/trigger.gif);
border-bottom-color:#737b8c;
border-bottom-width:2px;
height:24px;
width:20px;
}
.x-form-field-wrap .x-form-trigger.x-form-trigger-over{
border-bottom-color:#d97e27;
}
.x-form-field-wrap .x-form-trigger.x-form-trigger-click{
border-bottom-color:#c86e19;
}
.x-small-editor .x-form-field-wrap .x-form-trigger {
height:24px;
}
.x-form-field-wrap .x-form-trigger-over {
background-position:-20px 0;
}
.x-form-field-wrap .x-form-trigger-click {
background-position:-40px 0;
}
.x-trigger-wrap-focus .x-form-trigger {
background-position:-60px 0;
}
.x-trigger-wrap-focus .x-form-trigger-over {
background-position:-80px 0;
}
.x-trigger-wrap-focus .x-form-trigger-click {
background-position:-100px 0;
}
.x-form-field-wrap .x-form-date-trigger{
background-image: url(../images/access/form/date-trigger.gif);
}
.x-form-field-wrap .x-form-clear-trigger{
background-image: url(../images/access/form/clear-trigger.gif);
}
.x-form-field-wrap .x-form-search-trigger{
background-image: url(../images/access/form/search-trigger.gif);
}
.x-trigger-wrap-focus .x-form-trigger{
border-bottom-color:#737b8c;
}
.x-item-disabled .x-form-trigger-over{
border-bottom-color:#b5b8c8;
}
.x-item-disabled .x-form-trigger-click{
border-bottom-color:#b5b8c8;
}
.x-form-focus, textarea.x-form-focus{
border-color:#ff9c33;
}
.x-form-invalid, textarea.x-form-invalid,
.ext-webkit .x-form-invalid, .ext-webkit textarea.x-form-invalid{
background-color:#15171a;
background-image:url(../images/access/grid/invalid_line.gif);
border-color:#c30;
}
/*
.ext-safari .x-form-invalid{
background-color:#fee;
border-color:#ff7870;
}
*/
.x-form-inner-invalid, textarea.x-form-inner-invalid{
background-color:#fff;
background-image:url(../images/access/grid/invalid_line.gif);
}
.x-form-grow-sizer {
font:normal 15px tahoma, arial, helvetica, sans-serif;
}
.x-form-item {
font:normal 15px tahoma, arial, helvetica, sans-serif;
}
.x-form-invalid-msg {
color:#c0272b;
font:normal 14px tahoma, arial, helvetica, sans-serif;
background-image:url(../images/default/shared/warning.gif);
}
.x-form-empty-field {
color:#dadadd;
}
.x-small-editor .x-form-text {
height: 26px;
}
.x-small-editor .x-form-field {
font:normal 14px arial, tahoma, helvetica, sans-serif;
}
.ext-safari .x-small-editor .x-form-field {
font:normal 15px arial, tahoma, helvetica, sans-serif;
}
.x-form-invalid-icon {
background-image:url(../images/access/form/exclamation.gif);
height:25px;
width:19px;
background-position:center right;
}
.x-fieldset {
border-color:#737B8C;
}
.x-fieldset legend {
font:bold 14px tahoma, arial, helvetica, sans-serif;
color:#fff;
}

View file

@ -0,0 +1,288 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-grid3 {
background-color:#1f2933;
}
.x-grid-panel .x-panel-mc .x-panel-body {
border-color:#223;
}
.x-grid3-hd-row td, .x-grid3-row td, .x-grid3-summary-row td{
font:normal 14px arial, tahoma, helvetica, sans-serif;
}
.x-grid3-hd-row td {
border-left-color:#556;
border-right-color:#223;
}
.x-grid-row-loading {
background-color: #fff;
background-image:url(../images/default/shared/loading-balls.gif);
}
.x-grid3-row {
border:0 none;
border-bottom:1px solid #111;
border-right:1px solid #1a1a1c;
}
.x-grid3-row-alt{
background-color:#1b232b;
}
.x-grid3-row-over {
background-color:#7e5530;
}
.x-grid3-resize-proxy {
background-color:#777;
}
.x-grid3-resize-marker {
background-color:#777;
}
.x-grid3-header{
background-color:#3b3f50;
background-image:url(../images/access/grid/grid3-hrow.gif);
}
.x-grid3-header-pop {
border-left-color:#d0d0d0;
}
.x-grid3-header-pop-inner {
border-left-color:#eee;
background-image:url(../images/default/grid/hd-pop.gif);
}
td.x-grid3-hd-over, td.sort-desc, td.sort-asc, td.x-grid3-hd-menu-open {
border-left-color:#889;
border-right-color:#445;
}
td.x-grid3-hd-over .x-grid3-hd-inner, td.sort-desc .x-grid3-hd-inner, td.sort-asc .x-grid3-hd-inner, td.x-grid3-hd-menu-open .x-grid3-hd-inner {
background-color:#4e628a;
background-image:url(../images/access/grid/grid3-hrow-over.gif);
}
.x-grid3-cell-inner, .x-grid3-hd-inner {
color:#fff;
}
.sort-asc .x-grid3-sort-icon {
background-image: url(../images/access/grid/sort_asc.gif);
width:15px;
height:9px;
margin-left:5px;
}
.sort-desc .x-grid3-sort-icon {
background-image: url(../images/access/grid/sort_desc.gif);
width:15px;
height:9px;
margin-left:5px;
}
.x-grid3-cell-text, .x-grid3-hd-text {
color:#fff;
}
.x-grid3-split {
background-image: url(../images/default/grid/grid-split.gif);
}
.x-grid3-hd-text {
color:#fff;
}
.x-dd-drag-proxy .x-grid3-hd-inner{
background-color:#ebf3fd;
background-image:url(../images/access/grid/grid3-hrow-over.gif);
border-color:#aaccf6;
}
.col-move-top{
background-image:url(../images/default/grid/col-move-top.gif);
}
.col-move-bottom{
background-image:url(../images/default/grid/col-move-bottom.gif);
}
.x-grid3-row-selected {
background-color: #e5872c !important;
background-image: none;
border-style: solid;
}
.x-grid3-row-selected .x-grid3-cell {
color: #fff;
}
.x-grid3-cell-selected {
background-color: #ffa340 !important;
color:#fff;
}
.x-grid3-cell-selected span{
color:#fff !important;
}
.x-grid3-cell-selected .x-grid3-cell-text{
color:#fff;
}
.x-grid3-locked td.x-grid3-row-marker, .x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker{
background-color:#ebeadb !important;
background-image:url(../images/default/grid/grid-hrow.gif) !important;
color:#fff;
border-top-color:#fff;
border-right-color:#6fa0df !important;
}
.x-grid3-locked td.x-grid3-row-marker div, .x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker div{
color:#fff !important;
}
.x-grid3-dirty-cell {
background-image:url(../images/access/grid/dirty.gif);
}
.x-grid3-topbar, .x-grid3-bottombar{
font:normal 14px arial, tahoma, helvetica, sans-serif;
}
.x-grid3-bottombar .x-toolbar{
border-top-color:#a9bfd3;
}
.x-props-grid .x-grid3-td-name .x-grid3-cell-inner{
background-image:url(../images/access/grid/grid3-special-col-bg.gif) !important;
color:#fff !important;
}
.x-props-grid .x-grid3-td-value {
color:#fff !important;
}
.x-props-grid .x-grid3-body .x-grid3-td-name{
background-color:#263240 !important;
border-right-color:#223;
}
.xg-hmenu-sort-asc .x-menu-item-icon{
background-image: url(../images/access/grid/hmenu-asc.gif);
}
.xg-hmenu-sort-desc .x-menu-item-icon{
background-image: url(../images/access/grid/hmenu-desc.gif);
}
.xg-hmenu-lock .x-menu-item-icon{
background-image: url(../images/access/grid/hmenu-lock.gif);
}
.xg-hmenu-unlock .x-menu-item-icon{
background-image: url(../images/access/grid/hmenu-unlock.gif);
}
.x-grid3-hd-btn {
background-color:#c2c9d0;
background-image:url(../images/access/grid/grid3-hd-btn.gif);
}
.x-grid3-body .x-grid3-td-expander {
background-image:url(../images/access/grid/grid3-special-col-bg.gif);
}
.x-grid3-row-expander {
background-image:url(../images/access/grid/row-expand-sprite.gif);
}
.x-grid3-body .x-grid3-td-checker {
background-image: url(../images/access/grid/grid3-special-col-bg.gif);
}
.x-grid3-row-checker, .x-grid3-hd-checker {
background-image:url(../images/default/grid/row-check-sprite.gif);
}
.x-grid3-body .x-grid3-td-numberer {
background-image:url(../images/access/grid/grid3-special-col-bg.gif);
}
.x-grid3-body .x-grid3-td-numberer .x-grid3-cell-inner {
color:#fff;
}
.x-grid3-body .x-grid3-td-row-icon {
background-image:url(../images/access/grid/grid3-special-col-bg.gif);
}
.x-grid3-body .x-grid3-row-selected .x-grid3-td-numberer,
.x-grid3-body .x-grid3-row-selected .x-grid3-td-checker,
.x-grid3-body .x-grid3-row-selected .x-grid3-td-expander {
background-image:url(../images/access/grid/grid3-special-col-sel-bg.gif);
}
.x-grid3-check-col {
background-image:url(../images/default/menu/unchecked.gif);
}
.x-grid3-check-col-on {
background-image:url(../images/default/menu/checked.gif);
}
.x-grid-group, .x-grid-group-body, .x-grid-group-hd {
zoom:1;
}
.x-grid-group-hd {
border-bottom-color:#4e628a;
}
.x-grid-group-hd div.x-grid-group-title {
background-image:url(../images/access/grid/group-collapse.gif);
background-position:3px 6px;
color:#ffd;
font:bold 14px tahoma, arial, helvetica, sans-serif;
}
.x-grid-group-collapsed .x-grid-group-hd div.x-grid-group-title {
background-image:url(../images/access/grid/group-expand.gif);
}
.x-group-by-icon {
background-image:url(../images/default/grid/group-by.gif);
}
.x-cols-icon {
background-image:url(../images/default/grid/columns.gif);
}
.x-show-groups-icon {
background-image:url(../images/default/grid/group-by.gif);
}
.x-grid-empty {
color:gray;
font:normal 14px tahoma, arial, helvetica, sans-serif;
}
.x-grid-with-col-lines .x-grid3-row td.x-grid3-cell {
border-right-color:#ededed;
}
.x-grid-with-col-lines .x-grid3-row{
border-top-color:#ededed;
}
.x-grid-with-col-lines .x-grid3-row-selected {
border-top-color:#a3bae9;
}

View file

@ -0,0 +1,56 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-border-layout-ct {
background-color:#3f4757;
}
.x-accordion-hd {
color:#fff;
font-weight:normal;
background-image: url(../images/access/panel/light-hd.gif);
}
.x-layout-collapsed{
background-color:#323845;
border-color:#1a1a1c;
}
.x-layout-collapsed-over{
background-color:#2d3440;
}
.x-layout-split-west .x-layout-mini {
background-image:url(../images/default/layout/mini-left.gif);
}
.x-layout-split-east .x-layout-mini {
background-image:url(../images/default/layout/mini-right.gif);
}
.x-layout-split-north .x-layout-mini {
background-image:url(../images/default/layout/mini-top.gif);
}
.x-layout-split-south .x-layout-mini {
background-image:url(../images/default/layout/mini-bottom.gif);
}
.x-layout-cmini-west .x-layout-mini {
background-image:url(../images/default/layout/mini-right.gif);
}
.x-layout-cmini-east .x-layout-mini {
background-image:url(../images/default/layout/mini-left.gif);
}
.x-layout-cmini-north .x-layout-mini {
background-image:url(../images/default/layout/mini-bottom.gif);
}
.x-layout-cmini-south .x-layout-mini {
background-image:url(../images/default/layout/mini-top.gif);
}

View file

@ -0,0 +1,43 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-list-header{
background-color:#393d4e;
background-image:url(../images/access/toolbar/bg.gif);
background-position:0 top;
}
.x-list-header-inner div em {
border-left-color:#667;
font:normal 14px arial, tahoma, helvetica, sans-serif;
line-height: 14px;
}
.x-list-body-inner {
background-color:#1B232B;
}
.x-list-body dt em {
font:normal 14px arial, tahoma, helvetica, sans-serif;
}
.x-list-over {
background-color:#7E5530;
}
.x-list-selected {
background-color:#E5872C;
}
.x-list-resizer {
border-left-color:#555;
border-right-color:#555;
}
.x-list-header-inner em.sort-asc, .x-list-header-inner em.sort-desc {
background-image:url(../images/access/grid/sort-hd.gif);
border-color: #3e4e6c;
}

View file

@ -0,0 +1,79 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-menu {
border-color:#222;
background-color:#414551;
background-image:url(../images/access/menu/menu.gif);
}
.x-menu-nosep {
background-image:none;
}
.x-menu-list-item{
font:normal 14px tahoma,arial, sans-serif;
}
.x-menu-item-arrow{
background-image:url(../images/access/menu/menu-parent.gif);
}
.x-menu-sep {
background-color:#223;
border-bottom-color:#666;
}
a.x-menu-item {
color:#fffff6;
}
.x-menu-item-active {
background-color: #f09134;
background-image: none;
border-color:#b36427;
}
.x-menu-item-active a.x-menu-item {
border-color:#b36427;
}
.x-menu-check-item .x-menu-item-icon{
background-image:url(../images/default/menu/unchecked.gif);
}
.x-menu-item-checked .x-menu-item-icon{
background-image:url(../images/default/menu/checked.gif);
}
.x-menu-item-checked .x-menu-group-item .x-menu-item-icon{
background-image:url(../images/access/menu/group-checked.gif);
}
.x-menu-group-item .x-menu-item-icon{
background-image:none;
}
.x-menu-plain {
background-color:#fff !important;
}
.x-menu .x-date-picker{
border-color:#a3bad9;
}
.x-cycle-menu .x-menu-item-checked {
border-color:#a3bae9 !important;
background-color:#def8f6;
}
.x-menu-scroller-top {
background-image:url(../images/default/layout/mini-top.gif);
}
.x-menu-scroller-bottom {
background-image:url(../images/default/layout/mini-bottom.gif);
}

View file

@ -0,0 +1,94 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-panel {
border-color: #18181a;
font-size: 14px;
}
.x-panel-header {
color:#fff;
font-weight:bold;
font-size: 14px;
font-family: tahoma,arial,verdana,sans-serif;
border-color:#18181a;
background-image: url(../images/access/panel/white-top-bottom.gif);
}
.x-panel-body {
color: #fffff6;
border-color:#18181a;
background-color:#232d38;
}
.x-tab-panel .x-panel-body {
color: #fffff6;
border-color:#18181a;
background-color:#1f2730;
}
.x-panel-bbar .x-toolbar, .x-panel-tbar .x-toolbar {
border-color:#223;
}
.x-panel-tbar-noheader .x-toolbar, .x-panel-mc .x-panel-tbar .x-toolbar {
border-top-color:#223;
}
.x-panel-body-noheader, .x-panel-mc .x-panel-body {
border-top-color:#223;
}
.x-panel-tl .x-panel-header {
color:#fff;
font:bold 14px tahoma,arial,verdana,sans-serif;
}
.x-panel-tc {
background-image: url(../images/access/panel/top-bottom.gif);
}
.x-panel-tl, .x-panel-tr, .x-panel-bl, .x-panel-br{
background-image: url(../images/access/panel/corners-sprite.gif);
border-bottom-color:#222224;
}
.x-panel-bc {
background-image: url(../images/access/panel/top-bottom.gif);
}
.x-panel-mc {
font: normal 14px tahoma,arial,helvetica,sans-serif;
background-color:#3f4757;
}
.x-panel-ml {
background-image:url(../images/access/panel/left-right.gif);
}
.x-panel-mr {
background-image: url(../images/access/panel/left-right.gif);
}
.x-tool {
background-image:url(../images/access/panel/tool-sprites.gif);
}
.x-panel-ghost {
background-color:#3f4757;
}
.x-panel-ghost ul {
border-color:#18181a;
}
.x-panel-dd-spacer {
border-color:#18181a;
}
.x-panel-fbar td,.x-panel-fbar span,.x-panel-fbar input,.x-panel-fbar div,.x-panel-fbar select,.x-panel-fbar label{
font:normal 14px arial,tahoma, helvetica, sans-serif;
}

View file

@ -0,0 +1,35 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-progress-wrap {
border-color:#18181a;
}
.x-progress-inner {
background-color:#232d38;
background-image:none;
}
.x-progress-bar {
background-color:#f39a00;
background-image:url(../images/access/progress/progress-bg.gif);
border-top-color:#a66900;
border-bottom-color:#a66900;
border-right-color:#ffb941;
height: 20px !important; /* structural override for Accessibility Theme */
}
.x-progress-text {
font-size:14px;
font-weight:bold;
color:#fff;
padding: 0 5px !important; /* structural override for Accessibility Theme */
}
.x-progress-text-back {
color:#aaa;
line-height: 19px;
}

View file

@ -0,0 +1,44 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-tip .x-tip-close{
background-image: url(../images/access/qtip/close.gif);
}
.x-tip .x-tip-tc, .x-tip .x-tip-tl, .x-tip .x-tip-tr, .x-tip .x-tip-bc, .x-tip .x-tip-bl, .x-tip .x-tip-br, .x-tip .x-tip-ml, .x-tip .x-tip-mr {
background-image: url(../images/access/qtip/tip-sprite.gif);
}
.x-tip .x-tip-mc {
font: normal 14px tahoma,arial,helvetica,sans-serif;
}
.x-tip .x-tip-ml {
background-color: #fff;
}
.x-tip .x-tip-header-text {
font: bold 14px tahoma,arial,helvetica,sans-serif;
color:#ffd;
}
.x-tip .x-tip-body {
font: normal 14px tahoma,arial,helvetica,sans-serif;
color:#000;
}
.x-form-invalid-tip .x-tip-tc, .x-form-invalid-tip .x-tip-tl, .x-form-invalid-tip .x-tip-tr, .x-form-invalid-tip .x-tip-bc,
.x-form-invalid-tip .x-tip-bl, .x-form-invalid-tip .x-tip-br, .x-form-invalid-tip .x-tip-ml, .x-form-invalid-tip .x-tip-mr
{
background-image: url(../images/default/form/error-tip-corners.gif);
}
.x-form-invalid-tip .x-tip-body {
background-image:url(../images/access/form/exclamation.gif);
}
.x-tip-anchor {
background-image:url(../images/access/qtip/tip-anchor-sprite.gif);
}

View file

@ -0,0 +1,44 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-resizable-handle {
background-color:#fff;
color: #000;
}
.x-resizable-over .x-resizable-handle-east, .x-resizable-pinned .x-resizable-handle-east,
.x-resizable-over .x-resizable-handle-west, .x-resizable-pinned .x-resizable-handle-west
{
background-image:url(../images/access/sizer/e-handle.gif);
}
.x-resizable-over .x-resizable-handle-south, .x-resizable-pinned .x-resizable-handle-south,
.x-resizable-over .x-resizable-handle-north, .x-resizable-pinned .x-resizable-handle-north
{
background-image:url(../images/access/sizer/s-handle.gif);
}
.x-resizable-over .x-resizable-handle-north, .x-resizable-pinned .x-resizable-handle-north{
background-image:url(../images/access/sizer/s-handle.gif);
}
.x-resizable-over .x-resizable-handle-southeast, .x-resizable-pinned .x-resizable-handle-southeast{
background-image:url(../images/access/sizer/se-handle.gif);
}
.x-resizable-over .x-resizable-handle-northwest, .x-resizable-pinned .x-resizable-handle-northwest{
background-image:url(../images/access/sizer/nw-handle.gif);
}
.x-resizable-over .x-resizable-handle-northeast, .x-resizable-pinned .x-resizable-handle-northeast{
background-image:url(../images/access/sizer/ne-handle.gif);
}
.x-resizable-over .x-resizable-handle-southwest, .x-resizable-pinned .x-resizable-handle-southwest{
background-image:url(../images/access/sizer/sw-handle.gif);
}
.x-resizable-proxy{
border-color:#3b5a82;
}
.x-resizable-overlay{
background-color:#fff;
}

View file

@ -0,0 +1,21 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-slider-horz, .x-slider-horz .x-slider-end, .x-slider-horz .x-slider-inner {
background-image:url(../images/access/slider/slider-bg.png);
}
.x-slider-horz .x-slider-thumb {
background-image:url(../images/access/slider/slider-thumb.png);
}
.x-slider-vert, .x-slider-vert .x-slider-end, .x-slider-vert .x-slider-inner {
background-image:url(../images/access/slider/slider-v-bg.png);
}
.x-slider-vert .x-slider-thumb {
background-image:url(../images/access/slider/slider-v-thumb.png);
}

View file

@ -0,0 +1,119 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-tab-panel-header, .x-tab-panel-footer {
background-color:#e18325;
border-color:#8db2e3;
overflow:hidden;
zoom:1;
}
.x-tab-panel-header, .x-tab-panel-footer {
border-color:#222;
}
ul.x-tab-strip-top{
background-color:#343843;
background-image: url(../images/access/tabs/tab-strip-bg.gif);
border-bottom-color:#343d4e;
}
ul.x-tab-strip-bottom{
background-color:#343843;
background-image: url(../images/access/tabs/tab-strip-btm-bg.gif);
border-top-color:#343843;
}
.x-tab-panel-header-plain .x-tab-strip-spacer,
.x-tab-panel-footer-plain .x-tab-strip-spacer {
border-color:#222;
background-color:#e18325;
}
.x-tab-strip span.x-tab-strip-text {
font:normal 14px tahoma,arial,helvetica;
color:#fff;
}
.x-tab-strip-over span.x-tab-strip-text {
color:#fff;
}
.x-tab-strip-active span.x-tab-strip-text {
color:#fff;
font-weight:bold;
}
.x-tab-strip-disabled .x-tabs-text {
color:#aaaaaa;
}
.x-tab-strip-top .x-tab-right, .x-tab-strip-top .x-tab-left, .x-tab-strip-top .x-tab-strip-inner{
background-image: url(../images/access/tabs/tabs-sprite.gif);
}
.x-tab-strip-bottom .x-tab-right {
background-image: url(../images/access/tabs/tab-btm-inactive-right-bg.gif);
}
.x-tab-strip-bottom .x-tab-left {
background-image: url(../images/access/tabs/tab-btm-inactive-left-bg.gif);
}
.x-tab-strip-bottom .x-tab-strip-active .x-tab-right {
background-image: url(../images/access/tabs/tab-btm-right-bg.gif);
}
.x-tab-strip-bottom .x-tab-strip-active .x-tab-left {
background-image: url(../images/access/tabs/tab-btm-left-bg.gif);
}
.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close {
background-image:url(../images/access/tabs/tab-close.gif);
}
.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{
background-image:url(../images/access/tabs/tab-close.gif);
}
.x-tab-panel-body {
border-color:#18181a;
background-color:#fff;
}
.x-tab-panel-body-top {
border-top: 0 none;
}
.x-tab-panel-body-bottom {
border-bottom: 0 none;
}
.x-tab-scroller-left {
background-image:url(../images/access/tabs/scroll-left.gif);
border-bottom-color:#8db2e3;
}
.x-tab-scroller-left-over {
background-position: 0 0;
}
.x-tab-scroller-left-disabled {
background-position: -18px 0;
opacity:.5;
-moz-opacity:.5;
filter:alpha(opacity=50);
cursor:default;
}
.x-tab-scroller-right {
background-image:url(../images/access/tabs/scroll-right.gif);
border-bottom-color:#8db2e3;
}
.x-tab-panel-bbar .x-toolbar, .x-tab-panel-tbar .x-toolbar {
border-color:#99bbe8;
}

View file

@ -0,0 +1,120 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-toolbar{
border-color:#18181a;
background-color:#393d4e;
background-image:url(../images/access/toolbar/bg.gif);
}
.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{
font:normal 14px arial,tahoma, helvetica, sans-serif;
}
.x-toolbar .x-item-disabled {
color:gray;
}
.x-toolbar .x-item-disabled * {
color:gray;
}
.x-toolbar .x-btn-mc em.x-btn-split {
background-image:url(../images/access/button/s-arrow-noline.gif);
}
.x-toolbar .x-btn-over .x-btn-mc em.x-btn-split, .x-toolbar .x-btn-click .x-btn-mc em.x-btn-split,
.x-toolbar .x-btn-menu-active .x-btn-mc em.x-btn-split, .x-toolbar .x-btn-pressed .x-btn-mc em.x-btn-split
{
background-image:url(../images/access/button/s-arrow-o.gif);
}
.x-toolbar .x-btn-mc em.x-btn-split-bottom {
background-image:url(../images/access/button/s-arrow-b-noline.gif);
}
.x-toolbar .x-btn-over .x-btn-mc em.x-btn-split-bottom, .x-toolbar .x-btn-click .x-btn-mc em.x-btn-split-bottom,
.x-toolbar .x-btn-menu-active .x-btn-mc em.x-btn-split-bottom, .x-toolbar .x-btn-pressed .x-btn-mc em.x-btn-split-bottom
{
background-image:url(../images/access/button/s-arrow-bo.gif);
}
.x-toolbar .xtb-sep {
background-image: url(../images/access/grid/grid-blue-split.gif);
}
.x-toolbar .x-btn {
padding-left:3px;
padding-right:3px;
}
.x-toolbar .x-btn-mc em.x-btn-arrow {
padding-right:10px;
}
.x-toolbar .x-btn-text-icon .x-btn-icon-small-left .x-btn-text {
padding-left:18px !important;
}
.x-toolbar .x-btn-mc em.x-btn-split {
padding-right:14px;
}
.x-tbar-page-first{
background-image: url(../images/access/grid/page-first.gif) !important;
}
.x-tbar-loading{
background-image: url(../images/access/grid/refresh.gif) !important;
}
.x-tbar-page-last{
background-image: url(../images/access/grid/page-last.gif) !important;
}
.x-tbar-page-next{
background-image: url(../images/access/grid/page-next.gif) !important;
}
.x-tbar-page-prev{
background-image: url(../images/access/grid/page-prev.gif) !important;
}
.x-item-disabled .x-tbar-loading{
background-image: url(../images/access/grid/loading.gif) !important;
}
.x-item-disabled .x-tbar-page-first{
background-image: url(../images/access/grid/page-first-disabled.gif) !important;
}
.x-item-disabled .x-tbar-page-last{
background-image: url(../images/access/grid/page-last-disabled.gif) !important;
}
.x-item-disabled .x-tbar-page-next{
background-image: url(../images/access/grid/page-next-disabled.gif) !important;
}
.x-item-disabled .x-tbar-page-prev{
background-image: url(../images/access/grid/page-prev-disabled.gif) !important;
}
.x-paging-info {
color:#444;
}
.x-toolbar-more-icon {
background-image: url(../images/access/toolbar/more.gif) !important;
}
.x-statusbar .x-status-busy {
background-image: url(../images/access/grid/loading.gif);
}
.x-statusbar .x-status-text-panel {
border-color: #99bbe8 #fff #fff #99bbe8;
}

View file

@ -0,0 +1,165 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-tree-node-expanded .x-tree-node-icon{
background-image:url(../images/access/tree/folder-open.gif);
}
.x-tree-node-leaf .x-tree-node-icon{
background-image:url(../images/default/tree/leaf.gif);
}
.x-tree-node-collapsed .x-tree-node-icon{
background-image:url(../images/access/tree/folder.gif);
}
.x-tree-node-loading .x-tree-node-icon{
background-image:url(../images/default/tree/loading.gif) !important;
}
.x-tree-node .x-tree-node-inline-icon {
background-image: none;
}
.x-tree-node-loading a span{
font-style: italic;
color:#444444;
}
.ext-ie .x-tree-node-el input {
width:14px;
height:14px;
}
.x-tree-lines .x-tree-elbow{
background-image:url(../images/access/tree/elbow.gif);
}
.x-tree-lines .x-tree-elbow-plus{
background-image:url(../images/access/tree/elbow-plus.gif);
}
.x-tree-lines .x-tree-elbow-minus{
background-image:url(../images/access/tree/elbow-minus.gif);
}
.x-tree-lines .x-tree-elbow-end{
background-image:url(../images/access/tree/elbow-end.gif);
}
.x-tree-lines .x-tree-elbow-end-plus{
background-image:url(../images/access/tree/elbow-end-plus.gif);
}
.x-tree-lines .x-tree-elbow-end-minus{
background-image:url(../images/access/tree/elbow-end-minus.gif);
}
.x-tree-lines .x-tree-elbow-line{
background-image:url(../images/access/tree/elbow-line.gif);
}
.x-tree-no-lines .x-tree-elbow-plus{
background-image:url(../images/access/tree/elbow-plus-nl.gif);
}
.x-tree-no-lines .x-tree-elbow-minus{
background-image:url(../images/access/tree/elbow-minus-nl.gif);
}
.x-tree-no-lines .x-tree-elbow-end-plus{
background-image:url(../images/access/tree/elbow-end-plus-nl.gif);
}
.x-tree-no-lines .x-tree-elbow-end-minus{
background-image:url(../images/access/tree/elbow-end-minus-nl.gif);
}
.x-tree-arrows .x-tree-elbow-plus{
background-image:url(../images/access/tree/arrows.gif);
}
.x-tree-arrows .x-tree-elbow-minus{
background-image:url(../images/access/tree/arrows.gif);
}
.x-tree-arrows .x-tree-elbow-end-plus{
background-image:url(../images/access/tree/arrows.gif);
}
.x-tree-arrows .x-tree-elbow-end-minus{
background-image:url(../images/access/tree/arrows.gif);
}
.x-tree-node{
color:#000;
font: normal 14px arial, tahoma, helvetica, sans-serif;
}
.x-tree-node a, .x-dd-drag-ghost a{
color:#fff;
}
.x-tree-node a span, .x-dd-drag-ghost a span{
color:#fff;
}
.x-tree-node .x-tree-selected a, .x-dd-drag-ghost a{
color:#fff;
}
.x-tree-node .x-tree-selected a span, .x-dd-drag-ghost a span{
color:#fff;
}
.x-tree-node .x-tree-node-disabled a span{
color:gray !important;
}
.x-tree-node div.x-tree-drag-insert-below{
border-bottom-color:#36c;
}
.x-tree-node div.x-tree-drag-insert-above{
border-top-color:#36c;
}
.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below a{
border-bottom-color:#36c;
}
.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above a{
border-top-color:#36c;
}
.x-tree-node .x-tree-drag-append a span{
background-color:#ddd;
border-color:gray;
}
.x-tree-node .x-tree-node-over {
background-color: #7e5530;
}
.x-tree-node .x-tree-selected {
background-color: #e5872c;
}
.x-tree-drop-ok-append .x-dd-drop-icon{
background-image: url(../images/default/tree/drop-add.gif);
}
.x-tree-drop-ok-above .x-dd-drop-icon{
background-image: url(../images/default/tree/drop-over.gif);
}
.x-tree-drop-ok-below .x-dd-drop-icon{
background-image: url(../images/default/tree/drop-under.gif);
}
.x-tree-drop-ok-between .x-dd-drop-icon{
background-image: url(../images/default/tree/drop-between.gif);
}

View file

@ -0,0 +1,87 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-window-proxy {
background-color:#1f2833;
border-color:#18181a;
}
.x-window-tl .x-window-header {
color:#fff;
font:bold 14px tahoma,arial,verdana,sans-serif;
}
.x-window-tc {
background-image: url(../images/access/window/top-bottom.png);
}
.x-window-tl {
background-image: url(../images/access/window/left-corners.png);
}
.x-window-tr {
background-image: url(../images/access/window/right-corners.png);
}
.x-window-bc {
background-image: url(../images/access/window/top-bottom.png);
}
.x-window-bl {
background-image: url(../images/access/window/left-corners.png);
}
.x-window-br {
background-image: url(../images/access/window/right-corners.png);
}
.x-window-mc {
border-color:#18181a;
font: normal 14px tahoma,arial,helvetica,sans-serif;
background-color:#1f2833;
}
.x-window-ml {
background-image: url(../images/access/window/left-right.png);
}
.x-window-mr {
background-image: url(../images/access/window/left-right.png);
}
.x-window-maximized .x-window-tc {
background-color:#fff;
}
.x-window-bbar .x-toolbar {
border-top-color:#323945;
}
.x-panel-ghost .x-window-tl {
border-bottom-color:#323945;
}
.x-panel-collapsed .x-window-tl {
border-bottom-color:#323945;
}
.x-dlg-mask{
background-color:#ccc;
}
.x-window-plain .x-window-mc {
background-color: #464f61;
border-color: #636778;
}
.x-window-plain .x-window-body {
color: #fffff6;
border-color: #464F61;
}
body.x-body-masked .x-window-plain .x-window-mc {
background-color: #464f61;
}

View file

@ -0,0 +1,29 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-panel-noborder .x-panel-header-noborder {
border-bottom-color:#d0d0d0;
}
.x-panel-noborder .x-panel-tbar-noborder .x-toolbar {
border-bottom-color:#d0d0d0;
}
.x-panel-noborder .x-panel-bbar-noborder .x-toolbar {
border-top-color:#d0d0d0;
}
.x-tab-panel-bbar-noborder .x-toolbar {
border-top-color:#d0d0d0;
}
.x-tab-panel-tbar-noborder .x-toolbar {
border-bottom-color:#d0d0d0;
}
.x-border-layout-ct {
background-color:#f0f0f0;
}

View file

@ -0,0 +1,74 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-box-tl {
background-image: url(../images/default/box/corners.gif);
}
.x-box-tc {
background-image: url(../images/default/box/tb.gif);
}
.x-box-tr {
background-image: url(../images/default/box/corners.gif);
}
.x-box-ml {
background-image: url(../images/default/box/l.gif);
}
.x-box-mc {
background-color: #eee;
background-image: url(../images/default/box/tb.gif);
font-family: "Myriad Pro","Myriad Web","Tahoma","Helvetica","Arial",sans-serif;
color: #393939;
font-size: 12px;
}
.x-box-mc h3 {
font-size: 14px;
font-weight: bold;
}
.x-box-mr {
background-image: url(../images/default/box/r.gif);
}
.x-box-bl {
background-image: url(../images/default/box/corners.gif);
}
.x-box-bc {
background-image: url(../images/default/box/tb.gif);
}
.x-box-br {
background-image: url(../images/default/box/corners.gif);
}
.x-box-blue .x-box-bl, .x-box-blue .x-box-br, .x-box-blue .x-box-tl, .x-box-blue .x-box-tr {
background-image: url(../images/default/box/corners-blue.gif);
}
.x-box-blue .x-box-bc, .x-box-blue .x-box-mc, .x-box-blue .x-box-tc {
background-image: url(../images/default/box/tb-blue.gif);
}
.x-box-blue .x-box-mc {
background-color: #c3daf9;
}
.x-box-blue .x-box-mc h3 {
color: #17385b;
}
.x-box-blue .x-box-ml {
background-image: url(../images/default/box/l-blue.gif);
}
.x-box-blue .x-box-mr {
background-image: url(../images/default/box/r-blue.gif);
}

View file

@ -0,0 +1,94 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-btn{
font:normal 11px tahoma, verdana, helvetica;
}
.x-btn button{
font:normal 11px arial,tahoma,verdana,helvetica;
color:#333;
}
.x-btn em {
font-style:normal;
font-weight:normal;
}
.x-btn-tl, .x-btn-tr, .x-btn-tc, .x-btn-ml, .x-btn-mr, .x-btn-mc, .x-btn-bl, .x-btn-br, .x-btn-bc{
background-image:url(../images/gray/button/btn.gif);
}
.x-btn-click .x-btn-text, .x-btn-menu-active .x-btn-text, .x-btn-pressed .x-btn-text{
color:#000;
}
.x-btn-disabled *{
color:gray !important;
}
.x-btn-mc em.x-btn-arrow {
background-image:url(../images/default/button/arrow.gif);
}
.x-btn-mc em.x-btn-split {
background-image:url(../images/default/button/s-arrow.gif);
}
.x-btn-over .x-btn-mc em.x-btn-split, .x-btn-click .x-btn-mc em.x-btn-split, .x-btn-menu-active .x-btn-mc em.x-btn-split, .x-btn-pressed .x-btn-mc em.x-btn-split {
background-image:url(../images/gray/button/s-arrow-o.gif);
}
.x-btn-mc em.x-btn-arrow-bottom {
background-image:url(../images/default/button/s-arrow-b-noline.gif);
}
.x-btn-mc em.x-btn-split-bottom {
background-image:url(../images/default/button/s-arrow-b.gif);
}
.x-btn-over .x-btn-mc em.x-btn-split-bottom, .x-btn-click .x-btn-mc em.x-btn-split-bottom, .x-btn-menu-active .x-btn-mc em.x-btn-split-bottom, .x-btn-pressed .x-btn-mc em.x-btn-split-bottom {
background-image:url(../images/gray/button/s-arrow-bo.gif);
}
.x-btn-group-header {
color: #666;
}
.x-btn-group-tc {
background-image: url(../images/gray/button/group-tb.gif);
}
.x-btn-group-tl {
background-image: url(../images/gray/button/group-cs.gif);
}
.x-btn-group-tr {
background-image: url(../images/gray/button/group-cs.gif);
}
.x-btn-group-bc {
background-image: url(../images/gray/button/group-tb.gif);
}
.x-btn-group-bl {
background-image: url(../images/gray/button/group-cs.gif);
}
.x-btn-group-br {
background-image: url(../images/gray/button/group-cs.gif);
}
.x-btn-group-ml {
background-image: url(../images/gray/button/group-lr.gif);
}
.x-btn-group-mr {
background-image: url(../images/gray/button/group-lr.gif);
}
.x-btn-group-notitle .x-btn-group-tc {
background-image: url(../images/gray/button/group-tb.gif);
}

View file

@ -0,0 +1,43 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-combo-list {
border-color:#ccc;
background-color:#ddd;
font:normal 12px tahoma, arial, helvetica, sans-serif;
}
.x-combo-list-inner {
background-color:#fff;
}
.x-combo-list-hd {
font:bold 11px tahoma, arial, helvetica, sans-serif;
color:#333;
background-image: url(../images/default/layout/panel-title-light-bg.gif);
border-bottom-color:#BCBCBC;
}
.x-resizable-pinned .x-combo-list-inner {
border-bottom-color:#BEBEBE;
}
.x-combo-list-item {
border-color:#fff;
}
.x-combo-list .x-combo-selected{
border-color:#777 !important;
background-color:#f0f0f0;
}
.x-combo-list .x-toolbar {
border-top-color:#BCBCBC;
}
.x-combo-list-small {
font:normal 11px tahoma, arial, helvetica, sans-serif;
}

View file

@ -0,0 +1,83 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.ext-el-mask {
background-color: #ccc;
}
.ext-el-mask-msg {
border-color:#999;
background-color:#ddd;
background-image:url(../images/gray/panel/white-top-bottom.gif);
background-position: 0 -1px;
}
.ext-el-mask-msg div {
background-color: #eee;
border-color:#d0d0d0;
color:#222;
font:normal 11px tahoma, arial, helvetica, sans-serif;
}
.x-mask-loading div {
background-color:#fbfbfb;
background-image:url(../images/default/grid/loading.gif);
}
.x-item-disabled {
color: gray;
}
.x-item-disabled * {
color: gray !important;
}
.x-splitbar-proxy {
background-color: #aaa;
}
.x-color-palette a {
border-color:#fff;
}
.x-color-palette a:hover, .x-color-palette a.x-color-palette-sel {
border-color:#CFCFCF;
background-color: #eaeaea;
}
/*
.x-color-palette em:hover, .x-color-palette span:hover{
background-color: #eaeaea;
}
*/
.x-color-palette em {
border-color:#aca899;
}
.x-ie-shadow {
background-color:#777;
}
.x-shadow .xsmc {
background-image: url(../images/default/shadow-c.png);
}
.x-shadow .xsml, .x-shadow .xsmr {
background-image: url(../images/default/shadow-lr.png);
}
.x-shadow .xstl, .x-shadow .xstc, .x-shadow .xstr, .x-shadow .xsbl, .x-shadow .xsbc, .x-shadow .xsbr{
background-image: url(../images/default/shadow.png);
}
.loading-indicator {
font-size: 11px;
background-image: url(../images/default/grid/loading.gif);
}
.x-spotlight {
background-color: #ccc;
}

View file

@ -0,0 +1,143 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-date-picker {
border-color:#585858;
background-color:#fff;
}
.x-date-middle,.x-date-left,.x-date-right {
background-image: url(../images/gray/shared/hd-sprite.gif);
color:#fff;
font:bold 11px "sans serif", tahoma, verdana, helvetica;
}
.x-date-middle .x-btn .x-btn-text {
color:#fff;
}
.x-date-middle .x-btn-mc em.x-btn-arrow {
background-image:url(../images/gray/toolbar/btn-arrow-light.gif);
}
.x-date-right a {
background-image: url(../images/gray/shared/right-btn.gif);
}
.x-date-left a{
background-image: url(../images/gray/shared/left-btn.gif);
}
.x-date-inner th {
background-color:#D8D8D8;
background-image: url(../images/gray/panel/white-top-bottom.gif);
border-bottom-color:#AFAFAF;
font:normal 10px arial, helvetica,tahoma,sans-serif;
color:#595959;
}
.x-date-inner td {
border-color:#fff;
}
.x-date-inner a {
font:normal 11px arial, helvetica,tahoma,sans-serif;
color:#000;
}
.x-date-inner .x-date-active{
color:#000;
}
.x-date-inner .x-date-selected a{
background-image: none;
background-color:#D8D8D8;
border-color:#DCDCDC;
}
.x-date-inner .x-date-today a{
border-color:darkred;
}
.x-date-inner .x-date-selected span{
font-weight:bold;
}
.x-date-inner .x-date-prevday a,.x-date-inner .x-date-nextday a {
color:#aaa;
}
.x-date-bottom {
border-top-color:#AFAFAF;
background-color:#D8D8D8;
background:#D8D8D8 url(../images/gray/panel/white-top-bottom.gif) 0 -2px;
}
.x-date-inner a:hover, .x-date-inner .x-date-disabled a:hover{
color:#000;
background-color:#D8D8D8;
}
.x-date-inner .x-date-disabled a {
background-color:#eee;
color:#bbb;
}
.x-date-mmenu{
background-color:#eee !important;
}
.x-date-mmenu .x-menu-item {
font-size:10px;
color:#000;
}
.x-date-mp {
background-color:#fff;
}
.x-date-mp td {
font:normal 11px arial, helvetica,tahoma,sans-serif;
}
.x-date-mp-btns button {
background-color:#4E565F;
color:#fff;
border-color:#C0C0C0 #434343 #434343 #C0C0C0;
font:normal 11px arial, helvetica,tahoma,sans-serif;
}
.x-date-mp-btns {
background-color:#D8D8D8;
background:#D8D8D8 url(../images/gray/panel/white-top-bottom.gif) 0 -2px;
}
.x-date-mp-btns td {
border-top-color:#AFAFAF;
}
td.x-date-mp-month a,td.x-date-mp-year a {
color: #333;
}
td.x-date-mp-month a:hover,td.x-date-mp-year a:hover {
color:#333;
background-color:#FDFDFD;
}
td.x-date-mp-sel a {
background-color:#D8D8D8;
background:#D8D8D8 url(../images/gray/panel/white-top-bottom.gif) 0 -2px;
border-color:#DCDCDC;
}
.x-date-mp-ybtn a {
background-image:url(../images/gray/panel/tool-sprites.gif);
}
td.x-date-mp-sep {
border-right-color:#D7D7D7;
}

View file

@ -0,0 +1,29 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-dd-drag-ghost{
color:#000;
font: normal 11px arial, helvetica, sans-serif;
border-color: #ddd #bbb #bbb #ddd;
background-color:#fff;
}
.x-dd-drop-nodrop .x-dd-drop-icon{
background-image: url(../images/default/dd/drop-no.gif);
}
.x-dd-drop-ok .x-dd-drop-icon{
background-image: url(../images/default/dd/drop-yes.gif);
}
.x-dd-drop-ok-add .x-dd-drop-icon{
background-image: url(../images/default/dd/drop-add.gif);
}
.x-view-selector {
background-color:#D6D6D6;
border-color:#888888;
}

View file

@ -0,0 +1,24 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
#x-debug-browser .x-tree .x-tree-node a span {
color:#222297;
font-size:11px;
font-family:"monotype","courier new",sans-serif;
}
#x-debug-browser .x-tree a i {
color:#ff4545;
font-style:normal;
}
#x-debug-browser .x-tree a em {
color:#999;
}
#x-debug-browser .x-tree .x-tree-node .x-tree-selected a span{
background-color:#D5D5D5;
}

View file

@ -0,0 +1,34 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-window-dlg .ext-mb-text,
.x-window-dlg .x-window-header-text {
font-size:12px;
}
.x-window-dlg .ext-mb-textarea {
font:normal 12px tahoma,arial,helvetica,sans-serif;
}
.x-window-dlg .x-msg-box-wait {
background-image:url(../images/default/grid/loading.gif);
}
.x-window-dlg .ext-mb-info {
background-image:url(../images/gray/window/icon-info.gif);
}
.x-window-dlg .ext-mb-warning {
background-image:url(../images/gray/window/icon-warning.gif);
}
.x-window-dlg .ext-mb-question {
background-image:url(../images/gray/window/icon-question.gif);
}
.x-window-dlg .ext-mb-error {
background-image:url(../images/gray/window/icon-error.gif);
}

View file

@ -0,0 +1,13 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-html-editor-wrap {
border-color:#BCBCBC;
background-color:#fff;
}
.x-html-editor-tb .x-btn-text {
background-image:url(../images/default/editor/tb-sprite.gif);
}

View file

@ -0,0 +1,117 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
.x-form-field{
font:normal 12px tahoma, arial, helvetica, sans-serif;
}
.x-form-text, textarea.x-form-field{
background-color:#fff;
background-image:url(../images/default/form/text-bg.gif);
border-color:#C1C1C1;
}
.x-form-select-one {
background-color:#fff;
border-color:#C1C1C1;
}
.x-form-check-group-label {
border-bottom: 1px solid #d0d0d0;
color: #333;
}
.x-editor .x-form-check-wrap {
background-color:#fff;
}
.x-form-field-wrap .x-form-trigger{
background-image:url(../images/gray/form/trigger.gif);
border-bottom-color:#b5b8c8;
}
.x-form-field-wrap .x-form-date-trigger{
background-image: url(../images/gray/form/date-trigger.gif);
}
.x-form-field-wrap .x-form-clear-trigger{
background-image: url(../images/gray/form/clear-trigger.gif);
}
.x-form-field-wrap .x-form-search-trigger{
background-image: url(../images/gray/form/search-trigger.gif);
}
.x-trigger-wrap-focus .x-form-trigger{
border-bottom-color: #777777;
}
.x-item-disabled .x-form-trigger-over{
border-bottom-color:#b5b8c8;
}
.x-item-disabled .x-form-trigger-click{
border-bottom-color:#b5b8c8;
}
.x-form-focus, textarea.x-form-focus{
border-color:#777777;
}
.x-form-invalid, textarea.x-form-invalid{
background-color:#fff;
background-image:url(../images/default/grid/invalid_line.gif);
border-color:#c30;
}
.ext-webkit .x-form-invalid{
background-color:#fee;
border-color:#ff7870;
}
.x-form-inner-invalid, textarea.x-form-inner-invalid{
background-color:#fff;
background-image:url(../images/default/grid/invalid_line.gif);
}
.x-form-grow-sizer {
font:normal 12px tahoma, arial, helvetica, sans-serif;
}
.x-form-item {
font:normal 12px tahoma, arial, helvetica, sans-serif;
}
.x-form-invalid-msg {
color:#c0272b;
font:normal 11px tahoma, arial, helvetica, sans-serif;
background-image:url(../images/default/shared/warning.gif);
}
.x-form-empty-field {
color:gray;
}
.x-small-editor .x-form-field {
font:normal 11px arial, tahoma, helvetica, sans-serif;
}
.ext-webkit .x-small-editor .x-form-field {
font:normal 12px arial, tahoma, helvetica, sans-serif;
}
.x-form-invalid-icon {
background-image:url(../images/default/form/exclamation.gif);
}
.x-fieldset {
border-color:#CCCCCC;
}
.x-fieldset legend {
font:bold 11px tahoma, arial, helvetica, sans-serif;
color:#777777;
}

Some files were not shown because too many files have changed in this diff Show more