[dw-free] Revamp /update
[commit: http://hg.dwscoalition.org/dw-free/rev/1869b6232370]
http://bugs.dwscoalition.org/show_bug.cgi?id=2524
Make the security dropdown respect the form value (say you've been brought
back to the form for invalid input), even after we apply minsecurity.
Patch by
fu.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=2524
Make the security dropdown respect the form value (say you've been brought
back to the form for invalid input), even after we apply minsecurity.
Patch by
Files modified:
- htdocs/js/jquery.postform.js
--------------------------------------------------------------------------------
diff -r 8aa21b26f04b -r 1869b6232370 htdocs/js/jquery.postform.js
--- a/htdocs/js/jquery.postform.js Mon Dec 05 12:07:12 2011 +0800
+++ b/htdocs/js/jquery.postform.js Mon Dec 05 12:09:39 2011 +0800
@@ -292,8 +292,13 @@
if ( ! data ) return;
var $security = $("#security");
+ var oldval = $security.val();
+ var rank = { "public": "0", "access": "1", "private": "2", "custom": "3" };
+
$security.empty();
if ( data.ret ) {
+ if ( data.ret["minsecurity"] == "friends" ) data.ret["minsecurity"] = "access";
+
var opts;
if ( data.ret['is_comm'] ) {
opts = [
@@ -315,11 +320,11 @@
$security.append(opts.join("\n"))
// select the minsecurity value and disable the values with lesser security
- $security.val(data.ret['minsecurity']);
- if ( data.ret['minsecurity'] == 'friends' ) {
- $security.val("access").find("option[value='public']").attr("disabled", "disabled");
+ $security.val(rank[oldval] >= rank[data.ret['minsecurity']] ? oldval : data.ret['minsecurity']);
+ if ( data.ret['minsecurity'] == 'access' ) {
+ $security.find("option[value='public']").attr("disabled", "disabled");
} else if ( data.ret['minsecurity'] == 'private' ) {
- $security.val("private").find("option[value='public'],option[value='access'],option[value='custom']")
+ $security.find("option[value='public'],option[value='access'],option[value='custom']")
.attr("disabled", "disabled");
}
} else {
@@ -329,6 +334,7 @@
"<option value='access'>Access List</option>",
"<option value='private'>Private (Just You)</option>"
].join("\n"))
+ $security.val(oldval);
}
}
--------------------------------------------------------------------------------
