webui: upgrade to Ext JS 3.4.0
This commit is contained in:
parent
ee35bff867
commit
66d3e990d2
742 changed files with 78986 additions and 41586 deletions
|
@ -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');
|
||||
}
|
||||
|
|
|
@ -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');
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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');
|
||||
}
|
||||
|
|
|
@ -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
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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 */
|
|
@ -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(...) {...}
|
||||
* 'icon-open':function(...) {...}
|
||||
* ,'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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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 : ' ') + '</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 : ' ')
|
||||
+ '</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();
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
|
|
|
@ -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} '
|
||||
);
|
||||
|
||||
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} ');
|
||||
|
||||
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;
|
||||
}
|
||||
|
|
2909
src/webui/static/extjs/adapter/ext/ext-base-debug.js
vendored
Normal file
2909
src/webui/static/extjs/adapter/ext/ext-base-debug.js
vendored
Normal file
File diff suppressed because it is too large
Load diff
17
src/webui/static/extjs/adapter/ext/ext-base.js
vendored
17
src/webui/static/extjs/adapter/ext/ext-base.js
vendored
File diff suppressed because one or more lines are too long
67767
src/webui/static/extjs/ext-all-debug.js
vendored
67767
src/webui/static/extjs/ext-all-debug.js
vendored
File diff suppressed because it is too large
Load diff
173
src/webui/static/extjs/ext-all.js
vendored
173
src/webui/static/extjs/ext-all.js
vendored
File diff suppressed because one or more lines are too long
5736
src/webui/static/extjs/ext-core-debug.js
vendored
5736
src/webui/static/extjs/ext-core-debug.js
vendored
File diff suppressed because it is too large
Load diff
19
src/webui/static/extjs/ext-core.js
vendored
19
src/webui/static/extjs/ext-core.js
vendored
File diff suppressed because one or more lines are too long
|
@ -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).
|
||||
|
||||
|
|
111
src/webui/static/extjs/resources/css/box.css
vendored
111
src/webui/static/extjs/resources/css/box.css
vendored
|
@ -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);
|
||||
}
|
161
src/webui/static/extjs/resources/css/button.css
vendored
161
src/webui/static/extjs/resources/css/button.css
vendored
|
@ -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;
|
||||
}
|
55
src/webui/static/extjs/resources/css/combo.css
vendored
55
src/webui/static/extjs/resources/css/combo.css
vendored
|
@ -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;
|
||||
}
|
75
src/webui/static/extjs/resources/css/dd.css
vendored
75
src/webui/static/extjs/resources/css/dd.css
vendored
|
@ -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;
|
||||
}
|
48
src/webui/static/extjs/resources/css/debug.css
vendored
48
src/webui/static/extjs/resources/css/debug.css
vendored
|
@ -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;
|
||||
}
|
69
src/webui/static/extjs/resources/css/dialog.css
vendored
69
src/webui/static/extjs/resources/css/dialog.css
vendored
|
@ -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;
|
||||
}
|
66
src/webui/static/extjs/resources/css/editor.css
vendored
66
src/webui/static/extjs/resources/css/editor.css
vendored
|
@ -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;
|
||||
}
|
5326
src/webui/static/extjs/resources/css/ext-all-notheme.css
vendored
Normal file
5326
src/webui/static/extjs/resources/css/ext-all-notheme.css
vendored
Normal file
File diff suppressed because it is too large
Load diff
7870
src/webui/static/extjs/resources/css/ext-all.css
vendored
7870
src/webui/static/extjs/resources/css/ext-all.css
vendored
File diff suppressed because it is too large
Load diff
142
src/webui/static/extjs/resources/css/menu.css
vendored
142
src/webui/static/extjs/resources/css/menu.css
vendored
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
134
src/webui/static/extjs/resources/css/qtips.css
vendored
134
src/webui/static/extjs/resources/css/qtips.css
vendored
|
@ -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;
|
||||
}
|
|
@ -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:'';}
|
|
@ -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;
|
||||
}
|
80
src/webui/static/extjs/resources/css/structure/box.css
vendored
Normal file
80
src/webui/static/extjs/resources/css/structure/box.css
vendored
Normal 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;
|
||||
}
|
445
src/webui/static/extjs/resources/css/structure/button.css
vendored
Normal file
445
src/webui/static/extjs/resources/css/structure/button.css
vendored
Normal 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;
|
||||
}
|
45
src/webui/static/extjs/resources/css/structure/combo.css
vendored
Normal file
45
src/webui/static/extjs/resources/css/structure/combo.css
vendored
Normal 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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
61
src/webui/static/extjs/resources/css/structure/dd.css
vendored
Normal file
61
src/webui/static/extjs/resources/css/structure/dd.css
vendored
Normal 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;
|
||||
}
|
26
src/webui/static/extjs/resources/css/structure/debug.css
vendored
Normal file
26
src/webui/static/extjs/resources/css/structure/debug.css
vendored
Normal 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;
|
||||
}
|
59
src/webui/static/extjs/resources/css/structure/dialog.css
vendored
Normal file
59
src/webui/static/extjs/resources/css/structure/dialog.css
vendored
Normal 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;
|
||||
}
|
92
src/webui/static/extjs/resources/css/structure/editor.css
vendored
Normal file
92
src/webui/static/extjs/resources/css/structure/editor.css
vendored
Normal 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;
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load diff
|
@ -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;
|
||||
}
|
86
src/webui/static/extjs/resources/css/structure/list-view.css
vendored
Normal file
86
src/webui/static/extjs/resources/css/structure/list-view.css
vendored
Normal 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;
|
||||
}
|
||||
|
245
src/webui/static/extjs/resources/css/structure/menu.css
vendored
Normal file
245
src/webui/static/extjs/resources/css/structure/menu.css
vendored
Normal 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;
|
||||
}
|
130
src/webui/static/extjs/resources/css/structure/panel-reset.css
vendored
Normal file
130
src/webui/static/extjs/resources/css/structure/panel-reset.css
vendored
Normal 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 }
|
|
@ -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;
|
||||
}
|
65
src/webui/static/extjs/resources/css/structure/pivotgrid.css
vendored
Normal file
65
src/webui/static/extjs/resources/css/structure/pivotgrid.css
vendored
Normal 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;
|
||||
}
|
46
src/webui/static/extjs/resources/css/structure/progress.css
vendored
Normal file
46
src/webui/static/extjs/resources/css/structure/progress.css
vendored
Normal 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%;
|
||||
}
|
153
src/webui/static/extjs/resources/css/structure/qtips.css
vendored
Normal file
153
src/webui/static/extjs/resources/css/structure/qtips.css
vendored
Normal 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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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);
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
246
src/webui/static/extjs/resources/css/structure/toolbar.css
vendored
Normal file
246
src/webui/static/extjs/resources/css/structure/toolbar.css
vendored
Normal 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;
|
||||
}
|
218
src/webui/static/extjs/resources/css/structure/tree.css
vendored
Normal file
218
src/webui/static/extjs/resources/css/structure/tree.css
vendored
Normal 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;
|
||||
}
|
|
@ -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;
|
||||
}
|
25
src/webui/static/extjs/resources/css/theme-access/borders.css
vendored
Normal file
25
src/webui/static/extjs/resources/css/theme-access/borders.css
vendored
Normal 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;
|
||||
}
|
74
src/webui/static/extjs/resources/css/theme-access/box.css
vendored
Normal file
74
src/webui/static/extjs/resources/css/theme-access/box.css
vendored
Normal 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);
|
||||
}
|
136
src/webui/static/extjs/resources/css/theme-access/button.css
vendored
Normal file
136
src/webui/static/extjs/resources/css/theme-access/button.css
vendored
Normal 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);
|
||||
}
|
43
src/webui/static/extjs/resources/css/theme-access/combo.css
vendored
Normal file
43
src/webui/static/extjs/resources/css/theme-access/combo.css
vendored
Normal 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;
|
||||
}
|
81
src/webui/static/extjs/resources/css/theme-access/core.css
vendored
Normal file
81
src/webui/static/extjs/resources/css/theme-access/core.css
vendored
Normal 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;
|
||||
}
|
145
src/webui/static/extjs/resources/css/theme-access/date-picker.css
vendored
Normal file
145
src/webui/static/extjs/resources/css/theme-access/date-picker.css
vendored
Normal 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;
|
||||
}
|
29
src/webui/static/extjs/resources/css/theme-access/dd.css
vendored
Normal file
29
src/webui/static/extjs/resources/css/theme-access/dd.css
vendored
Normal 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;
|
||||
}
|
24
src/webui/static/extjs/resources/css/theme-access/debug.css
vendored
Normal file
24
src/webui/static/extjs/resources/css/theme-access/debug.css
vendored
Normal 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;
|
||||
}
|
34
src/webui/static/extjs/resources/css/theme-access/dialog.css
vendored
Normal file
34
src/webui/static/extjs/resources/css/theme-access/dialog.css
vendored
Normal 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);
|
||||
}
|
16
src/webui/static/extjs/resources/css/theme-access/editor.css
vendored
Normal file
16
src/webui/static/extjs/resources/css/theme-access/editor.css
vendored
Normal 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);
|
||||
}
|
176
src/webui/static/extjs/resources/css/theme-access/form.css
vendored
Normal file
176
src/webui/static/extjs/resources/css/theme-access/form.css
vendored
Normal 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;
|
||||
}
|
288
src/webui/static/extjs/resources/css/theme-access/grid.css
vendored
Normal file
288
src/webui/static/extjs/resources/css/theme-access/grid.css
vendored
Normal 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;
|
||||
}
|
56
src/webui/static/extjs/resources/css/theme-access/layout.css
vendored
Normal file
56
src/webui/static/extjs/resources/css/theme-access/layout.css
vendored
Normal 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);
|
||||
}
|
43
src/webui/static/extjs/resources/css/theme-access/list-view.css
vendored
Normal file
43
src/webui/static/extjs/resources/css/theme-access/list-view.css
vendored
Normal 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;
|
||||
}
|
79
src/webui/static/extjs/resources/css/theme-access/menu.css
vendored
Normal file
79
src/webui/static/extjs/resources/css/theme-access/menu.css
vendored
Normal 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);
|
||||
}
|
94
src/webui/static/extjs/resources/css/theme-access/panel.css
vendored
Normal file
94
src/webui/static/extjs/resources/css/theme-access/panel.css
vendored
Normal 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;
|
||||
}
|
35
src/webui/static/extjs/resources/css/theme-access/progress.css
vendored
Normal file
35
src/webui/static/extjs/resources/css/theme-access/progress.css
vendored
Normal 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;
|
||||
}
|
44
src/webui/static/extjs/resources/css/theme-access/qtips.css
vendored
Normal file
44
src/webui/static/extjs/resources/css/theme-access/qtips.css
vendored
Normal 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);
|
||||
}
|
44
src/webui/static/extjs/resources/css/theme-access/resizable.css
vendored
Normal file
44
src/webui/static/extjs/resources/css/theme-access/resizable.css
vendored
Normal 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;
|
||||
}
|
21
src/webui/static/extjs/resources/css/theme-access/slider.css
vendored
Normal file
21
src/webui/static/extjs/resources/css/theme-access/slider.css
vendored
Normal 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);
|
||||
}
|
119
src/webui/static/extjs/resources/css/theme-access/tabs.css
vendored
Normal file
119
src/webui/static/extjs/resources/css/theme-access/tabs.css
vendored
Normal 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;
|
||||
}
|
120
src/webui/static/extjs/resources/css/theme-access/toolbar.css
vendored
Normal file
120
src/webui/static/extjs/resources/css/theme-access/toolbar.css
vendored
Normal 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;
|
||||
}
|
165
src/webui/static/extjs/resources/css/theme-access/tree.css
vendored
Normal file
165
src/webui/static/extjs/resources/css/theme-access/tree.css
vendored
Normal 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);
|
||||
}
|
87
src/webui/static/extjs/resources/css/theme-access/window.css
vendored
Normal file
87
src/webui/static/extjs/resources/css/theme-access/window.css
vendored
Normal 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;
|
||||
}
|
29
src/webui/static/extjs/resources/css/theme-gray/borders.css
vendored
Normal file
29
src/webui/static/extjs/resources/css/theme-gray/borders.css
vendored
Normal 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;
|
||||
}
|
74
src/webui/static/extjs/resources/css/theme-gray/box.css
vendored
Normal file
74
src/webui/static/extjs/resources/css/theme-gray/box.css
vendored
Normal 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);
|
||||
}
|
94
src/webui/static/extjs/resources/css/theme-gray/button.css
vendored
Normal file
94
src/webui/static/extjs/resources/css/theme-gray/button.css
vendored
Normal 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);
|
||||
}
|
43
src/webui/static/extjs/resources/css/theme-gray/combo.css
vendored
Normal file
43
src/webui/static/extjs/resources/css/theme-gray/combo.css
vendored
Normal 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;
|
||||
}
|
83
src/webui/static/extjs/resources/css/theme-gray/core.css
vendored
Normal file
83
src/webui/static/extjs/resources/css/theme-gray/core.css
vendored
Normal 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;
|
||||
}
|
143
src/webui/static/extjs/resources/css/theme-gray/date-picker.css
vendored
Normal file
143
src/webui/static/extjs/resources/css/theme-gray/date-picker.css
vendored
Normal 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;
|
||||
}
|
29
src/webui/static/extjs/resources/css/theme-gray/dd.css
vendored
Normal file
29
src/webui/static/extjs/resources/css/theme-gray/dd.css
vendored
Normal 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;
|
||||
}
|
24
src/webui/static/extjs/resources/css/theme-gray/debug.css
vendored
Normal file
24
src/webui/static/extjs/resources/css/theme-gray/debug.css
vendored
Normal 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;
|
||||
}
|
34
src/webui/static/extjs/resources/css/theme-gray/dialog.css
vendored
Normal file
34
src/webui/static/extjs/resources/css/theme-gray/dialog.css
vendored
Normal 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);
|
||||
}
|
13
src/webui/static/extjs/resources/css/theme-gray/editor.css
vendored
Normal file
13
src/webui/static/extjs/resources/css/theme-gray/editor.css
vendored
Normal 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);
|
||||
}
|
117
src/webui/static/extjs/resources/css/theme-gray/form.css
vendored
Normal file
117
src/webui/static/extjs/resources/css/theme-gray/form.css
vendored
Normal 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
Loading…
Add table
Reference in a new issue