facebook-workplaceoutlookemailmicrosoft-teamsdiscordmessengercustom-servicesmacoslinuxwindowsinboxwhatsappicloudtweetdeckhipchattelegramhangoutsslackgmailskype
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
208 lines
4.7 KiB
208 lines
4.7 KiB
9 years ago
|
Ext.define('Rambox.view.main.Main', {
|
||
|
extend: 'Ext.tab.Panel'
|
||
|
,requires: [
|
||
|
'Rambox.view.main.MainController'
|
||
|
,'Rambox.view.main.MainModel'
|
||
|
,'Rambox.ux.WebView'
|
||
|
,'Rambox.ux.mixin.Badge'
|
||
|
,'Ext.ux.TabReorderer'
|
||
|
]
|
||
|
|
||
|
,xtype: 'app-main'
|
||
|
|
||
|
,controller: 'main'
|
||
|
,viewModel: {
|
||
|
type: 'main'
|
||
|
}
|
||
|
|
||
|
,plugins: [
|
||
|
{
|
||
9 years ago
|
ptype: 'tabreorderer'
|
||
|
,listeners: {
|
||
|
// I put the code here because it cannot be listened into the Controller
|
||
|
Drop: function( box, tabBar, tab, startIdx, index ) {
|
||
|
var idx = 0;
|
||
|
Ext.each(tabBar.items.items, function(t) {
|
||
|
if ( idx > 0 && t.xtype !== 'tbfill' ) { // Skip first tab because is the configuration tab
|
||
9 years ago
|
t.card.record.set('position', idx);
|
||
9 years ago
|
} else if ( t.xtype === 'tbfill' ) {
|
||
|
idx--;
|
||
|
}
|
||
|
idx++;
|
||
|
});
|
||
|
}
|
||
|
}
|
||
9 years ago
|
}
|
||
|
]
|
||
9 years ago
|
|
||
9 years ago
|
,autoRender: true
|
||
|
,autoShow: true
|
||
|
,deferredRender: false
|
||
|
,items: [
|
||
|
{
|
||
9 years ago
|
icon: 'resources/[email protected]'
|
||
9 years ago
|
,closable: false
|
||
9 years ago
|
,reorderable: false
|
||
9 years ago
|
,autoScroll: true
|
||
9 years ago
|
,layout: 'hbox'
|
||
9 years ago
|
,items: [
|
||
|
{
|
||
9 years ago
|
xtype: 'panel'
|
||
|
,title: 'Add a new Service'
|
||
|
,margin: '0 5 0 0'
|
||
|
,flex: 1
|
||
|
,header: { height: 50 }
|
||
|
,tools: [
|
||
9 years ago
|
{
|
||
9 years ago
|
xtype: 'checkboxgroup'
|
||
|
,items: [
|
||
9 years ago
|
{
|
||
9 years ago
|
xtype: 'checkbox'
|
||
|
,boxLabel: 'Messaging'
|
||
|
,name: 'messaging'
|
||
|
,checked: true
|
||
|
,uncheckedValue: false
|
||
|
,inputValue: true
|
||
9 years ago
|
}
|
||
9 years ago
|
,{
|
||
9 years ago
|
xtype: 'checkbox'
|
||
|
,boxLabel: 'Email'
|
||
|
,margin: '0 10 0 10'
|
||
|
,name: 'email'
|
||
|
,checked: true
|
||
|
,uncheckedValue: false
|
||
|
,inputValue: true
|
||
9 years ago
|
}
|
||
|
]
|
||
9 years ago
|
,listeners: {
|
||
|
change: 'doTypeFilter'
|
||
9 years ago
|
}
|
||
|
}
|
||
|
,{
|
||
9 years ago
|
xtype: 'textfield'
|
||
|
,grow: true
|
||
|
,growMin: 120
|
||
|
,growMax: 170
|
||
|
,triggers: {
|
||
|
clear: {
|
||
|
weight: 0
|
||
|
,cls: Ext.baseCSSPrefix + 'form-clear-trigger'
|
||
|
,hidden: true
|
||
|
,handler: 'onClearClick'
|
||
9 years ago
|
}
|
||
9 years ago
|
,search: {
|
||
|
weight: 1
|
||
|
,cls: Ext.baseCSSPrefix + 'form-search-trigger search-trigger'
|
||
9 years ago
|
}
|
||
9 years ago
|
}
|
||
|
,listeners: {
|
||
|
change: 'onSearchServiceChange'
|
||
|
,afterrender: 'onSearchRender'
|
||
|
,specialkey: 'onSearchEnter'
|
||
|
}
|
||
|
}
|
||
|
,{
|
||
|
type: 'plus'
|
||
|
,tooltip: 'Add a custom service'
|
||
|
,handler: 'addCustomService'
|
||
|
}
|
||
|
]
|
||
|
,items: [
|
||
|
{
|
||
|
xtype: 'dataview'
|
||
|
,store: 'ServicesList'
|
||
|
,itemSelector: 'div.service'
|
||
|
,tpl: [
|
||
|
'<tpl for=".">'
|
||
|
,'<div class="service">'
|
||
|
,'<img src="resources/icons/{logo}" width="48" />'
|
||
|
,'<span>{name}</span>'
|
||
|
,'</div>'
|
||
|
,'</tpl>'
|
||
9 years ago
|
]
|
||
9 years ago
|
,emptyText: '<div style="padding: 20px;">No services found... Try another search.</div>'
|
||
|
,listeners: {
|
||
|
itemclick: 'onNewServiceSelect'
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
,{
|
||
|
xtype: 'grid'
|
||
|
,title: 'Enabled Services'
|
||
|
,store: 'Services'
|
||
|
,hideHeaders: true
|
||
|
,margin: '0 0 0 5'
|
||
|
,flex: 1
|
||
|
,header: { height: 50 }
|
||
|
,columns: [
|
||
|
{
|
||
|
xtype: 'templatecolumn'
|
||
|
,width: 50
|
||
|
,variableRowHeight: true
|
||
|
,tpl: '<img src="{[ values.type !== \"custom\" ? \"resources/icons/\" : \"\" ]}{logo}" data-qtip="{type:capitalize}" width="32" />'
|
||
|
}
|
||
|
,{ text: 'Name', dataIndex: 'name', variableRowHeight: true, flex: 1 }
|
||
|
,{
|
||
|
xtype: 'actioncolumn'
|
||
|
,width: 60
|
||
|
,align: 'right'
|
||
9 years ago
|
,items: [
|
||
|
{
|
||
9 years ago
|
glyph: 0xf1f7
|
||
|
,tooltip: 'Prevent notifications'
|
||
|
,getClass: function( value, metaData, record, rowIndex, colIndex, store, view ){
|
||
|
if ( record.get('notifications') ) return 'x-hidden';
|
||
|
}
|
||
|
}
|
||
|
,{
|
||
|
glyph: 0xf026
|
||
|
,tooltip: 'Muted'
|
||
|
,getClass: function( value, metaData, record, rowIndex, colIndex, store, view ){
|
||
|
if ( !record.get('muted') ) return 'x-hidden';
|
||
9 years ago
|
}
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
,{
|
||
9 years ago
|
xtype: 'actioncolumn'
|
||
|
,width: 60
|
||
|
,align: 'center'
|
||
9 years ago
|
,items: [
|
||
|
{
|
||
9 years ago
|
glyph: 0xf1f8
|
||
|
,tooltip: 'Remove'
|
||
|
,handler: 'removeService'
|
||
|
,getClass: function(){ return 'x-hidden-display'; }
|
||
9 years ago
|
}
|
||
|
,{
|
||
9 years ago
|
glyph: 0xf013
|
||
|
,tooltip: 'Configure'
|
||
|
,handler: 'configureService'
|
||
|
,getClass: function(){ return 'x-hidden-display'; }
|
||
9 years ago
|
}
|
||
|
]
|
||
|
}
|
||
|
]
|
||
9 years ago
|
,viewConfig: {
|
||
|
emptyText: 'No services added...'
|
||
|
,forceFit: true
|
||
|
}
|
||
9 years ago
|
}
|
||
|
]
|
||
9 years ago
|
,bbar: [
|
||
|
'->'
|
||
|
,{
|
||
|
xtype: 'label'
|
||
|
,html: '<span class="fa fa-code" style="color:black;"></span> with <span class="fa fa-heart" style="color:red;"></span> from Argentina as an Open Source project.'
|
||
|
}
|
||
|
,'->'
|
||
|
]
|
||
9 years ago
|
}
|
||
|
]
|
||
9 years ago
|
|
||
|
,listeners: {
|
||
|
tabchange: 'onTabChange'
|
||
|
}
|
||
9 years ago
|
});
|