]>
git.proxmox.com Git - pmg-gui.git/blob - js/ObjectGroup.js
1 Ext
.define('PMG.ObjectGroup', {
2 extend
: 'Ext.grid.GridPanel',
3 alias
: 'widget.pmgObjectGroup',
10 showDirection
: false, // only important for SMTP Whitelist
14 emptyText
: gettext('Please select an object.'),
16 setBaseUrl: function(baseurl
) {
21 if (me
.baseurl
=== undefined) {
22 me
.store
.setProxy(undefined);
24 me
.down('#addMenuButton').setDisabled(true);
28 url
: '/api2/json' + me
.baseurl
+ '/objects'
31 me
.store
.load(function() {
32 me
.down('#addMenuButton').setDisabled(false);
37 setObjectInfo: function(ogdata
) {
42 if (me
.ogdata
=== undefined) {
44 me
.down('#oginfo').update(me
.emptyText
);
48 var html
= '<b>' + Ext
.String
.htmlEncode(me
.ogdata
.name
) + '</b>';
50 html
+= Ext
.String
.htmlEncode(Ext
.String
.trim(me
.ogdata
.info
));
52 me
.down('#oginfo').update(html
);
53 me
.down('#ogdata').setHidden(false);
57 initComponent : function() {
60 me
.store
= new Ext
.data
.Store({
61 model
: 'pmg-object-list',
64 property
: 'receivertest'
74 header
: gettext('Type'),
76 renderer
: PMG
.Utils
.format_otype
,
80 if (me
.showDirection
) {
82 header
: gettext('Direction'),
83 dataIndex
: 'receivertest',
84 renderer: function(value
) {
85 return value
? PMG
.Utils
.receiverText
: PMG
.Utils
.senderText
;
91 header
: gettext('Value'),
93 renderer
: Ext
.String
.htmlEncode
,
97 var reload = function() {
101 me
.selModel
= Ext
.create('Ext.selection.RowModel', {});
103 var remove_btn
= Ext
.createWidget('proxmoxStdRemoveButton', {
104 selModel
: me
.selModel
,
105 getUrl: function(rec
) {
106 return me
.baseurl
+ '/objects/' + rec
.data
.id
;
109 getRecordName: function(rec
) {
110 return PMG
.Utils
.format_otype(rec
.data
.otype
) +
111 ': ' + rec
.data
.descr
;
116 var full_subject = function(subject
, receivertest
) {
117 if (me
.showDirection
) {
118 var direction
= receivertest
?
119 PMG
.Utils
.receiverText
: PMG
.Utils
.senderText
;
121 return subject
+ ' (' + direction
+ ')';
127 var run_editor = function() {
128 var rec
= me
.selModel
.getSelection()[0];
133 var editor
= PMG
.Utils
.object_editors
[rec
.data
.otype
];
138 var config
= Ext
.apply({ method
: 'PUT' }, editor
);
139 config
.subject
= full_subject(editor
.subject
, rec
.data
.receivertest
);
140 config
.url
= me
.baseurl
+ '/' + editor
.subdir
+ '/' + rec
.data
.id
;
142 var win
= Ext
.createWidget(config
);
145 win
.on('destroy', reload
);
151 Ext
.Array
.each(me
.otype_list
, function(otype
) {
153 var editor
= PMG
.Utils
.object_editors
[otype
];
155 var config
= Ext
.apply({ method
: 'POST' }, editor
);
156 config
.subject
= full_subject(editor
.subject
, editor
.receivertest
);
159 text
: config
.subject
,
160 handler: function() {
161 if (me
.baseurl
== undefined) {
164 config
.url
= me
.baseurl
+ '/' + editor
.subdir
;
165 var win
= Ext
.create(config
);
166 win
.on('destroy', reload
);
174 me
.dockedItems
.push({
179 text
: gettext('Add'),
181 itemId
: 'addMenuButton',
187 xtype
: 'proxmoxButton',
188 text
: gettext('Edit'),
190 selModel
: me
.selModel
,
197 me
.dockedItems
.push({
201 hidden
: me
.hideGroupInfo
? true : false,
208 style
: { 'white-space': 'pre' },
214 if (me
.ogdata
=== undefined) { return; }
215 me
.fireEvent('dblclickOGInfo', me
, e
, t
, me
.ogdata
);
227 itemdblclick
: run_editor
,
235 me
.setBaseUrl(me
.baseurl
); // configure store, load()