various dialog-related fixes; stop referring to many dialogs by name; move filter test initial dialog to client side

This commit is contained in:
Andrew Dolgov 2021-02-12 10:35:13 +03:00
parent 72e38bfe1f
commit bf6d0f2817
8 changed files with 51 additions and 82 deletions

View File

@ -730,9 +730,10 @@ class Feeds extends Handler_Protected {
print "<footer>"; print "<footer>";
print "<button dojoType='dijit.form.Button' class='alt-primary' type='submit' print "<button dojoType='dijit.form.Button' class='alt-primary' type='submit'
onclick=\"App.dialogOf(this).execute()\">".__('Subscribe')."</button>"; onclick='App.dialogOf(this).execute()'>".__('Subscribe')."</button>";
print "<button dojoType='dijit.form.Button' onclick=\"App.dialogOf(this).hide()\">".__('Cancel')."</button>"; print "<button dojoType='dijit.form.Button' onclick='App.dialogOf(this).hide()'>".
__('Cancel')."</button>";
print "</footer>"; print "</footer>";
print "</form>"; print "</form>";

View File

@ -975,7 +975,7 @@ class Pref_Feeds extends Handler_Protected {
<button dojoType='dijit.form.Button' type='submit' class='alt-primary' type='submit'>". <button dojoType='dijit.form.Button' type='submit' class='alt-primary' type='submit'>".
__('Save')."</button> __('Save')."</button>
<button dojoType='dijit.form.Button' <button dojoType='dijit.form.Button'
onclick=\"App.dialogOf(this).hide()\">". onclick='App.dialogOf(this).hide()'>".
__('Cancel')."</button> __('Cancel')."</button>
</footer>"; </footer>";
@ -1509,9 +1509,9 @@ class Pref_Feeds extends Handler_Protected {
print "</div>"; print "</div>";
print "<footer> print "<footer>
<button style='float : left' class=\"alt-danger\" dojoType='dijit.form.Button' onclick=\"dijit.byId('inactiveFeedsDlg').removeSelected()\">" <button style='float : left' class='alt-danger' dojoType='dijit.form.Button' onclick='App.dialogOf(this).removeSelected()'>"
.__('Unsubscribe from selected feeds')."</button> .__('Unsubscribe from selected feeds')."</button>
<button dojoType='dijit.form.Button' onclick=\"dijit.byId('inactiveFeedsDlg').hide()\">" <button dojoType='dijit.form.Button' class='alt-primary' type='submit'>"
.__('Close this window')."</button> .__('Close this window')."</button>
</footer>"; </footer>";
@ -1568,10 +1568,9 @@ class Pref_Feeds extends Handler_Protected {
print "</div>"; print "</div>";
print "<footer>"; print "<footer>";
print "<button style='float : left' class=\"alt-danger\" dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('errorFeedsDlg').removeSelected()\">" print "<button style='float : left' class='alt-danger' dojoType='dijit.form.Button' onclick='App.dialogOf(this).removeSelected()'>"
.__('Unsubscribe from selected feeds')."</button> "; .__('Unsubscribe from selected feeds')."</button> ";
print "<button dojoType='dijit.form.Button' class='alt-primary' type='submit'>".
print "<button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('errorFeedsDlg').hide()\">".
__('Close this window')."</button>"; __('Close this window')."</button>";
print "</footer>"; print "</footer>";
@ -1665,9 +1664,9 @@ class Pref_Feeds extends Handler_Protected {
print "</fieldset>"; print "</fieldset>";
print "<footer> print "<footer>
<button dojoType='dijit.form.Button' onclick=\"return dijit.byId('batchSubDlg').execute()\" type='submit' class='alt-primary'>". <button dojoType='dijit.form.Button' onclick='App.dialogOf(this).execute()' type='submit' class='alt-primary'>".
__('Subscribe')."</button> __('Subscribe')."</button>
<button dojoType='dijit.form.Button' onclick=\"return dijit.byId('batchSubDlg').hide()\">".__('Cancel')."</button> <button dojoType='dijit.form.Button' onclick='App.dialogOf(this).hide()'>".__('Cancel')."</button>
</footer>"; </footer>";
print "</form>"; print "</form>";

View File

@ -3,7 +3,7 @@ class Pref_Filters extends Handler_Protected {
function csrf_ignore($method) { function csrf_ignore($method) {
$csrf_ignored = array("index", "getfiltertree", "edit", "newfilter", "newrule", $csrf_ignored = array("index", "getfiltertree", "edit", "newfilter", "newrule",
"newaction", "savefilterorder", "testfilterdlg"); "newaction", "savefilterorder");
return array_search($method, $csrf_ignored) !== false; return array_search($method, $csrf_ignored) !== false;
} }
@ -163,21 +163,6 @@ class Pref_Filters extends Handler_Protected {
print json_encode($rv); print json_encode($rv);
} }
function testFilterDlg() {
?>
<div>
<img id='prefFilterLoadingIndicator' src='images/indicator_tiny.gif'>&nbsp;
<span id='prefFilterProgressMsg'>Looking for articles...</span>
</div>
<ul class='panel panel-scrollable list list-unstyled' id='prefFilterTestResultList'></ul>
<footer class='text-center'>
<button dojoType='dijit.form.Button' onclick="dijit.byId('filterTestDlg').hide()"><?php echo __('Close this window') ?></button>
</footer>
<?php
}
private function getfilterrules_list($filter_id) { private function getfilterrules_list($filter_id) {
$sth = $this->pdo->prepare("SELECT reg_exp, $sth = $this->pdo->prepare("SELECT reg_exp,
inverse, inverse,

View File

@ -69,9 +69,9 @@ class Pref_Labels extends Handler_Protected {
print "</section>"; print "</section>";
print "<footer>"; print "<footer>";
print "<button dojoType='dijit.form.Button' type='submit' class='alt-primary' onclick=\"dijit.byId('labelEditDlg').execute()\">". print "<button dojoType='dijit.form.Button' type='submit' class='alt-primary' onclick='App.dialogOf(this).execute()'>".
__('Save')."</button>"; __('Save')."</button>";
print "<button dojoType='dijit.form.Button' onclick=\"dijit.byId('labelEditDlg').hide()\">". print "<button dojoType='dijit.form.Button' onclick='App.dialogOf(this).hide()'>".
__('Cancel')."</button>"; __('Cancel')."</button>";
print "</footer>"; print "</footer>";

View File

@ -1169,29 +1169,6 @@ class Pref_Prefs extends Handler_Protected {
$value = str_replace("<br/>", "\n", $value); $value = str_replace("<br/>", "\n", $value);
print json_encode(["value" => $value]); print json_encode(["value" => $value]);
/*print_notice(__("You can override colors, fonts and layout of your currently selected theme with custom CSS declarations here."));
print_hidden("op", "rpc");
print_hidden("method", "setpref");
print_hidden("key", "USER_STYLESHEET");
print "<div id='css_edit_apply_msg' style='display : none'>";
print_warning(__("User CSS has been applied, you might need to reload the page to see all changes."));
print "</div>";
print "<textarea class='panel user-css-editor' dojoType='dijit.form.SimpleTextarea'
style='font-size : 12px;' name='value'>$value</textarea>";
print "<footer>";
print "<button dojoType='dijit.form.Button' class='alt-success'
onclick=\"dijit.byId('cssEditDlg').apply()\">".__('Apply')."</button> ";
print "<button dojoType='dijit.form.Button' class='alt-primary'
onclick=\"dijit.byId('cssEditDlg').execute()\">".__('Save and reload')."</button> ";
print "<button dojoType='dijit.form.Button'
onclick=\"dijit.byId('cssEditDlg').hide()\">".__('Cancel')."</button>";
print "</footer>";*/
} }
function editPrefProfiles() { function editPrefProfiles() {
@ -1220,9 +1197,9 @@ class Pref_Prefs extends Handler_Protected {
WHERE owner_uid = ? ORDER BY title"); WHERE owner_uid = ? ORDER BY title");
$sth->execute([$_SESSION['uid']]); $sth->execute([$_SESSION['uid']]);
print "<div class='panel panel-scrollable'>"; print "<form onsubmit='return false'>";
print "<form id='profile_edit_form' onsubmit='return false'>"; print "<div class='panel panel-scrollable'>";
print "<table width='100%' id='pref-profiles-list'>"; print "<table width='100%' id='pref-profiles-list'>";
@ -1277,18 +1254,19 @@ class Pref_Prefs extends Handler_Protected {
} }
print "</table>"; print "</table>";
print "</form>";
print "</div>"; print "</div>";
print "<footer> print "<footer>
<button style='float : left' class='alt-danger' dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('profileEditDlg').removeSelected()\">". <button style='float : left' class='alt-danger' dojoType='dijit.form.Button' onclick='App.dialogOf(this).removeSelected()'>".
__('Remove selected profiles')."</button> __('Remove selected profiles')."</button>
<button dojoType='dijit.form.Button' class='alt-primary' type='submit' onclick=\"dijit.byId('profileEditDlg').activateProfile()\">". <button dojoType='dijit.form.Button' class='alt-primary' type='submit' onclick='App.dialogOf(this).execute()'>".
__('Activate profile')."</button> __('Activate profile')."</button>
<button dojoType='dijit.form.Button' onclick=\"dijit.byId('profileEditDlg').hide()\">". <button dojoType='dijit.form.Button' onclick='App.dialogOf(this).hide()'>".
__('Cancel')."</button>"; __('Cancel')."</button>";
print "</footer>"; print "</footer>";
print "</form>";
} }
private function getShortDesc($pref_name) { private function getShortDesc($pref_name) {

View File

@ -110,9 +110,9 @@ class Pref_Users extends Handler_Protected {
print '</div>'; print '</div>';
print "<footer> print "<footer>
<button dojoType='dijit.form.Button' class='alt-primary' type='submit' onclick=\"dijit.byId('userEditDlg').execute()\">". <button dojoType='dijit.form.Button' class='alt-primary' type='submit' onclick='App.dialogOf(this).execute()'>".
__('Save')."</button> __('Save')."</button>
<button dojoType='dijit.form.Button' onclick=\"dijit.byId('userEditDlg').hide()\">". <button dojoType='dijit.form.Button' onclick='App.dialogOf(this).hide()'>".
__('Cancel')."</button> __('Cancel')."</button>
</footer>"; </footer>";

View File

@ -248,10 +248,21 @@ const Filters = {
}); });
}, },
href: "backend.php?op=pref-filters&method=testFilterDlg" content: `
<div>
<img id='prefFilterLoadingIndicator' src='images/indicator_tiny.gif'>&nbsp;
<span id='prefFilterProgressMsg'>Looking for articles...</span>
</div>
<ul class='panel panel-scrollable list list-unstyled' id='prefFilterTestResultList'></ul>
<footer class='text-center'>
<button dojoType='dijit.form.Button' onclick="dijit.byId('filterTestDlg').hide()"><?php echo __('Close this window') ?></button>
</footer>
`
}); });
dojo.connect(test_dlg, "onLoad", null, function (/* e */) { dojo.connect(test_dlg, "onShow", null, function (/* e */) {
test_dlg.getTestResults(params, 0); test_dlg.getTestResults(params, 0);
}); });

View File

@ -118,22 +118,6 @@ const Helpers = {
alert(__("No profiles selected.")); alert(__("No profiles selected."));
} }
}, },
activateProfile: function () {
const sel_rows = this.getSelectedProfiles();
if (sel_rows.length == 1) {
if (confirm(__("Activate selected profile?"))) {
Notify.progress("Loading, please wait...");
xhrPost("backend.php", {op: "rpc", method: "setprofile", id: sel_rows.toString()}, () => {
window.location.reload();
});
}
} else {
alert(__("Please choose a profile to activate."));
}
},
addProfile: function () { addProfile: function () {
if (this.validate()) { if (this.validate()) {
Notify.progress("Creating profile...", true); Notify.progress("Creating profile...", true);
@ -148,8 +132,19 @@ const Helpers = {
} }
}, },
execute: function () { execute: function () {
if (this.validate()) { const sel_rows = this.getSelectedProfiles();
//
if (sel_rows.length == 1) {
if (confirm(__("Activate selected profile?"))) {
Notify.progress("Loading, please wait...");
xhrPost("backend.php", {op: "rpc", method: "setprofile", id: sel_rows.toString()}, () => {
window.location.reload();
});
}
} else {
alert(__("Please choose a profile to activate."));
} }
}, },
href: query href: query