fastui 0.1.4 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/app/assets/javascripts/fastui/app/view/DataFieldFactory.js +1 -1
- data/app/assets/javascripts/fastui/app/view/GridColumnFactory.js +2 -2
- data/app/assets/javascripts/fastui/app/view/VCustomForm.js +9 -4
- data/app/assets/javascripts/fastui/app/view/VForm.js +1 -1
- data/app/assets/javascripts/fastui/app/view/VGrid.js +6 -0
- data/app/assets/javascripts/fastui/app/view/VMenu.js +3 -2
- data/app/assets/javascripts/fastui/app/view/VTab.js +12 -6
- data/app/assets/javascripts/fastui/app/view/VTreeGrid.js +5 -1
- data/app/assets/javascripts/fastui/app/view/Viewport.js +3 -2
- data/app/assets/javascripts/fastui/app/view/vfield/VBoolean.js +4 -2
- data/app/assets/javascripts/fastui/app/view/vfield/VDate.js +5 -3
- data/app/assets/javascripts/fastui/app/view/vfield/VFieldFactory.js +4 -4
- data/app/assets/javascripts/fastui/app/view/vfield/VHtml.js +3 -2
- data/app/assets/javascripts/fastui/app/view/vfield/VInteger.js +3 -2
- data/app/assets/javascripts/fastui/app/view/vfield/VList.js +4 -2
- data/app/assets/javascripts/fastui/app/view/vfield/VLookup.js +4 -2
- data/app/assets/javascripts/fastui/app/view/vfield/VNumber.js +3 -2
- data/app/assets/javascripts/fastui/app/view/vfield/VRadio.js +4 -2
- data/app/assets/javascripts/fastui/app/view/vfield/VString.js +3 -2
- data/app/assets/javascripts/fastui/app/view/vfield/VTable.js +4 -2
- data/app/assets/javascripts/fastui/app/view/vfield/VText.js +3 -2
- data/app/assets/javascripts/fastui/app/view/vfield/VTree.js +66 -5
- data/app/assets/javascripts/fastui/app/view/vfield/VTreeText.js +19 -0
- data/app/assets/javascripts/fastui/application.js +1 -1
- data/app/assets/javascripts/fastui/extjs4/locale/ext-lang-zh_CN.js +25 -3
- data/app/controllers/fastui/m_menu_items_controller.rb +1 -1
- data/lib/fastui/version.rb +1 -1
- data/lib/generators/fastui/templates/fastui_config.erb +69 -68
- metadata +3 -4
- data/app/assets/javascripts/fastui/app/view/vfield/VLongComboBox.js +0 -19
- data/app/assets/javascripts/fastui/app/view/vfield/VTreeCombobox.js +0 -78
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
N2I3ZWJjNDA0NTUwYWFhMjNmMzg4ZjMwNGM5YTA5YzVjMGVkM2E5NA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YWVkNTA3OWI4Yzk5ZTg2MTkwNTY0ZTcwN2E4NDUxOWQyYjMxYWQzZQ==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NTM1MmZkOTQwNzc1NDZkYWRjYmI2ZjI1ZTM0NDZlMWQyOWNhNjU4NTczYTcw
|
10
|
+
Njc4MmViY2YzOGJjZTU2MDA3MTZjMGY5YTcwYzMyYzk0NzhkMWI4ZThiZTY2
|
11
|
+
MWIzOTcwMGZjNDdkYTg5YzRhNmIyY2VlMjJjNmE1MzcxMzgzM2Q=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ODAxNzdhMGI5Zjg2Yjc1MTViOWJkMGIwNmVmZDQ0YzBhYTZlM2E2NmU4YmI3
|
14
|
+
ZDZjNTMxNmZjNjY1ZWMzNTQ2M2NkNDIwYmEzYzk1NTdlOGFlNmUyZTM4NmJi
|
15
|
+
ZjEyMTNlNDI2NTY2NDA2NmNjYTY0YTkzNTNhODAxOTczMzlhMTQ=
|
@@ -4,7 +4,7 @@ Ext.define('FastUI.view.GridColumnFactory', {
|
|
4
4
|
buildColumn: function(columns, column){
|
5
5
|
column.datatype = column.datatype || '';
|
6
6
|
switch (column.datatype) {
|
7
|
-
case '
|
7
|
+
case 'VTreeText':
|
8
8
|
columns.push({
|
9
9
|
text: column.title,
|
10
10
|
dataIndex: column.name,
|
@@ -13,7 +13,7 @@ Ext.define('FastUI.view.GridColumnFactory', {
|
|
13
13
|
});
|
14
14
|
break;
|
15
15
|
|
16
|
-
case '
|
16
|
+
case 'VTree':
|
17
17
|
var entity = column.name.replace('_id', '');
|
18
18
|
columns.push({
|
19
19
|
text: column.title,
|
@@ -1,5 +1,10 @@
|
|
1
1
|
Ext.define('FastUI.view.VCustomForm', {
|
2
2
|
extend:'Ext.Panel',
|
3
|
+
|
4
|
+
successText:'Success',
|
5
|
+
failureText:'Failed',
|
6
|
+
invalidText:'Invalid',
|
7
|
+
|
3
8
|
tab:{},
|
4
9
|
url: 'fastui',
|
5
10
|
method: 'POST',
|
@@ -31,7 +36,7 @@ Ext.define('FastUI.view.VCustomForm', {
|
|
31
36
|
this.setValues(data);
|
32
37
|
},
|
33
38
|
failure: function () {
|
34
|
-
Ext.MessageBox.alert(
|
39
|
+
Ext.MessageBox.alert(this.failureText, "操作失败!")
|
35
40
|
},
|
36
41
|
scope: this
|
37
42
|
});
|
@@ -47,11 +52,11 @@ Ext.define('FastUI.view.VCustomForm', {
|
|
47
52
|
method : this.method,
|
48
53
|
form : this.id,
|
49
54
|
success: function () {
|
50
|
-
this.tab.vgrid.
|
51
|
-
Ext.MessageBox.alert(
|
55
|
+
this.tab.vgrid.refresh();
|
56
|
+
Ext.MessageBox.alert(this.successText, "操作成功!")
|
52
57
|
},
|
53
58
|
failure: function () {
|
54
|
-
Ext.MessageBox.alert(
|
59
|
+
Ext.MessageBox.alert(this.failureText, "操作失败!")
|
55
60
|
},
|
56
61
|
scope: this
|
57
62
|
});
|
@@ -96,7 +96,7 @@ Ext.define('FastUI.view.VForm', {
|
|
96
96
|
if (form.isValid()) { // make sure the form contains valid data before submitting
|
97
97
|
form.submit({
|
98
98
|
success: function (form, action) {
|
99
|
-
this.tab.vgrid.
|
99
|
+
this.tab.vgrid.refresh();
|
100
100
|
Ext.Msg.alert(this.successText, action.result.msg);
|
101
101
|
},
|
102
102
|
failure: function (form, action) {
|
@@ -99,5 +99,11 @@ Ext.define('FastUI.view.VGrid', {
|
|
99
99
|
//columns.push(FastUI.view.vfield.VFieldFactory.buildField(column, this.tab.winCtx, this.tab.winId, this.tab.rest).column());
|
100
100
|
}, this);
|
101
101
|
return columns;
|
102
|
+
},
|
103
|
+
|
104
|
+
refresh:function(){
|
105
|
+
this.store.reload();
|
102
106
|
}
|
107
|
+
|
108
|
+
|
103
109
|
});
|
@@ -2,7 +2,7 @@ Ext.define('FastUI.view.VMenu', {
|
|
2
2
|
extend:'Ext.tree.Panel',
|
3
3
|
requires:['FastUI.store.MWindowMgr'],
|
4
4
|
alias: 'widget.vMenu',
|
5
|
-
title:'
|
5
|
+
title:'Menu',
|
6
6
|
animate:false,
|
7
7
|
collapseMode:"mini",
|
8
8
|
collapsible:true,
|
@@ -30,7 +30,8 @@ Ext.define('FastUI.view.VMenu', {
|
|
30
30
|
}
|
31
31
|
},
|
32
32
|
root:{
|
33
|
-
name:
|
33
|
+
name:this.title,
|
34
|
+
id:'',
|
34
35
|
expanded:true
|
35
36
|
}
|
36
37
|
});
|
@@ -7,6 +7,12 @@ Ext.define('FastUI.view.VTab', {
|
|
7
7
|
winCtx: {},
|
8
8
|
layout: "card",
|
9
9
|
border: false,
|
10
|
+
newText: 'New',
|
11
|
+
editText: 'Edit',
|
12
|
+
listText: 'List',
|
13
|
+
saveText: 'Save',
|
14
|
+
deleteText: 'Delete',
|
15
|
+
helpText: 'Help',
|
10
16
|
initComponent: function () {
|
11
17
|
this.id = 'tab-' + this.getValue('name');
|
12
18
|
this.grid_kind = this.getValue('grid_kind');
|
@@ -21,7 +27,7 @@ Ext.define('FastUI.view.VTab', {
|
|
21
27
|
items: [
|
22
28
|
{
|
23
29
|
id: this.id + 'new',
|
24
|
-
text:
|
30
|
+
text: this.newText,
|
25
31
|
iconCls: 'fastui-btn-new',
|
26
32
|
handler: function () {
|
27
33
|
// this.cmdCreate();
|
@@ -36,7 +42,7 @@ Ext.define('FastUI.view.VTab', {
|
|
36
42
|
},
|
37
43
|
{
|
38
44
|
id: this.id + 'edit',
|
39
|
-
text:
|
45
|
+
text: this.editText,
|
40
46
|
disabled: true,
|
41
47
|
iconCls: 'fastui-btn-edit',
|
42
48
|
handler: function () {
|
@@ -51,7 +57,7 @@ Ext.define('FastUI.view.VTab', {
|
|
51
57
|
},
|
52
58
|
{
|
53
59
|
id: this.id + 'list',
|
54
|
-
text:
|
60
|
+
text: this.listText,
|
55
61
|
iconCls: 'fastui-btn-list',
|
56
62
|
handler: function () {
|
57
63
|
this.cmdList();
|
@@ -63,7 +69,7 @@ Ext.define('FastUI.view.VTab', {
|
|
63
69
|
},
|
64
70
|
{
|
65
71
|
id: this.id + 'save',
|
66
|
-
text:
|
72
|
+
text: this.saveText,
|
67
73
|
disabled: true,
|
68
74
|
iconCls: 'fastui-btn-save',
|
69
75
|
handler: function () {
|
@@ -78,7 +84,7 @@ Ext.define('FastUI.view.VTab', {
|
|
78
84
|
},
|
79
85
|
{
|
80
86
|
id: this.id + 'del',
|
81
|
-
text:
|
87
|
+
text: this.deleteText,
|
82
88
|
disabled: true,
|
83
89
|
iconCls: 'fastui-btn-del',
|
84
90
|
handler: function () {
|
@@ -89,7 +95,7 @@ Ext.define('FastUI.view.VTab', {
|
|
89
95
|
},
|
90
96
|
{
|
91
97
|
id: this.id + 'help',
|
92
|
-
text:
|
98
|
+
text: this.helpText,
|
93
99
|
iconCls: 'fastui-btn-help',
|
94
100
|
handler: function () {
|
95
101
|
this.cmdHelp();
|
@@ -38,7 +38,7 @@ Ext.define('FastUI.view.VTreeGrid', {
|
|
38
38
|
|
39
39
|
getTreeGStore: function () {
|
40
40
|
return new Ext.data.TreeStore({
|
41
|
-
autoLoad: true,
|
41
|
+
//autoLoad: true,
|
42
42
|
//autoSync: true,
|
43
43
|
proxy:{
|
44
44
|
type: 'ajax',
|
@@ -74,6 +74,10 @@ Ext.define('FastUI.view.VTreeGrid', {
|
|
74
74
|
FastUI.view.GridColumnFactory.buildColumn(columns,column);
|
75
75
|
}, this);
|
76
76
|
return columns;
|
77
|
+
},
|
78
|
+
|
79
|
+
refresh: function(){
|
80
|
+
this.store.load();
|
77
81
|
}
|
78
82
|
});
|
79
83
|
|
@@ -2,6 +2,7 @@ Ext.define('FastUI.view.Viewport', {
|
|
2
2
|
extend:'Ext.container.Viewport',
|
3
3
|
id:'port',
|
4
4
|
layout:'border',
|
5
|
+
|
5
6
|
items:[
|
6
7
|
{
|
7
8
|
height:43,
|
@@ -18,7 +19,7 @@ Ext.define('FastUI.view.Viewport', {
|
|
18
19
|
split:true,
|
19
20
|
width:295,
|
20
21
|
defaults:{border:false},
|
21
|
-
items:[Ext.create('FastUI.view.VMenu'),{title:'
|
22
|
+
items:[Ext.create('FastUI.view.VMenu'),{title:'Help',iconCls:'fastui-btn-help'}],
|
22
23
|
xtype:"tabpanel"
|
23
24
|
},
|
24
25
|
{
|
@@ -36,7 +37,7 @@ Ext.define('FastUI.view.Viewport', {
|
|
36
37
|
//maskOnDisable: false,
|
37
38
|
|
38
39
|
items: [{
|
39
|
-
title: '
|
40
|
+
title: 'Home',
|
40
41
|
iconCls:'fastui-home',
|
41
42
|
border:false,
|
42
43
|
|
@@ -10,8 +10,10 @@ Ext.define('FastUI.view.vfield.VBoolean',{
|
|
10
10
|
initComponent:function(){
|
11
11
|
this.fieldLabel = this.getFValue('title');
|
12
12
|
this.name = this.rest.getTableName() + '[' + this.getFValue('name') + ']';
|
13
|
-
this.disabled = this.getFValue('readonly');
|
14
|
-
this.allowBlank = true;
|
13
|
+
this.disabled = this.getFValue('readonly') || false;
|
14
|
+
this.allowBlank = this.getFValue('required') || true;
|
15
|
+
this.width = this.getFValue('width') || 650;
|
16
|
+
this.vtype = this.getFValue('vtype');
|
15
17
|
this.callParent();
|
16
18
|
},
|
17
19
|
getFValue:function (key) {
|
@@ -8,9 +8,11 @@ Ext.define('FastUI.view.vfield.VDate',{
|
|
8
8
|
|
9
9
|
initComponent:function(){
|
10
10
|
this.fieldLabel = this.getFValue('title');
|
11
|
-
this.name = this.rest.getTableName() + '[' + this.getFValue('
|
12
|
-
this.disabled = this.getFValue('
|
13
|
-
this.allowBlank = true;
|
11
|
+
this.name = this.rest.getTableName() + '[' + this.getFValue('name') + ']';
|
12
|
+
this.disabled = this.getFValue('readonly') || false;
|
13
|
+
this.allowBlank = this.getFValue('required') || true;
|
14
|
+
this.width = this.getFValue('width') || 650;
|
15
|
+
this.vtype = this.getFValue('vtype');
|
14
16
|
this.callParent();
|
15
17
|
},
|
16
18
|
getFValue:function (key) {
|
@@ -28,8 +28,8 @@ Ext.define('FastUI.view.vfield.VFieldFactory', {
|
|
28
28
|
case 'VString':
|
29
29
|
return Ext.create('FastUI.view.vfield.VString', {valueObject: field, winCtx: winCtx, winId: winId, rest: rest});
|
30
30
|
|
31
|
-
case '
|
32
|
-
return Ext.create('FastUI.view.vfield.
|
31
|
+
case 'VTreeText':
|
32
|
+
return Ext.create('FastUI.view.vfield.VTreeText', {valueObject: field, winCtx: winCtx, winId: winId, rest: rest});
|
33
33
|
|
34
34
|
case 'VDate':
|
35
35
|
return Ext.create('FastUI.view.vfield.VDate', {valueObject: field, winCtx: winCtx, winId: winId, rest: rest});
|
@@ -79,8 +79,8 @@ Ext.define('FastUI.view.vfield.VFieldFactory', {
|
|
79
79
|
case 'VTable':
|
80
80
|
return Ext.create('FastUI.view.vfield.VTable', {valueObject: field, winCtx: winCtx, winId: winId, rest: rest});
|
81
81
|
|
82
|
-
case '
|
83
|
-
return Ext.create('FastUI.view.vfield.
|
82
|
+
case 'VTree':
|
83
|
+
return Ext.create('FastUI.view.vfield.VTree', {valueObject: field, winCtx: winCtx, winId: winId, rest: rest});
|
84
84
|
|
85
85
|
case 'VGroup':
|
86
86
|
var box = Ext.create('Ext.form.FieldSet',{
|
@@ -10,8 +10,9 @@ Ext.define('FastUI.view.vfield.VHtml',{
|
|
10
10
|
initComponent:function(){
|
11
11
|
this.fieldLabel = this.getFValue('title');
|
12
12
|
this.name = this.rest.getTableName() + '[' + this.getFValue('name') + ']';
|
13
|
-
this.disabled = this.getFValue('readonly');
|
14
|
-
this.allowBlank = true;
|
13
|
+
this.disabled = this.getFValue('readonly') || false;
|
14
|
+
this.allowBlank = this.getFValue('required') || true;
|
15
|
+
this.width = this.getFValue('width') || 650;
|
15
16
|
this.vtype = this.getFValue('vtype');
|
16
17
|
this.callParent();
|
17
18
|
},
|
@@ -9,8 +9,9 @@ Ext.define('FastUI.view.vfield.VInteger',{
|
|
9
9
|
initComponent:function(){
|
10
10
|
this.fieldLabel = this.getFValue('title');
|
11
11
|
this.name = this.rest.getTableName() + '[' + this.getFValue('name') + ']';
|
12
|
-
this.disabled = this.getFValue('readonly');
|
13
|
-
this.allowBlank = true;
|
12
|
+
this.disabled = this.getFValue('readonly') || false;
|
13
|
+
this.allowBlank = this.getFValue('required') || true;
|
14
|
+
this.width = this.getFValue('width') || 650;
|
14
15
|
this.vtype = this.getFValue('vtype');
|
15
16
|
this.callParent();
|
16
17
|
},
|
@@ -16,8 +16,10 @@ Ext.define('FastUI.view.vfield.VList', {
|
|
16
16
|
initComponent:function () {
|
17
17
|
this.fieldLabel = this.getFValue('title');
|
18
18
|
this.name = this.rest.getTableName() + '[' + this.getFValue('name') + ']';
|
19
|
-
this.disabled = this.getFValue('readonly');
|
20
|
-
this.allowBlank = true;
|
19
|
+
this.disabled = this.getFValue('readonly') || false;
|
20
|
+
this.allowBlank = this.getFValue('required') || true;
|
21
|
+
this.width = this.getFValue('width') || 650;
|
22
|
+
this.vtype = this.getFValue('vtype');
|
21
23
|
this.store = FastUI.store.MListMgr.getStore(this.getFValue('name'));
|
22
24
|
this.callParent();
|
23
25
|
},
|
@@ -13,8 +13,10 @@ Ext.define('FastUI.view.vfield.VLookup', {
|
|
13
13
|
initComponent:function () {
|
14
14
|
this.fieldLabel = this.getFValue('title');
|
15
15
|
this.name = this.rest.getTableName() + '[' + this.getFValue('name') + ']';
|
16
|
-
this.disabled = this.getFValue('readonly');
|
17
|
-
this.allowBlank = true;
|
16
|
+
this.disabled = this.getFValue('readonly') || false;
|
17
|
+
this.allowBlank = this.getFValue('required') || true;
|
18
|
+
this.width = this.getFValue('width') || 650;
|
19
|
+
this.vtype = this.getFValue('vtype');
|
18
20
|
this.store = Ext.create('Ext.data.ArrayStore', {
|
19
21
|
fields:['id', 'title'],
|
20
22
|
data:[]
|
@@ -8,8 +8,9 @@ Ext.define('FastUI.view.vfield.VNumber',{
|
|
8
8
|
initComponent:function(){
|
9
9
|
this.fieldLabel = this.getFValue('title');
|
10
10
|
this.name = this.rest.getTableName() + '[' + this.getFValue('name') + ']';
|
11
|
-
this.disabled = this.getFValue('readonly');
|
12
|
-
this.allowBlank = true;
|
11
|
+
this.disabled = this.getFValue('readonly') || false;
|
12
|
+
this.allowBlank = this.getFValue('required') || true;
|
13
|
+
this.width = this.getFValue('width') || 650;
|
13
14
|
this.vtype = this.getFValue('vtype');
|
14
15
|
this.callParent();
|
15
16
|
},
|
@@ -8,8 +8,10 @@ Ext.define('FastUI.view.vfield.VRadio',{
|
|
8
8
|
|
9
9
|
initComponent:function(){
|
10
10
|
this.fieldLabel = this.getFValue('title');
|
11
|
-
this.disabled = this.getFValue('readonly');
|
12
|
-
this.allowBlank = true;
|
11
|
+
this.disabled = this.getFValue('readonly') || false;
|
12
|
+
this.allowBlank = this.getFValue('required') || true;
|
13
|
+
this.width = this.getFValue('width') || 650;
|
14
|
+
this.vtype = this.getFValue('vtype');
|
13
15
|
this.items = this.getFFields();
|
14
16
|
this.callParent();
|
15
17
|
},
|
@@ -7,8 +7,9 @@ Ext.define('FastUI.view.vfield.VString',{
|
|
7
7
|
initComponent:function(){
|
8
8
|
this.fieldLabel = this.getFValue('title');
|
9
9
|
this.name = this.rest.getTableName() + '[' + this.getFValue('name') + ']';
|
10
|
-
this.disabled = this.getFValue('readonly');
|
11
|
-
this.allowBlank = true;
|
10
|
+
this.disabled = this.getFValue('readonly') || false;
|
11
|
+
this.allowBlank = this.getFValue('required') || true;
|
12
|
+
this.width = this.getFValue('width') || 650;
|
12
13
|
this.vtype = this.getFValue('vtype');
|
13
14
|
this.callParent();
|
14
15
|
},
|
@@ -16,8 +16,10 @@ Ext.define('FastUI.view.vfield.VTable', {
|
|
16
16
|
initComponent:function () {
|
17
17
|
this.fieldLabel = this.getFValue('title');
|
18
18
|
this.name = this.rest.getTableName() + '[' + this.getFValue('name') + ']';
|
19
|
-
this.disabled = this.getFValue('readonly');
|
20
|
-
this.allowBlank = true;
|
19
|
+
this.disabled = this.getFValue('readonly') || false;
|
20
|
+
this.allowBlank = this.getFValue('required') || true;
|
21
|
+
this.width = this.getFValue('width') || 650;
|
22
|
+
this.vtype = this.getFValue('vtype');
|
21
23
|
this.store = this.getStore();
|
22
24
|
this.callParent();
|
23
25
|
},
|
@@ -9,8 +9,9 @@ Ext.define('FastUI.view.vfield.VText',{
|
|
9
9
|
initComponent:function(){
|
10
10
|
this.fieldLabel = this.getFValue('title');
|
11
11
|
this.name = this.rest.getTableName() + '[' + this.getFValue('name') + ']';
|
12
|
-
this.disabled = this.getFValue('readonly');
|
13
|
-
this.allowBlank = true;
|
12
|
+
this.disabled = this.getFValue('readonly') || false;
|
13
|
+
this.allowBlank = this.getFValue('required') || true;
|
14
|
+
this.width = this.getFValue('width') || 650;
|
14
15
|
this.vtype = this.getFValue('vtype');
|
15
16
|
this.callParent();
|
16
17
|
},
|
@@ -1,17 +1,78 @@
|
|
1
|
-
Ext.define('FastUI.view.vfield.VTree',{
|
2
|
-
extend:
|
1
|
+
Ext.define('FastUI.view.vfield.VTree', {
|
2
|
+
extend:'Ext.form.field.ComboBox',
|
3
|
+
alias:'widget.vtreetable',
|
3
4
|
valueObject: {},
|
4
5
|
winCtx:{},
|
5
6
|
winId:0,
|
6
7
|
rest:{},
|
7
|
-
|
8
|
+
|
9
|
+
editable: false,
|
10
|
+
displayField:'title',
|
11
|
+
valueField:'id',
|
12
|
+
initComponent:function () {
|
8
13
|
this.fieldLabel = this.getFValue('title');
|
9
14
|
this.name = this.rest.getTableName() + '[' + this.getFValue('name') + ']';
|
10
|
-
this.disabled = this.getFValue('readonly');
|
11
|
-
this.allowBlank = true;
|
15
|
+
this.disabled = this.getFValue('readonly') || false;
|
16
|
+
this.allowBlank = this.getFValue('required') || true;
|
17
|
+
this.width = this.getFValue('width') || 650;
|
18
|
+
this.vtype = this.getFValue('vtype');
|
19
|
+
this.store = Ext.create('Ext.data.ArrayStore', {
|
20
|
+
fields:['id', 'title'],
|
21
|
+
data:[]
|
22
|
+
});
|
12
23
|
this.callParent();
|
13
24
|
},
|
25
|
+
createPicker: function() {
|
26
|
+
var rest = Ext.create('FastUI.view.Rest', this.getMEntity());
|
27
|
+
return Ext.create('Ext.tree.Panel', {
|
28
|
+
hidden: true,
|
29
|
+
floating: true,
|
30
|
+
minHeight: 300,
|
31
|
+
autoScroll: true,
|
32
|
+
store: Ext.create('Ext.data.TreeStore', {
|
33
|
+
fields:['id', {name:'text', mapping:'title'}],
|
34
|
+
autoLoad: true,
|
35
|
+
proxy:{
|
36
|
+
type: 'ajax',
|
37
|
+
url: rest.indexPath(),
|
38
|
+
reader:{
|
39
|
+
type:'json',
|
40
|
+
root:'',
|
41
|
+
record:''
|
42
|
+
//successProperty:''
|
43
|
+
}
|
44
|
+
},
|
45
|
+
root: {
|
46
|
+
text:'Root',
|
47
|
+
id:'',
|
48
|
+
expanded: true
|
49
|
+
}
|
50
|
+
}),
|
51
|
+
listeners: {
|
52
|
+
itemclick: function (view, record) {
|
53
|
+
var id = record.get('id');
|
54
|
+
if (!this.store.getById(id)){
|
55
|
+
this.store.add({id:id,title:record.get('text')});
|
56
|
+
}
|
57
|
+
this.setValue(id);
|
58
|
+
this.collapse();
|
59
|
+
},
|
60
|
+
scope:this
|
61
|
+
}
|
62
|
+
});
|
63
|
+
},
|
64
|
+
getMEntity:function(){
|
65
|
+
return this.valueObject.ref.entity;
|
66
|
+
},
|
14
67
|
getFValue:function (key) {
|
15
68
|
return this.valueObject[key];
|
69
|
+
},
|
70
|
+
setValue:function(value){
|
71
|
+
if(value && value.id && value.title){
|
72
|
+
this.store.add(value);
|
73
|
+
this.setValue(value.id);
|
74
|
+
}else{
|
75
|
+
this.callParent(arguments);
|
76
|
+
}
|
16
77
|
}
|
17
78
|
});
|
@@ -0,0 +1,19 @@
|
|
1
|
+
Ext.define('FastUI.view.vfield.VTreeText',{
|
2
|
+
extend: 'Ext.form.field.Text',
|
3
|
+
valueObject: {},
|
4
|
+
winCtx:{},
|
5
|
+
winId:0,
|
6
|
+
rest:{},
|
7
|
+
initComponent:function(){
|
8
|
+
this.fieldLabel = this.getFValue('title');
|
9
|
+
this.name = this.rest.getTableName() + '[' + this.getFValue('name') + ']';
|
10
|
+
this.disabled = this.getFValue('readonly') || false;
|
11
|
+
this.allowBlank = this.getFValue('required') || true;
|
12
|
+
this.width = this.getFValue('width') || 650;
|
13
|
+
this.vtype = this.getFValue('vtype');
|
14
|
+
this.callParent();
|
15
|
+
},
|
16
|
+
getFValue:function (key) {
|
17
|
+
return this.valueObject[key];
|
18
|
+
}
|
19
|
+
});
|
@@ -277,8 +277,30 @@ Ext.define("Ext.locale.zh_CN.VForm", {
|
|
277
277
|
invalidText:'无效'
|
278
278
|
});
|
279
279
|
|
280
|
-
|
281
|
-
|
282
|
-
|
280
|
+
Ext.define("Ext.locale.zh_CN.VCustomForm", {
|
281
|
+
override: "FastUI.view.VCustomForm",
|
282
|
+
successText:'成功',
|
283
|
+
failureText:'失败',
|
284
|
+
invalidText:'无效'
|
285
|
+
});
|
286
|
+
|
287
|
+
Ext.define("Ext.locale.zh_CN.VMenu", {
|
288
|
+
override: "FastUI.view.VMenu",
|
289
|
+
title:'菜单'
|
290
|
+
});
|
291
|
+
|
292
|
+
Ext.define("Ext.locale.zh_CN.VTab", {
|
293
|
+
override: "FastUI.view.VTab",
|
294
|
+
newText: '新建',
|
295
|
+
editText: '编缉',
|
296
|
+
listText: '列表',
|
297
|
+
saveText: '保存',
|
298
|
+
deleteText: '删除',
|
299
|
+
helpText: '帮助'
|
283
300
|
});
|
284
301
|
|
302
|
+
// This is needed until we can refactor all of the locales into individual files
|
303
|
+
//Ext.define("Ext.locale.zh_CN.Component", {
|
304
|
+
// override: "Ext.Component"
|
305
|
+
//});
|
306
|
+
|
@@ -6,7 +6,7 @@ module Fastui
|
|
6
6
|
respond_to :html, :xml, :json
|
7
7
|
|
8
8
|
def index
|
9
|
-
@m_menu_items = params[:node] == '
|
9
|
+
@m_menu_items = params[:node] == '' ? MMenuItem.roots : MMenuItem.where({
|
10
10
|
:parent_id => params[:node]
|
11
11
|
}.delete_if { |k, v| v.blank? })
|
12
12
|
|
data/lib/fastui/version.rb
CHANGED
@@ -1,77 +1,78 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
Fastui::View.instance.config do |conf|
|
3
|
+
conf.project = 'Fastui Rapid Development Framework'
|
4
|
+
conf.version = "version #{Fastui::VERSION} built on ExtJS 4.2.0"
|
5
|
+
conf.copyright = 'Copyright 2007-2013 ChunTeng Co., Ltd.'
|
3
6
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
+
default = [
|
8
|
+
{name: 'entity_kind', title: 'Entity Kind', datatype: 'VRadio'},
|
9
|
+
{name: 'seq', title: 'Order by', datatype: 'VInteger'},
|
10
|
+
{name: 'is_active', title: 'Actived', datatype: 'VBoolean'},
|
11
|
+
{name: 'note', title: 'Memo', datatype: 'VText'},
|
12
|
+
{name: 'help', title: 'Help', datatype: 'VHtml', display: 'form'},
|
13
|
+
{name: 'createdbyorg_id', title: 'Created By Org', datatype: 'VTable', ref: {entity: 'Fastui::MOrg'}, display: 'grid'},
|
14
|
+
{name: 'createdby_id', title: 'Creator', datatype: 'VLookup', ref: {entity: 'Fastui::MPerson'}, display: 'grid'},
|
15
|
+
{name: 'updatedby_id', title: 'Visitor', datatype: 'VLookup', ref: {entity: 'Fastui::MPerson'}, display: 'grid'}
|
16
|
+
]
|
7
17
|
|
8
|
-
|
9
|
-
|
10
|
-
{name: '
|
11
|
-
{name: '
|
12
|
-
{name: '
|
13
|
-
{name: '
|
14
|
-
|
15
|
-
|
16
|
-
{name: '
|
17
|
-
|
18
|
+
conf.win :m_menu, title: 'Menu', window_kind: 'maintain' do |w|
|
19
|
+
w.tab :m_menu, title: 'Menu', entity: 'Fastui::MMenu', readonly: true, members: [
|
20
|
+
{name: 'id', title: 'ID', datatype: 'VInter', readonly: true},
|
21
|
+
{name: 'title', title: 'Title', datatype: 'VString'},
|
22
|
+
{name: 'print_text', title: 'Print Text', datatype: 'VString'},
|
23
|
+
{name: 'name', title: 'Code', datatype: 'VString'}
|
24
|
+
] + default
|
25
|
+
w.tab :m_menu_item, title: 'Menu Item', entity: 'Fastui::MMenuItem', included_tab: 'm_menu', grid_kind: 'VTreeGrid', members: [
|
26
|
+
{name: 'id', title: 'ID', datatype: 'VInter', readonly: true},
|
27
|
+
{name: 'title', title: 'Title', datatype: 'VTreeText'},
|
28
|
+
{name: 'print_text', title: 'Print Text', datatype: 'VString'},
|
29
|
+
{name: 'name', title: 'Code', datatype: 'VString'},
|
30
|
+
{name: 'm_menu_id', title: 'Menu', datatype: 'VLookup', ref: {entity: 'Fastui::MMenu'}, default_logic: "{id:${m_menu_id},title:'${m_menu_title}'}"},
|
31
|
+
{name: 'window', title: 'Window', datatype: 'VString'},
|
32
|
+
{name: 'parent_id', title: 'Parent', datatype: 'VTree', ref: {entity: 'Fastui::MMenuItem'}}
|
33
|
+
] + default
|
34
|
+
end
|
18
35
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
{name: 'title', title: '标题', datatype: 'VText'},
|
29
|
-
{name: 'print_text', title: '打印文本', datatype: 'VText'},
|
30
|
-
{name: 'name', title: '标识', datatype: 'VText'},
|
31
|
-
{name: 'm_menu_id', title: '对应菜单', datatype: 'VLookup', ref: {entity: 'Fastui::MMenu'}, default_logic: "{id:${m_menu_id},title:'${m_menu_title}'}"},
|
32
|
-
{name: 'window', title: '对应窗口', datatype: 'VText'}
|
33
|
-
] + default
|
34
|
-
end
|
36
|
+
conf.win :m_org, title: 'Org', window_kind: 'maintain' do |w|
|
37
|
+
w.tab :m_org, title: 'Org', entity: 'Fastui::MOrg', grid_kind: 'VTreeGrid', members: [
|
38
|
+
{name: 'id', title: 'ID', datatype: 'VInteger', readonly: true, },
|
39
|
+
{name: 'title', title: 'Name', datatype: 'VTreeText'},
|
40
|
+
{name: 'print_text', title: 'Print Text', datatype: 'VString'},
|
41
|
+
{name: 'name', title: 'Code', datatype: 'VString'},
|
42
|
+
{name: 'parent_id', title: 'Parent', datatype: 'VTree', ref: {entity: 'Fastui::MOrg'}, default_logic: "{id:${m_org_id},title:'${m_org_title}'}"}
|
43
|
+
] + default
|
44
|
+
end
|
35
45
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
46
|
+
conf.win :m_person, title: 'Person', window_kind: 'maintain' do |w|
|
47
|
+
w.tab :m_person, title: 'Person', entity: 'Fastui::MPerson', members: [
|
48
|
+
{name: 'id', title: 'ID', datatype: 'VInteger', readonly: true},
|
49
|
+
{name: 'title', title: 'Name', datatype: 'VString'},
|
50
|
+
{name: 'print_text', title: 'Print Text', datatype: 'VString', vtype: 'url'},
|
51
|
+
{name: 'name', title: 'Code', datatype: 'VString'},
|
52
|
+
{name: 'access_level', title: 'Access Level', datatype: 'VList'}
|
53
|
+
] + default
|
54
|
+
w.tab :m_role, title: 'Role', entity: 'Fastui::MRole', included_tab: 'm_person', members: [
|
55
|
+
{name: 'id', title: 'ID', datatype: 'VInteger', readonly: true},
|
56
|
+
{name: 'title', title: 'Name', datatype: 'VString'},
|
57
|
+
{name: 'print_text', title: 'Print Text', datatype: 'VString'},
|
58
|
+
{name: 'name', title: 'Code', datatype: 'VString'}
|
59
|
+
] + default
|
60
|
+
end
|
45
61
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
conf.win :m_list, title: '数据字典', window_kind: 'maintain' do |w|
|
63
|
-
w.tab :m_list, title: '枚举', entity: 'Fastui::MList', members: [
|
64
|
-
{name: 'id', title: 'ID', datatype: 'VNumber', readonly: true},
|
65
|
-
{name: 'title', title: '标题', datatype: 'VText'},
|
66
|
-
{name: 'print_text', title: '打印文本', datatype: 'VText'},
|
67
|
-
{name: 'name', title: '标识', datatype: 'VText'}
|
68
|
-
] + default
|
69
|
-
w.tab :m_list_item, title: '枚举项', entity: 'Fastui::MListItem', included_tab: 'm_list', members: [
|
70
|
-
{name: 'id', title: 'ID', datatype: 'VNumber', readonly: true},
|
71
|
-
{name: 'title', title: '标题', datatype: 'VText'},
|
72
|
-
{name: 'print_text', title: '打印文本', datatype: 'VText'},
|
73
|
-
{name: 'name', title: '标识', datatype: 'VText'}
|
74
|
-
] + default
|
75
|
-
end
|
62
|
+
conf.win :m_list, title: 'Enumerate', window_kind: 'maintain' do |w|
|
63
|
+
w.tab :m_list, title: 'Enumerate', entity: 'Fastui::MList', members: [
|
64
|
+
{name: 'id', title: 'ID', datatype: 'VInteger', readonly: true},
|
65
|
+
{name: 'title', title: 'Name', datatype: 'VString'},
|
66
|
+
{name: 'print_text', title: 'Print Text', datatype: 'VString'},
|
67
|
+
{name: 'name', title: 'Code', datatype: 'VString'}
|
68
|
+
] + default
|
69
|
+
w.tab :m_list_item, title: 'Enumerate Item', entity: 'Fastui::MListItem', included_tab: 'm_list', members: [
|
70
|
+
{name: 'id', title: 'ID', datatype: 'VInteger', readonly: true},
|
71
|
+
{name: 'title', title: 'Name', datatype: 'VString'},
|
72
|
+
{name: 'print_text', title: 'Print Text', datatype: 'VString'},
|
73
|
+
{name: 'name', title: 'Code', datatype: 'VString'},
|
74
|
+
{name: 'm_list_id', title: 'Enumerate', datatype: 'VLookup', ref: {entity: 'Fastui::MList'}}
|
75
|
+
] + default
|
76
|
+
end
|
76
77
|
|
77
78
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastui
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sgzhe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-05-
|
11
|
+
date: 2013-05-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -168,7 +168,6 @@ files:
|
|
168
168
|
- app/assets/javascripts/fastui/app/view/vfield/VHtml.js
|
169
169
|
- app/assets/javascripts/fastui/app/view/vfield/VInteger.js
|
170
170
|
- app/assets/javascripts/fastui/app/view/vfield/VList.js
|
171
|
-
- app/assets/javascripts/fastui/app/view/vfield/VLongComboBox.js
|
172
171
|
- app/assets/javascripts/fastui/app/view/vfield/VLookup.js
|
173
172
|
- app/assets/javascripts/fastui/app/view/vfield/VMultipleChoice.js
|
174
173
|
- app/assets/javascripts/fastui/app/view/vfield/VNumber.js
|
@@ -179,7 +178,7 @@ files:
|
|
179
178
|
- app/assets/javascripts/fastui/app/view/vfield/VTable.js
|
180
179
|
- app/assets/javascripts/fastui/app/view/vfield/VText.js
|
181
180
|
- app/assets/javascripts/fastui/app/view/vfield/VTree.js
|
182
|
-
- app/assets/javascripts/fastui/app/view/vfield/
|
181
|
+
- app/assets/javascripts/fastui/app/view/vfield/VTreeText.js
|
183
182
|
- app/assets/javascripts/fastui/app/view/vfield/VType.js
|
184
183
|
- app/assets/javascripts/fastui/app/view/vfield/VYesOrNo.js
|
185
184
|
- app/assets/javascripts/fastui/app/view/VForm.js
|
@@ -1,19 +0,0 @@
|
|
1
|
-
Ext.define('FastUI.view.vfield.VLongCombobox',{
|
2
|
-
extend: 'Ext.form.field.ComboBox',
|
3
|
-
|
4
|
-
valueObject: {},
|
5
|
-
winCtx:{},
|
6
|
-
winId:0,
|
7
|
-
rest:{},
|
8
|
-
|
9
|
-
initComponent:function(){
|
10
|
-
this.fieldLabel = this.getFValue('title');
|
11
|
-
this.name = this.rest.getTableName() + '[' + this.getFValue('m_property').name + ']';
|
12
|
-
this.disabled = this.getFValue('is_readonly');
|
13
|
-
this.allowBlank = true;
|
14
|
-
this.callParent();
|
15
|
-
},
|
16
|
-
getFValue:function (key) {
|
17
|
-
return this.valueObject[key];
|
18
|
-
}
|
19
|
-
});
|
@@ -1,78 +0,0 @@
|
|
1
|
-
Ext.define('FastUI.view.vfield.VTreeCombobox', {
|
2
|
-
extend:'Ext.form.field.ComboBox',
|
3
|
-
alias:'widget.vtreecombobox',
|
4
|
-
valueObject: {},
|
5
|
-
winCtx:{},
|
6
|
-
winId:0,
|
7
|
-
rest:{},
|
8
|
-
|
9
|
-
editable: false,
|
10
|
-
// queryMode: 'local',
|
11
|
-
// select: Ext.emptyFn,
|
12
|
-
displayField:'title',
|
13
|
-
valueField:'id',
|
14
|
-
initComponent:function () {
|
15
|
-
this.fieldLabel = this.getFValue('title');
|
16
|
-
this.name = this.rest.getTableName() + '[' + this.getFValue('name') + ']';
|
17
|
-
this.disabled = this.getFValue('readonly');
|
18
|
-
this.allowBlank = true;
|
19
|
-
this.store = Ext.create('Ext.data.ArrayStore', {
|
20
|
-
fields:['id', 'title'],
|
21
|
-
data:[]
|
22
|
-
});
|
23
|
-
this.callParent();
|
24
|
-
},
|
25
|
-
createPicker: function() {
|
26
|
-
var rest = Ext.create('FastUI.view.Rest', this.getMEntity());
|
27
|
-
return Ext.create('Ext.tree.Panel', {
|
28
|
-
hidden: true,
|
29
|
-
floating: true,
|
30
|
-
minHeight: 300,
|
31
|
-
autoScroll: true,
|
32
|
-
store: Ext.create('Ext.data.TreeStore', {
|
33
|
-
fields:['id', {name:'text', mapping:'title'}],
|
34
|
-
autoLoad: true,
|
35
|
-
proxy:{
|
36
|
-
type: 'ajax',
|
37
|
-
url: rest.indexPath(),
|
38
|
-
reader:{
|
39
|
-
type:'json',
|
40
|
-
root:'',
|
41
|
-
record:''
|
42
|
-
//successProperty:''
|
43
|
-
}
|
44
|
-
},
|
45
|
-
root: {
|
46
|
-
text:'Root',
|
47
|
-
id:'',
|
48
|
-
expanded: true
|
49
|
-
}
|
50
|
-
}),
|
51
|
-
listeners: {
|
52
|
-
itemclick: function (view, record) {
|
53
|
-
var id = record.get('id');
|
54
|
-
if (!this.store.getById(id)){
|
55
|
-
this.store.add({id:id,title:record.get('text')});
|
56
|
-
}
|
57
|
-
this.setValue(id);
|
58
|
-
this.collapse();
|
59
|
-
},
|
60
|
-
scope:this
|
61
|
-
}
|
62
|
-
});
|
63
|
-
},
|
64
|
-
getMEntity:function(){
|
65
|
-
return this.valueObject.ref.entity;
|
66
|
-
},
|
67
|
-
getFValue:function (key) {
|
68
|
-
return this.valueObject[key];
|
69
|
-
},
|
70
|
-
setValue:function(value){
|
71
|
-
if(value && value.id && value.title){
|
72
|
-
this.store.add(value);
|
73
|
-
this.setValue(value.id);
|
74
|
-
}else{
|
75
|
-
this.callParent(arguments);
|
76
|
-
}
|
77
|
-
}
|
78
|
-
});
|