summaryrefslogtreecommitdiff
path: root/prefs.js
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2010-11-21 12:50:14 +0300
committerAndrew Dolgov <[email protected]>2010-11-21 12:50:41 +0300
commit22988692da8b856794f4b8070005fc05a6f00151 (patch)
tree7cf550477ab60b2730dac89de8501a21a6de9474 /prefs.js
parent90e4e726026d8c45160854e041e2d4d15a940420 (diff)
rework prefs profile dialog
Diffstat (limited to 'prefs.js')
-rw-r--r--prefs.js157
1 files changed, 89 insertions, 68 deletions
diff --git a/prefs.js b/prefs.js
index d82761609..6baa9a0d4 100644
--- a/prefs.js
+++ b/prefs.js
@@ -72,26 +72,6 @@ function notify_callback2(transport) {
notify_info(transport.responseText);
}
-function init_profile_inline_editor() {
- try {
-
- if ($("prefFeedCatList")) {
- var elems = $("prefFeedCatList").getElementsByTagName("SPAN");
-
- for (var i = 0; i < elems.length; i++) {
- if (elems[i].id && elems[i].id.match("FCATT-")) {
- var id = elems[i].id.replace("FCATT-", "");
- new Ajax.InPlaceEditor(elems[i],
- 'backend.php?op=rpc&subop=saveprofile&id=' + id);
- }
- }
- }
-
- } catch (e) {
- exception_error("init_profile_inline_editor", e);
- }
-}
-
function updateFeedList(sort_key) {
try {
@@ -145,51 +125,6 @@ function updateUsersList(sort_key) {
}
}
-function addPrefProfile() {
-
- var profile = $("fadd_profile");
-
- if (profile.value.length == 0) {
- alert(__("Can't add profile: no name specified."));
- } else {
- notify_progress("Adding profile...");
-
- var query = "?op=rpc&subop=addprofile&title=" +
- param_escape(profile.value);
-
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- editProfiles();
- } });
-
- }
-}
-
-
-function addFeedCat() {
-
- var cat = $("fadd_cat");
-
- if (cat.value.length == 0) {
- alert(__("Can't add category: no name specified."));
- } else {
- notify_progress("Adding feed category...");
-
- var query = "?op=pref-feeds&subop=editCats&action=add&cat=" +
- param_escape(cat.value);
-
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- infobox_callback2(transport);
- } });
-
- cat.value = "";
-
- }
-}
-
function addUser() {
try {
@@ -1488,9 +1423,95 @@ function inPreferences() {
}
function editProfiles() {
- displayDlg('editPrefProfiles', false, function() {
- init_profile_inline_editor();
- });
+ try {
+
+ if (dijit.byId("profileEditDlg"))
+ dijit.byId("profileEditDlg").destroyRecursive();
+
+ var query = "backend.php?op=dlg&id=editPrefProfiles";
+
+ dialog = new dijit.Dialog({
+ id: "profileEditDlg",
+ title: __("Settings Profiles"),
+ style: "width: 600px",
+ getSelectedProfiles: function() {
+ return getSelectedTableRowIds("prefFeedProfileList");
+ },
+ removeSelected: function() {
+ var sel_rows = this.getSelectedProfiles();
+
+ if (sel_rows.length > 0) {
+ var ok = confirm(__("Remove selected profiles? Active and default profiles will not be removed."));
+
+ if (ok) {
+ notify_progress("Removing selected profiles...", true);
+
+ var query = "?op=rpc&subop=remprofiles&ids="+
+ param_escape(sel_rows.toString());
+
+ new Ajax.Request("backend.php", {
+ parameters: query,
+ onComplete: function(transport) {
+ notify('');
+ editProfiles();
+ } });
+
+ }
+
+ } else {
+ alert(__("No profiles are selected."));
+ }
+ },
+ activateProfile: function() {
+ var sel_rows = this.getSelectedProfiles();
+
+ if (sel_rows.length == 1) {
+
+ var ok = confirm(__("Activate selected profile?"));
+
+ if (ok) {
+ notify_progress("Loading, please wait...");
+
+ var query = "?op=rpc&subop=setprofile&id="+
+ param_escape(sel_rows.toString());
+
+ new Ajax.Request("backend.php", {
+ parameters: query,
+ onComplete: function(transport) {
+ window.location.reload();
+ } });
+ }
+
+ } else {
+ alert(__("Please choose a profile to activate."));
+ }
+ },
+ addProfile: function() {
+ if (this.validate()) {
+ notify_progress("Creating profile...", true);
+
+ var query = "?op=rpc&subop=addprofile&title=" +
+ param_escape(dialog.attr('value').newprofile);
+
+ new Ajax.Request("backend.php", {
+ parameters: query,
+ onComplete: function(transport) {
+ notify('');
+ editProfiles();
+ } });
+
+ }
+ },
+ execute: function() {
+ if (this.validate()) {
+ }
+ },
+ href: query});
+
+ dialog.show();
+ } catch (e) {
+ exception_error("editProfiles", e);
+ }
}
function activatePrefProfile() {