Skip to content

Commit deaea76

Browse files
authored
Merge pull request #53 from mooore-digital/feature/add_editor_link
Feature/add editor link
2 parents 7057553 + 93ed8c4 commit deaea76

File tree

2 files changed

+60
-4
lines changed

2 files changed

+60
-4
lines changed

view/adminhtml/web/js/components/select-site.js

Lines changed: 51 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,20 @@
11
define([
2-
'Magento_Ui/js/form/element/ui-select'
3-
], function (Select) {
2+
'Magento_Ui/js/form/element/ui-select',
3+
'ko',
4+
'jquery'
5+
], function (Select, ko, $) {
46
'use strict';
7+
58
return Select.extend({
9+
editorLink: ko.observable(),
10+
11+
initialize: function () {
12+
this._super();
13+
14+
this.loadEditorLink();
15+
16+
return this;
17+
},
618
/**
719
* Parse data and set it to options.
820
*
@@ -29,6 +41,43 @@ define([
2941
value: data.customer.entity_id,
3042
label: data.customer.name
3143
};
44+
},
45+
46+
toggleOptionSelected: function (data) {
47+
var isSelected = this.isSelected(data.value);
48+
49+
if (this.lastSelectable && data.hasOwnProperty(this.separator)) {
50+
return this;
51+
}
52+
53+
if (!this.multiple) {
54+
if (!isSelected) {
55+
this.value(data.value);
56+
}
57+
this.listVisible(false);
58+
} else {
59+
if (!isSelected) { /*eslint no-lonely-if: 0*/
60+
this.value.push(data.value);
61+
} else {
62+
this.value(_.without(this.value(), data.value));
63+
}
64+
}
65+
66+
this.loadEditorLink();
67+
68+
return this;
69+
},
70+
71+
loadEditorLink: function() {
72+
const [site_id, page_id] = this.value().split("_");
73+
74+
const url = `${window.wordpressurl}wp-admin/post.php?post=${page_id}&action=edit&magento-referer=${window.location.href}`;
75+
76+
this.editorLink(url);
77+
},
78+
79+
openEditor: function() {
80+
window.open(this.editorLink(), 'WPCI Editor');
3281
}
3382
});
3483
});

view/adminhtml/web/template/ui/grid/filters/elements/ui-select.html

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,6 @@
147147
<ul class="admin__action-multiselect-menu-inner _root"
148148
data-bind="
149149
event: {
150-
mousemove: function(data, event){onMousemove($data, $index(), event)},
151150
scroll: function(data, event){onScrollDown(data, event)}
152151
}
153152
">
@@ -221,6 +220,14 @@
221220
click: function () {
222221
toggleOptionSelected({ value: '' })
223222
}
224-
">
223+
"
224+
style="width: auto;">
225225
<span data-bind="i18n: 'Detach Wordpress Page'">Detach Wordpress Page</span>
226226
</button>
227+
228+
<button class="admin__field-fallback-reset" type="button" data-bind="
229+
visible: hasData() && editorLink(),
230+
click: openEditor"
231+
style="width: auto;">
232+
<span data-bind="i18n: 'Edit Wordpress Page'">Edit Wordpress Page</span>
233+
</button>

0 commit comments

Comments
 (0)