Ext.define(
- 'Decshee.member.controller.AddInController',
- {
- extend: 'Ext.app.Controller',
+ 'Decshee.member.controller.AddInController',
+ {
+ extend: 'Ext.app.Controller',
- views: [
- 'Decshee.member.view.AddInPanel',
- 'Decshee.member.view.List',
- 'Decshee.member.view.Edit'
- ],
+ views: [
+ 'Decshee.member.view.AddInPanel',
+ 'Decshee.member.view.List',
+ 'Decshee.member.view.Edit'
+ ],
- stores: [
- 'Decshee.member.store.Store'
- ],
+ stores: [
+ 'Decshee.member.store.Store'
+ ],
- models: [
- 'Decshee.member.model.Model'
- ],
+ models: [
+ 'Decshee.member.model.Model'
+ ],
- init: function() {
- console.log('[START] init');
- this.control(
- {
- 'memberlist': {
- itemdblclick: this.editMember
- },
- 'memberlist button[action=add]': {
- click: this.addMember
- },
- 'memberlist button[action=delete]': {
- click: this.deleteMember
- },
- 'memberedit button[action=save]': {
- click: this.updateMember
- },
- 'memberedit button[action=cancel]': {
- click: this.closeForm
- }
- }
- );
- console.log('[ END ] init');
- },
+ init: function() {
+ console.log('[START] init');
+ this.control(
+ {
+ 'memberlist': {
+ itemdblclick: this.editMember
+ },
+ 'memberlist button[action=add]': {
+ click: this.addMember
+ },
+ 'memberlist button[action=delete]': {
+ click: this.deleteMember
+ },
+ 'memberedit button[action=save]': {
+ click: this.updateMember
+ },
+ 'memberedit button[action=cancel]': {
+ click: this.closeForm
+ }
+ }
+ );
+ console.log('[ END ] init');
+ },
- addMember: function(button) {
- console.log('[ START ]add member');
- var record = Ext.create('Decshee.member.model.Model');
- this.showNewForm(record);
- console.log('[ END ]add member');
- },
+ addMember: function(button) {
+ console.log('[ START ]add member');
+ var record = Ext.create('Decshee.member.model.Model');
+ this.showNewForm(record);
+ console.log('[ END ]add member');
+ },
- editMember: function(grid, record, item, index, e) {
- console.log('[ START ]Double clicked on ' + record.get('memberId'));
- this.showEditForm(record);
- console.log('[ END ]Double clicked on ' + record.get('memberId'));
- },
+ editMember: function(grid, record, item, index, e) {
+ console.log('[ START ]Double clicked on ' + record.get('memberId'));
+ this.showEditForm(record);
+ console.log('[ END ]Double clicked on ' + record.get('memberId'));
+ },
- updateMember: function(button) {
- console.log('clicked the Save button.');
- var win = button.up('window');
- var isNew = win.isNew;
- var form = win.down('form');
- var record = form.getRecord();
- var values = form.getValues();
- record.set(values);
- win.close();
- var store = this.getStore('Decshee.member.store.Store');
- if (isNew) {
- // store.insert(0, record);
- store.add(record);
- } else {
- store.sync();
- }
- },
+ updateMember: function(button) {
+ console.log('clicked the Save button.');
+ var win = button.up('window');
+ var isNew = win.isNew;
+ var form = win.down('form');
+ var record = form.getRecord();
+ var values = form.getValues();
+ record.set(values);
+ win.close();
+ var store = this.getStore('Decshee.member.store.Store');
+ if (isNew) {
+ // store.insert(0, record);
+ store.add(record);
+ } else {
+ store.sync();
+ }
+ },
- showNewForm: function(record) {
- var window = Ext.create('Decshee.member.view.Edit', { title: '社員情報詳細[新規]', isNew: true });
- window.down('form').loadRecord(record);
- },
+ showNewForm: function(record) {
+ var window = Ext.create('Decshee.member.view.Edit', { title: '社員情報詳細[新規]', isNew: true });
+ window.down('form').loadRecord(record);
+ },
- showEditForm: function(record) {
- var window = Ext.create('Decshee.member.view.Edit', { title: '社員情報詳細[更新]', isNew: false });
- window.down('form').loadRecord(record);
- },
+ showEditForm: function(record) {
+ var window = Ext.create('Decshee.member.view.Edit', { title: '社員情報詳細[更新]', isNew: false });
+ window.down('form').loadRecord(record);
+ },
- closeForm: function(button) {
- console.log('clicked the Cancel button.');
- var win = button.up('window');
- win.close();
- }
+ closeForm: function(button) {
+ console.log('clicked the Cancel button.');
+ var win = button.up('window');
+ win.close();
}
+ }
);
\ No newline at end of file
Ext.define(
- 'Decshee.member.model.Model',
- {
- extend: 'Ext.data.Model',
-
- fields: [
- 'memberId',
- 'familyName',
- 'firstName',
- 'birthday',
- 'gender',
- 'entryDate',
- 'postalNumber',
- 'address'
- ]
- }
+ 'Decshee.member.model.Model',
+ {
+ extend: 'Ext.data.Model',
+
+ fields: [
+ 'memberId',
+ 'familyName',
+ 'firstName',
+ 'birthday',
+ 'gender',
+ 'entryDate',
+ 'postalNumber',
+ 'address'
+ ]
+ }
);
\ No newline at end of file
Ext.define(
- 'Decshee.member.store.Store',
- {
- extend: 'Ext.data.Store',
- model: 'Decshee.member.model.Model',
- autoLoad: true,
+ 'Decshee.member.store.Store',
+ {
+ extend: 'Ext.data.Store',
+ model: 'Decshee.member.model.Model',
+ autoLoad: true,
- proxy: {
- type: 'ajax',
- api: {
- read: 'addins/member/data/data.json',
- update: 'addins/member/data/update.json'
- },
+ proxy: {
+ type: 'ajax',
+ api: {
+ read: 'addins/member/data/data.json',
+ update: 'addins/member/data/update.json'
+ },
- reader: {
- type: 'json',
- root: 'members',
- successProperty: 'success'
- }
- }
+ reader: {
+ type: 'json',
+ root: 'members',
+ successProperty: 'success'
+ }
}
+ }
);
\ No newline at end of file
Ext.define(
- 'Decshee.member.view.AddInPanel',
- {
- extend: 'Ext.panel.Panel',
- alias: 'widget.memberaddinpanel',
- layout: 'fit',
-
- initComponent: function() {
- console.log('[ START ]Decshee.member.view.AddInPanel.initComponent');
- this.items = [
- { xtype: 'memberlist' }
- ];
- this.callParent(arguments);
- console.log('[ END ]Decshee.member.view.AddInPanel.initComponent');
- }
-
+ 'Decshee.member.view.AddInPanel',
+ {
+ extend: 'Ext.panel.Panel',
+ alias: 'widget.memberaddinpanel',
+ layout: 'fit',
+
+ initComponent: function() {
+ console.log('[ START ]Decshee.member.view.AddInPanel.initComponent');
+ this.items = [
+ { xtype: 'memberlist' }
+ ];
+ this.callParent(arguments);
+ console.log('[ END ]Decshee.member.view.AddInPanel.initComponent');
}
+
+ }
);
Ext.define(
- 'Decshee.member.view.Edit',
- {
- extend: 'Ext.window.Window',
- alias : 'widget.memberedit',
+ 'Decshee.member.view.Edit',
+ {
+ extend: 'Ext.window.Window',
+ alias : 'widget.memberedit',
- title : '社員情報詳細',
- layout: 'fit',
- autoShow: true,
- isNew: true,
+ title : '社員情報詳細',
+ layout: 'fit',
+ autoShow: true,
+ isNew: true,
- initComponent: function() {
- this.items = [
- {
- xtype: 'form',
- items: [
- {
- xtype: 'textfield',
- name : 'memberId',
- fieldLabel: '社員番号'
- },
- {
- xtype: 'textfield',
- name : 'familyName',
- fieldLabel: '姓'
- },
- {
- xtype: 'textfield',
- name : 'firstName',
- fieldLabel: '名'
- },
- {
- xtype: 'datefield',
- name : 'birthday',
- fieldLabel: '生年月日',
- format: 'Y/m/d'
- },
- {
- xtype: 'radiogroup',
- fieldLabel: '性別',
- vertical: false,
- items: [
- {
- boxLabel: '男性',
- name: 'gender',
- inputValue: 'male'
- },
- {
- boxLabel: '女性',
- name: 'gender',
- inputValue: 'female'
- }
- ]
- },
- {
- xtype: 'datefield',
- name : 'entryDate',
- fieldLabel: '入社年月日',
- format: 'Y/m/d'
- },
- {
- xtype: 'textfield',
- name : 'postalNumber',
- fieldLabel: '郵便番号'
- },
- {
- xtype: 'textfield',
- name : 'address',
- fieldLabel: '住所'
- },
- ]
- }
- ];
+ initComponent: function() {
+ this.items = [
+ {
+ xtype: 'form',
+ items: [
+ {
+ xtype: 'textfield',
+ name : 'memberId',
+ fieldLabel: '社員番号'
+ },
+ {
+ xtype: 'textfield',
+ name : 'familyName',
+ fieldLabel: '姓'
+ },
+ {
+ xtype: 'textfield',
+ name : 'firstName',
+ fieldLabel: '名'
+ },
+ {
+ xtype: 'datefield',
+ name : 'birthday',
+ fieldLabel: '生年月日',
+ format: 'Y/m/d'
+ },
+ {
+ xtype: 'radiogroup',
+ fieldLabel: '性別',
+ vertical: false,
+ items: [
+ {
+ boxLabel: '男性',
+ name: 'gender',
+ inputValue: 'male'
+ },
+ {
+ boxLabel: '女性',
+ name: 'gender',
+ inputValue: 'female'
+ }
+ ]
+ },
+ {
+ xtype: 'datefield',
+ name : 'entryDate',
+ fieldLabel: '入社年月日',
+ format: 'Y/m/d'
+ },
+ {
+ xtype: 'textfield',
+ name : 'postalNumber',
+ fieldLabel: '郵便番号'
+ },
+ {
+ xtype: 'textfield',
+ name : 'address',
+ fieldLabel: '住所'
+ }
+ ]
+ }
+ ];
- this.buttons = [
- {
- text: '保存',
- action: 'save'
- },
- {
- text: 'キャンセル',
- action: 'cancel',
- scope: this
- }
- ];
+ this.buttons = [
+ {
+ text: '保存',
+ action: 'save'
+ },
+ {
+ text: 'キャンセル',
+ action: 'cancel',
+ scope: this
+ }
+ ];
- this.callParent(arguments);
- }
+ this.callParent(arguments);
}
+ }
);
\ No newline at end of file
Ext.define(
- 'Decshee.member.view.List',
- {
- extend: 'Ext.grid.Panel',
- alias : 'widget.memberlist',
- title : '一覧',
- store : 'Decshee.member.store.Store',
+ 'Decshee.member.view.List',
+ {
+ extend: 'Ext.grid.Panel',
+ alias : 'widget.memberlist',
+ title : '一覧',
+ store : 'Decshee.member.store.Store',
- initComponent: function() {
- console.log('[START]Decshee.member.view.List.initComponent');
- this.dockedItems = [
- {
- xtype: 'toolbar',
- items: [
- {
- iconCls: 'icon-add',
- text: '追加',
- scope: this,
- itemId: 'addButton',
- action: 'add'
- },
- {
- iconCls: 'icon-delete',
- text: '削除',
- disabled: true,
- scope: this,
- itemId: 'deleteButton',
- action: 'delete'
- }
- ]
- }
- ];
-
- this.columns = [
- { header: '社員番号', dataIndex: 'memberId', flex: 1 },
- { header: '姓', dataIndex: 'familyName', flex: 1 },
- { header: '名', dataIndex: 'firstName', flex: 1 },
- { header: '生年月日', dataIndex: 'birthday', flex: 1 },
- {
- header: '性別',
- dataIndex: 'gender',
- flex: 1,
- renderer : function(value) {
- if (value == 'male') return '男性';
- if (value == 'female') return '女性';
- return '';
- }
- },
- { header: '入社年月日', dataIndex: 'entryDate', flex: 1 },
- { header: '郵便番号', dataIndex: 'postalNumber', flex: 1 },
- { header: '住所', dataIndex: 'address', flex: 1 }
- ];
- this.callParent(arguments);
- console.log('[ END ]Decshee.member.view.List.initComponent');
- }
+ initComponent: function() {
+ console.log('[START]Decshee.member.view.List.initComponent');
+ this.dockedItems = [
+ {
+ xtype: 'toolbar',
+ items: [
+ {
+ iconCls: 'icon-add',
+ text: '追加',
+ scope: this,
+ itemId: 'addButton',
+ action: 'add'
+ },
+ {
+ iconCls: 'icon-delete',
+ text: '削除',
+ disabled: true,
+ scope: this,
+ itemId: 'deleteButton',
+ action: 'delete'
+ }
+ ]
+ }
+ ];
+
+ this.columns = [
+ { header: '社員番号', dataIndex: 'memberId', flex: 1 },
+ { header: '姓', dataIndex: 'familyName', flex: 1 },
+ { header: '名', dataIndex: 'firstName', flex: 1 },
+ { header: '生年月日', dataIndex: 'birthday', flex: 1 },
+ {
+ header: '性別',
+ dataIndex: 'gender',
+ flex: 1,
+ renderer : function(value) {
+ if (value == 'male') return '男性';
+ if (value == 'female') return '女性';
+ return '';
+ }
+ },
+ { header: '入社年月日', dataIndex: 'entryDate', flex: 1 },
+ { header: '郵便番号', dataIndex: 'postalNumber', flex: 1 },
+ { header: '住所', dataIndex: 'address', flex: 1 }
+ ];
+ this.callParent(arguments);
+ console.log('[ END ]Decshee.member.view.List.initComponent');
}
+ }
);
Ext.application(
- {
- name: 'Decshee',
- appFolder: 'app',
- controllers: [
- 'Platform',
- 'Menu'
- ],
- launch: function() {
- Ext.create('Decshee.view.Viewport');
- }
+ {
+ name: 'Decshee',
+ appFolder: 'app',
+ controllers: [
+ 'Platform',
+ 'Menu'
+ ],
+ launch: function() {
+ Ext.create('Decshee.view.Viewport');
}
-)
\ No newline at end of file
+ }
+);
\ No newline at end of file
Ext.define(
- 'Decshee.controller.CoreController',
- {
- extend: 'Ext.app.Controller',
+ 'Decshee.controller.CoreController',
+ {
+ extend: 'Ext.app.Controller',
- init: function() {
- },
+ init: function() {
+ },
- onLaunch: function(app) {
- Decshee.Application = app;
- console.log('Decshee.Application: ' + Decshee.Application);
- Decshee.AddIns = {};
- Decshee.Viewport = Ext.getCmp('Decshee.Viewport');
- console.log('Decshee.Viewport: ' + Decshee.Viewport);
- }
+ onLaunch: function(app) {
+ Decshee.Application = app;
+ console.log('Decshee.Application: ' + Decshee.Application);
+ Decshee.AddIns = {};
+ Decshee.Viewport = Ext.getCmp('Decshee.Viewport');
+ console.log('Decshee.Viewport: ' + Decshee.Viewport);
}
+ }
);
\ No newline at end of file
Ext.define(
- 'Decshee.controller.Menu',
- {
- extend: 'Decshee.controller.CoreController',
+ 'Decshee.controller.Menu',
+ {
+ extend: 'Decshee.controller.CoreController',
- views: [
- 'menu.List',
- 'menu.Entry'
- ],
+ views: [
+ 'menu.List',
+ 'menu.Entry'
+ ],
- stores: [
- 'menu.List'
- ],
+ stores: [
+ 'menu.List'
+ ],
- models: [
- 'menu.Entry'
- ],
+ models: [
+ 'menu.Entry'
+ ],
- init: function() {
- console.log('[START] init');
- this.control(
- {
- 'menulist': {
- itemdblclick: this.showTab
- }
- }
- );
- console.log('[ END ] init');
- },
+ init: function() {
+ console.log('[START] init');
+ this.control(
+ {
+ 'menulist': {
+ itemdblclick: this.showTab
+ }
+ }
+ );
+ console.log('[ END ] init');
+ },
- showTab: function(grid, record) {
- console.log('Double clicked on ' + record.get('caption'));
- var caption = record.get('caption');
- var id = record.get('id');
- var tabId = id + '-tab';
+ showTab: function(grid, record) {
+ console.log('Double clicked on ' + record.get('caption'));
+ var caption = record.get('caption');
+ var id = record.get('id');
+ var tabId = id + '-tab';
- console.log('clicked the ShowMenu entry { text: ' + caption + ', id:' + id + '}');
- var viewport = grid.up('viewport');
- //var maintabs = viewport.child('#maintabs');
- var maintabs = Decshee.Viewport.child('#maintabs');
- var tab = maintabs.child('#' + tabId);
+ console.log('clicked the ShowMenu entry { text: ' + caption + ', id:' + id + '}');
+ var viewport = grid.up('viewport');
+ //var maintabs = viewport.child('#maintabs');
+ var maintabs = Decshee.Viewport.child('#maintabs');
+ var tab = maintabs.child('#' + tabId);
- // タブが生成されていない場合は生成する。
- if (tab == null) {
- // アドインをロードするための諸パラメータを生成
- var srcPath = 'addins/' + id;
- var packagePath = 'Decshee.' + id;
- var rootPath = packagePath + '.controller.AddInController';
- var rootPanelPath = packagePath + '.view.AddInPanel';
+ // タブが生成されていない場合は生成する。
+ if (tab == null) {
+ // アドインをロードするための諸パラメータを生成
+ var srcPath = 'addins/' + id;
+ var packagePath = 'Decshee.' + id;
+ var rootPath = packagePath + '.controller.AddInController';
+ var rootPanelPath = packagePath + '.view.AddInPanel';
- console.log(srcPath);
- console.log(packagePath);
- console.log(rootPath);
+ console.log(srcPath);
+ console.log(packagePath);
+ console.log(rootPath);
- var addin = Decshee.AddIns[id];
- if (addin == null) {
- console.log('AddIn [' + id + '] has not loaded.');
+ var addin = Decshee.AddIns[id];
+ if (addin == null) {
+ console.log('AddIn [' + id + '] has not loaded.');
- // アドインのパスをローダに設定し、かつクラスをロードする。
- Ext.Loader.setPath(packagePath, srcPath);
- Ext.require(packagePath + '.*');
+ // アドインのパスをローダに設定し、かつクラスをロードする。
+ Ext.Loader.setPath(packagePath, srcPath);
+ Ext.require(packagePath + '.*');
- // アドインのコントローラを取得して初期化。
- var rootController = Decshee.Application.getController(rootPath);
- rootController.init();
-
- Decshee.AddIns[id] = rootController;
- }
+ // アドインのコントローラを取得して初期化。
+ var rootController = Decshee.Application.getController(rootPath);
+ rootController.init();
- // タブを追加
- maintabs.add(
- {
- title: caption,
- itemId: tabId,
- iconCls: 'tabs',
- closable: true,
- layout: 'fit',
- items: [
- { xtype: id + 'addinpanel' }
- ]
- }
- )
- tab = maintabs.child('#' + tabId);
- }
+ Decshee.AddIns[id] = rootController;
+ }
- // タブをアクティブ化
- tab.show();
- }
+ // タブを追加
+ maintabs.add(
+ {
+ title: caption,
+ itemId: tabId,
+ iconCls: 'tabs',
+ closable: true,
+ layout: 'fit',
+ items: [
+ { xtype: id + 'addinpanel' }
+ ]
+ }
+ );
+ tab = maintabs.child('#' + tabId);
+ }
+
+ // タブをアクティブ化
+ tab.show();
}
+ }
);
\ No newline at end of file
Ext.define(
- 'Decshee.view.Viewport',
- {
- extend: 'Ext.container.Viewport',
- alias: 'widget.Decshee.viewport',
- id: 'Decshee.Viewport',
- layout: 'border',
- items:[
- {
- xtype: 'platformtop',
- region:'north',
- margins:'5 5 0 5',
- split:true
- },
- {
- xtype: 'platformnavi',
- region:'west',
- margins:'0 0 5 5',
- width: 200,
- split:true,
- collapsible: true
- },
- {
- xtype: 'platformmain',
- itemId: 'maintabs',
- region:'center',
- margins:'0 5 5 0'
- }
- ]
- // initComponent: function() {
- // var me = this;
- // Ext.apply(
- // me,
- // {
- // id: 'Decshee.Viewport',
- // layout: 'border',
- // items:[
- // {
- // xtype: 'platformtop',
- // region:'north',
- // margins:'5 5 0 5',
- // split:true
- // },
- // {
- // xtype: 'platformnavi',
- // region:'west',
- // margins:'0 0 5 5',
- // width: 200,
- // split:true,
- // collapsible: true
- // },
- // {
- // xtype: 'platformmain',
- // itemId: 'maintabs',
- // region:'center',
- // margins:'0 5 5 0'
- // }
- // ]
- // }
- // );
- // me.callParent(argument);
- // },
-
- // initEvents: function() {
- // var me = this;
- // me.callParent(argument);
- // }
- }
+ 'Decshee.view.Viewport',
+ {
+ extend: 'Ext.container.Viewport',
+ alias: 'widget.Decshee.viewport',
+ id: 'Decshee.Viewport',
+ layout: 'border',
+ items:[
+ {
+ xtype: 'platformtop',
+ region:'north',
+ margins:'5 5 0 5',
+ split:true
+ },
+ {
+ xtype: 'platformnavi',
+ region:'west',
+ margins:'0 0 5 5',
+ width: 200,
+ split:true,
+ collapsible: true
+ },
+ {
+ xtype: 'platformmain',
+ itemId: 'maintabs',
+ region:'center',
+ margins:'0 5 5 0'
+ }
+ ]
+ // initComponent: function() {
+ // var me = this;
+ // Ext.apply(
+ // me,
+ // {
+ // id: 'Decshee.Viewport',
+ // layout: 'border',
+ // items:[
+ // {
+ // xtype: 'platformtop',
+ // region:'north',
+ // margins:'5 5 0 5',
+ // split:true
+ // },
+ // {
+ // xtype: 'platformnavi',
+ // region:'west',
+ // margins:'0 0 5 5',
+ // width: 200,
+ // split:true,
+ // collapsible: true
+ // },
+ // {
+ // xtype: 'platformmain',
+ // itemId: 'maintabs',
+ // region:'center',
+ // margins:'0 5 5 0'
+ // }
+ // ]
+ // }
+ // );
+ // me.callParent(argument);
+ // },
+
+ // initEvents: function() {
+ // var me = this;
+ // me.callParent(argument);
+ // }
+ }
);
\ No newline at end of file
Ext.define(
- 'Decshee.view.platform.MainTabs',
- {
- extend: 'Ext.tab.Panel',
- alias : 'widget.platformmain',
- deferredRender: false,
+ 'Decshee.view.platform.MainTabs',
+ {
+ extend: 'Ext.tab.Panel',
+ alias : 'widget.platformmain',
+ deferredRender: false,
- initComponent: function() {
- var me = this;
- Ext.apply(
- me,
- {
- activeTab: 0,
- index: 0,
- items: [
- {
- itemId: 'home',
- title: 'ホーム',
- html: '<h1>ホームタブ</h1>'
- }
- ]
- }
- );
+ initComponent: function() {
+ var me = this;
+ Ext.apply(
+ me,
+ {
+ activeTab: 0,
+ index: 0,
+ items: [
+ {
+ itemId: 'home',
+ title: 'ホーム',
+ html: '<h1>ホームタブ</h1>'
+ }
+ ]
+ }
+ );
- this.callParent(arguments);
- }
+ this.callParent(arguments);
}
+ }
);
\ No newline at end of file
<html>
-<head>
+ <head>
<title>Decshee グループウェア</title>
- <link rel="stylesheet" type="text/css" href="ext-4.0/resources/css/ext-all.css">
+ <link rel="stylesheet" type="text/css" href="../ext-4.0/resources/css/ext-all.css">
- <script type="text/javascript" src="ext-4.0/ext-debug.js"></script>
- <!-- <script type="text/javascript" src="ext-4.0/bootstrap.js"></script> -->
+ <script type="text/javascript" src="../ext-4.0/ext-debug.js"></script>
+ <!-- <script type="text/javascript" src="../ext-4.0/bootstrap.js"></script> -->
<script type="text/javascript" src="app.js"></script>
-</head>
-<body>
-</body>
+ </head>
+ <body>
+ </body>
</html>