// set to false to hide the 'no tags' field and the edit button
canEdit: true,
+ editOnly: false,
controller: {
xclass: 'Ext.app.ViewController',
onRender: function(v) {
let me = this;
let view = me.getView();
- view.toggleCls('hide-handles', PVE.Utils.shouldSortTags());
+ view.toggleCls('hide-handles', PVE.UIOptions.shouldSortTags());
view.dragzone = Ext.create('Ext.dd.DragZone', v.getEl(), {
getDragData: function(e) {
let cmp = Ext.getCmp(sourceId);
let ddel = document.createElement('div');
ddel.classList.add('proxmox-tags-full');
- ddel.innerHTML = Proxmox.Utils.getTagElement(cmp.tag, PVE.Utils.tagOverrides);
+ ddel.innerHTML = Proxmox.Utils.getTagElement(cmp.tag, PVE.UIOptions.tagOverrides);
let repairXY = Ext.fly(source).getXY();
cmp.setDisabled(true);
ddel.id = Ext.id();
// get a current tag list for editing
if (editMode) {
- PVE.Utils.updateUIOptions();
+ PVE.UIOptions.update();
}
me.forEachTag((tag) => {
let view = me.getView();
let vm = me.getViewModel();
let index = view.items.length - 5;
- if (PVE.Utils.shouldSortTags() && !isNew) {
+ if (PVE.UIOptions.shouldSortTags() && !isNew) {
index = view.items.findIndexBy(tagField => {
if (tagField.reference === 'noTagsField') {
return false;
me.tagsChanged();
},
keypress: function(key) {
+ if (vm.get('hideFinishButtons')) {
+ return;
+ }
if (key === 'Enter') {
me.editClick();
} else if (key === 'Escape') {
me.loadTags(view.tags);
}
me.getViewModel().set('canEdit', view.canEdit);
+ me.getViewModel().set('editOnly', view.editOnly);
me.mon(Ext.GlobalEvents, 'loadedUiOptions', () => {
- view.toggleCls('hide-handles', PVE.Utils.shouldSortTags());
- me.loadTags(me.oldTags, true); // refresh tag colors and order
+ let vm = me.getViewModel();
+ view.toggleCls('hide-handles', PVE.UIOptions.shouldSortTags());
+ me.loadTags(me.oldTags, !vm.get('editMode')); // refresh tag colors and order
});
+
+ if (view.editOnly) {
+ me.toggleEdit();
+ }
},
},
+ getTags: function() {
+ let me =this;
+ let controller = me.getController();
+ let tags = [];
+ controller.forEachTag((cmp) => {
+ if (cmp.tag.length) {
+ tags.push(cmp.tag);
+ }
+ });
+
+ return tags;
+ },
+
viewModel: {
data: {
tagCount: 0,
editMode: false,
canEdit: true,
isDirty: false,
+ editOnly: true,
},
formulas: {
hideEditBtn: function(get) {
return get('editMode') || !get('canEdit');
},
+ hideFinishButtons: function(get) {
+ return !get('editMode') || get('editOnly');
+ },
},
},
xtype: 'tbseparator',
ui: 'horizontal',
bind: {
- hidden: '{!editMode}',
+ hidden: '{hideFinishButtons}',
},
hidden: true,
},
iconCls: 'fa fa-times',
tooltip: gettext('Cancel Edit'),
bind: {
- hidden: '{!editMode}',
+ hidden: '{hideFinishButtons}',
},
hidden: true,
margin: '0 5 0 0',
iconCls: 'fa fa-check',
tooltip: gettext('Finish Edit'),
bind: {
- hidden: '{!editMode}',
+ hidden: '{hideFinishButtons}',
disabled: '{!isDirty}',
},
hidden: true,