summaryrefslogtreecommitdiff
path: root/js/PrefHelpers.js
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2021-03-08 16:54:11 +0300
committerAndrew Dolgov <[email protected]>2021-03-08 16:54:11 +0300
commit28dd255c30c7bdb528ec1fde2391705fbc9b4cf6 (patch)
tree01ec8d94c5205334563f33efcdeb1cf40751af2b /js/PrefHelpers.js
parentbfeaf4d6a43968e36de0f053aeff4efdb3f12eb4 (diff)
show user css editor before xhr is completed
Diffstat (limited to 'js/PrefHelpers.js')
-rw-r--r--js/PrefHelpers.js102
1 files changed, 56 insertions, 46 deletions
diff --git a/js/PrefHelpers.js b/js/PrefHelpers.js
index fdf282090..651e3f609 100644
--- a/js/PrefHelpers.js
+++ b/js/PrefHelpers.js
@@ -239,60 +239,70 @@ const Helpers = {
},
Prefs: {
customizeCSS: function() {
- xhr.json("backend.php", {op: "pref-prefs", method: "customizeCSS"}, (reply) => {
-
- const dialog = new fox.SingleUseDialog({
- title: __("Customize stylesheet"),
- apply: function() {
- xhr.post("backend.php", this.attr('value'), () => {
- Element.show("css_edit_apply_msg");
- App.byId("user_css_style").innerText = this.attr('value');
- });
- },
- execute: function () {
- Notify.progress('Saving data...', true);
+ const dialog = new fox.SingleUseDialog({
+ title: __("Customize stylesheet"),
+ apply: function() {
+ xhr.post("backend.php", this.attr('value'), () => {
+ Element.show("css_edit_apply_msg");
+ App.byId("user_css_style").innerText = this.attr('value');
+ });
+ },
+ execute: function () {
+ Notify.progress('Saving data...', true);
- xhr.post("backend.php", this.attr('value'), () => {
- window.location.reload();
- });
- },
- content: `
- <div class='alert alert-info'>
- ${__("You can override colors, fonts and layout of your currently selected theme with custom CSS declarations here.")}
- </div>
+ xhr.post("backend.php", this.attr('value'), () => {
+ window.location.reload();
+ });
+ },
+ content: `
+ <div class='alert alert-info'>
+ ${__("You can override colors, fonts and layout of your currently selected theme with custom CSS declarations here.")}
+ </div>
- ${App.FormFields.hidden_tag('op', 'rpc')}
- ${App.FormFields.hidden_tag('method', 'setpref')}
- ${App.FormFields.hidden_tag('key', 'USER_STYLESHEET')}
+ ${App.FormFields.hidden_tag('op', 'rpc')}
+ ${App.FormFields.hidden_tag('method', 'setpref')}
+ ${App.FormFields.hidden_tag('key', 'USER_STYLESHEET')}
- <div id='css_edit_apply_msg' style='display : none'>
- <div class='alert alert-warning'>
- ${__("User CSS has been applied, you might need to reload the page to see all changes.")}
- </div>
+ <div id='css_edit_apply_msg' style='display : none'>
+ <div class='alert alert-warning'>
+ ${__("User CSS has been applied, you might need to reload the page to see all changes.")}
</div>
+ </div>
- <textarea class='panel user-css-editor' dojoType='dijit.form.SimpleTextarea'
- style='font-size : 12px;' name='value'>${reply.value}</textarea>
-
- <footer>
- <button dojoType='dijit.form.Button' class='alt-success' onclick="App.dialogOf(this).apply()">
- ${App.FormFields.icon("check")}
- ${__('Apply')}
- </button>
- <button dojoType='dijit.form.Button' class='alt-primary' type='submit'>
- ${App.FormFields.icon("refresh")}
- ${__('Save and reload')}
- </button>
- <button dojoType='dijit.form.Button' onclick="App.dialogOf(this).hide()">
- ${__('Cancel')}
- </button>
- </footer>
- `
- });
+ <textarea class='panel user-css-editor' disabled='true' dojoType='dijit.form.SimpleTextarea'
+ style='font-size : 12px;' name='value'>${__("Loading, please wait...")}</textarea>
- dialog.show();
+ <footer>
+ <button dojoType='dijit.form.Button' class='alt-success' onclick="App.dialogOf(this).apply()">
+ ${App.FormFields.icon("check")}
+ ${__('Apply')}
+ </button>
+ <button dojoType='dijit.form.Button' class='alt-primary' type='submit'>
+ ${App.FormFields.icon("refresh")}
+ ${__('Save and reload')}
+ </button>
+ <button dojoType='dijit.form.Button' onclick="App.dialogOf(this).hide()">
+ ${__('Cancel')}
+ </button>
+ </footer>
+ `
+ });
+
+ const tmph = dojo.connect(dialog, 'onShow', function () {
+ dojo.disconnect(tmph);
+
+ xhr.json("backend.php", {op: "pref-prefs", method: "customizeCSS"}, (reply) => {
+
+ const editor = dijit.getEnclosingWidget(dialog.domNode.querySelector(".user-css-editor"));
+
+ editor.attr('value', reply.value);
+ editor.attr('disabled', false);
+ });
});
+
+ dialog.show();
+
},
confirmReset: function() {
if (confirm(__("Reset to defaults?"))) {