ucan-ext-js-kitchen-sink
Version:
my-ext-gen-app description for Ext JS app MyExtGenApp
410 lines (403 loc) • 9.37 kB
JavaScript
Ext.define('UCANSink.view.componentDetail.examples.shareComponent.exampleViewModel', {
extend: 'Ext.app.ViewModel',
alias: 'viewmodel.ucanshareComponentexampleviewmodel',
data: {
disableExpandButton: false,
segmentedButtonStyle: 'space',
selectedLanguage: 'de',
owner: 1
},
stores: {
availableAccounts: {
model: 'UCAN.shareComponent.src.Share',
data: [
{
firstName: 'Peter',
lastName: 'Listig',
name: 'Peter Listig',
id: 1
},
{
firstName: 'Peter',
lastName: 'Griff',
name: 'Peter Griff',
id: 2
},
{
firstName: 'Albert',
lastName: 'Stein',
name: 'Albert Stein',
id: 3
},
{
firstName: 'Vincent',
lastName: 'Wang',
name: 'Vincent Wang',
id: 4
},
{
firstName: 'Ludwig',
lastName: 'Hof',
name: 'Ludwig Hof',
id: 5
},
{
firstName: 'Friedrich',
lastName: 'April',
name: 'Friedrich April',
id: 6
},
{
firstName: 'Rainer',
lastName: 'Tisch',
name: 'Rainer Tisch',
id: 7
},
{
firstName: 'George',
lastName: 'Baum',
name: 'George Baum',
id: 8
},
{
firstName: 'Günther',
lastName: 'Angler',
name: 'Günther Angler',
id: 9
},
{
firstName: 'Wolf',
lastName: 'Gang',
name: 'Wolf Gang',
id: 10
},
{
firstName: 'Karsten',
lastName: 'Bronze',
name: 'Karsten Bronze',
id: 11
},
{
firstName: 'Julia',
lastName: 'Grün',
name: 'Julia Grün',
id: 12
},
{
firstName: 'Nicole',
lastName: 'Müller',
name: 'Nicole Müller',
id: 13
},
{
firstName: 'Thorsten',
lastName: 'Bauer',
name: 'Thorsten Bauer',
id: 14
},
{
firstName: 'Waldo',
lastName: 'Such',
name: 'Waldo Such',
id: 15
},
{
firstName: 'Caroline',
lastName: 'Pik',
name: 'Caroline Pik',
id: 16
},
{
firstName: 'Rita',
lastName: 'Ohr',
name: 'Rita Ohr',
id: 17
},
{
firstName: 'Angela',
lastName: 'Ringelnatter',
name: 'Friedrich April',
id: 18
}
],
proxy: {
type: 'memory'
}
},
availableGroups: {
model: 'UCAN.shareComponent.src.Share',
data: [
{
id: 7,
name: 'Dichter'
},
{
id: 8,
name: 'Menschen'
},
{
id: 9,
name: 'Tiere'
},
{
id: 10,
name: 'Pflanzen'
}
],
proxy: {
type: 'memory'
}
},
myGroups: {
model: 'UCAN.shareComponent.src.Share',
data: [
{
id: 8,
name: 'Menschen'
},
{
id: 9,
name: 'Tiere'
}
],
proxy: {
type: 'memory'
}
},
myAccountsGroups: {
model: 'UCAN.shareComponent.src.Share',
data: [
{
firstName: 'Waldo',
lastName: 'Such',
name: 'Waldo Such',
id: 15
},
{
firstName: 'Caroline',
lastName: 'Pik',
name: 'Caroline Pik',
id: 16
},
{
firstName: 'Rita',
lastName: 'Ohr',
name: 'Rita Ohr',
id: 17
},
{
firstName: 'Angela',
lastName: 'Ringelnatter',
name: 'Friedrich April',
id: 18
}
],
proxy: {
type: 'memory'
}
},
myDirectoriesGroups: {
model: 'UCAN.shareComponent.src.Share',
data: [
{
id: 9,
name: 'Tiere'
},
{
id: 10,
name: 'Pflanzen'
}
],
proxy: {
type: 'memory'
}
},
myDirectoriesAccounts: {
model: 'UCAN.shareComponent.src.Share',
data: [
{
firstName: 'Vincent',
lastName: 'Wang',
name: 'Vincent Wang',
id: 4
},
{
firstName: 'Ludwig',
lastName: 'Hof',
name: 'Ludwig Hof',
id: 5
},
{
firstName: 'Friedrich',
lastName: 'April',
name: 'Friedrich April',
id: 6
},
{
firstName: 'Karsten',
lastName: 'Bronze',
name: 'Karsten Bronze',
id: 11
},
{
firstName: 'Julia',
lastName: 'Grün',
name: 'Julia Grün',
id: 12
},
{
firstName: 'Nicole',
lastName: 'Müller',
name: 'Nicole Müller',
id: 13
},
{
firstName: 'Thorsten',
lastName: 'Bauer',
name: 'Thorsten Bauer',
id: 14
},
{
firstName: 'Waldo',
lastName: 'Such',
name: 'Waldo Such',
id: 15
},
{
firstName: 'Caroline',
lastName: 'Pik',
name: 'Caroline Pik',
id: 16
}
],
proxy: {
type: 'memory'
}
},
availableGroupsBigdata: {
type: 'virtual',
pageSize: 200,
proxy : { type : 'ajax', url : '//nameless-tundra-27404.herokuapp.com/go/?fn=bigdata', reader : { type : 'json', rootProperty : 'data' } },
autoLoad: true
},
associatedShares: {
model: 'UCAN.shareComponent.src.Share',
data: [
{
firstName: 'Peter',
lastName: 'Listig',
name: 'Peter Listig',
type: 'ACCOUNT',
id: 1,
read: true,
write: true
},
{
firstName: 'Ludwig',
lastName: 'Hof',
name: 'Ludwig Hof',
type: 'ACCOUNT',
id: 5,
read: true
},
{
id: 7,
name: 'Dichter',
type: 'GROUP',
read: true,
write: true
},
{
id: 9,
name: 'Tiere',
type: 'GROUP',
read: true
}
],
proxy: {
type: 'memory'
}
},
translationDE: {
data: [
{
id: 'ID',
name: 'Name',
rights: 'Rechte',
first_name: 'Vorname',
last_name: 'Nachname',
users: 'Nutzer',
groups: 'Gruppen',
read_access_toggle: 'Leserecht hinzufügen/entfernen',
write_access_toggle: 'Schreibrecht hinzufügen/entfernen',
share_show_all: 'Alle verfügbaren Accounts und Gruppen anzeigen',
shares_filter: 'Suchen',
sort_ascending: 'Aufsteigend sortieren',
sort_descending: 'Absteigend sortieren',
columns: 'Spalten',
group_by_this_field: 'Nach diesem Feld gruppieren',
show_in_groups: 'In Gruppen anzeigen',
loading_data: 'Daten werden geladen...',
empty_text: 'Keine Daten vorhanden',
loading: 'Lade Daten...',
my_directories: 'Meine Verzeichnisse',
my_groups: 'Meine Gruppen',
all: 'Alle'
}
]
},
translationEN: {
data: [
{
id: 'ID',
name: 'Name',
rights: 'Rights',
first_name: 'First name',
last_name: 'Last name',
users: 'Users',
groups: 'Groups',
read_access_toggle: 'Add/Remove read access',
write_access_toggle: 'Add/Remove write access',
share_show_all: 'Show available shares',
shares_filter: 'Search',
sort_ascending: 'Sort ascending',
sort_descending: 'Sort descending',
columns: 'Columns',
group_by_this_field: 'Group by this field',
show_in_groups: 'Show in groups',
loading_data: 'Loading data...',
empty_text: 'No data available',
my_directories: 'My directories',
my_groups: 'My groups',
all: 'All'
}
]
}
},
formulas: {
readAccess: {
// Bind with deep true to get notified about underlying changes
bind: {
bindTo: '{associatedReadAccessShares}',
deep: true
},
get: function(items) {
return items.getRange().map(share => share.get('id'));
}
},
writeAccess: {
// Bind directly to the store items to get the change without the need of deep binding
bind: '{associatedWriteAccessShares.data.items}',
get: function(items) {
return items.map(share => share.get('id'));
}
},
translator: function(get) {
if (get('selectedLanguage') === 'de') {
return get('translationDE.first');
} else {
return get('translationEN.first');
}
}
}
});