|
|
@ -2,7 +2,7 @@
|
|
|
|
class Pref_Prefs extends Handler_Protected {
|
|
|
|
class Pref_Prefs extends Handler_Protected {
|
|
|
|
|
|
|
|
|
|
|
|
function csrf_ignore($method) {
|
|
|
|
function csrf_ignore($method) {
|
|
|
|
$csrf_ignored = array("index", "updateself", "customizecss");
|
|
|
|
$csrf_ignored = array("index", "updateself", "customizecss", "editprefprofiles");
|
|
|
|
|
|
|
|
|
|
|
|
return array_search($method, $csrf_ignored) !== false;
|
|
|
|
return array_search($method, $csrf_ignored) !== false;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -898,5 +898,122 @@ class Pref_Prefs extends Handler_Protected {
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function editPrefProfiles() {
|
|
|
|
|
|
|
|
print "<div dojoType=\"dijit.Toolbar\">";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print "<div dojoType=\"dijit.form.DropDownButton\">".
|
|
|
|
|
|
|
|
"<span>" . __('Select')."</span>";
|
|
|
|
|
|
|
|
print "<div dojoType=\"dijit.Menu\" style=\"display: none;\">";
|
|
|
|
|
|
|
|
print "<div onclick=\"selectTableRows('prefFeedProfileList', 'all')\"
|
|
|
|
|
|
|
|
dojoType=\"dijit.MenuItem\">".__('All')."</div>";
|
|
|
|
|
|
|
|
print "<div onclick=\"selectTableRows('prefFeedProfileList', 'none')\"
|
|
|
|
|
|
|
|
dojoType=\"dijit.MenuItem\">".__('None')."</div>";
|
|
|
|
|
|
|
|
print "</div></div>";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print "<div style=\"float : right\">";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print "<input name=\"newprofile\" dojoType=\"dijit.form.ValidationTextBox\"
|
|
|
|
|
|
|
|
required=\"1\">
|
|
|
|
|
|
|
|
<button dojoType=\"dijit.form.Button\"
|
|
|
|
|
|
|
|
onclick=\"dijit.byId('profileEditDlg').addProfile()\">".
|
|
|
|
|
|
|
|
__('Create profile')."</button></div>";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print "</div>";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$result = db_query($this->link, "SELECT title,id FROM ttrss_settings_profiles
|
|
|
|
|
|
|
|
WHERE owner_uid = ".$_SESSION["uid"]." ORDER BY title");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print "<div class=\"prefProfileHolder\">";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print "<form id=\"profile_edit_form\" onsubmit=\"return false\">";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print "<table width=\"100%\" class=\"prefFeedProfileList\"
|
|
|
|
|
|
|
|
cellspacing=\"0\" id=\"prefFeedProfileList\">";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print "<tr class=\"placeholder\" id=\"FCATR-0\">"; #odd
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print "<td width='5%' align='center'><input
|
|
|
|
|
|
|
|
id='FCATC-0'
|
|
|
|
|
|
|
|
onclick='toggleSelectRow2(this);'
|
|
|
|
|
|
|
|
dojoType=\"dijit.form.CheckBox\"
|
|
|
|
|
|
|
|
type=\"checkbox\"></td>";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!$_SESSION["profile"]) {
|
|
|
|
|
|
|
|
$is_active = __("(active)");
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
$is_active = "";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print "<td><span>" .
|
|
|
|
|
|
|
|
__("Default profile") . " $is_active</span></td>";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print "</tr>";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$lnum = 1;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
while ($line = db_fetch_assoc($result)) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$class = ($lnum % 2) ? "even" : "odd";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$profile_id = $line["id"];
|
|
|
|
|
|
|
|
$this_row_id = "id=\"FCATR-$profile_id\"";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print "<tr class=\"placeholder\" $this_row_id>";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$edit_title = htmlspecialchars($line["title"]);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print "<td width='5%' align='center'><input
|
|
|
|
|
|
|
|
onclick='toggleSelectRow2(this);'
|
|
|
|
|
|
|
|
id='FCATC-$profile_id'
|
|
|
|
|
|
|
|
dojoType=\"dijit.form.CheckBox\"
|
|
|
|
|
|
|
|
type=\"checkbox\"></td>";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ($_SESSION["profile"] == $line["id"]) {
|
|
|
|
|
|
|
|
$is_active = __("(active)");
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
$is_active = "";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print "<td><span dojoType=\"dijit.InlineEditBox\"
|
|
|
|
|
|
|
|
width=\"300px\" autoSave=\"false\"
|
|
|
|
|
|
|
|
profile-id=\"$profile_id\">" . $edit_title .
|
|
|
|
|
|
|
|
"<script type=\"dojo/method\" event=\"onChange\" args=\"item\">
|
|
|
|
|
|
|
|
var elem = this;
|
|
|
|
|
|
|
|
dojo.xhrPost({
|
|
|
|
|
|
|
|
url: 'backend.php',
|
|
|
|
|
|
|
|
content: {op: 'rpc', method: 'saveprofile',
|
|
|
|
|
|
|
|
value: this.value,
|
|
|
|
|
|
|
|
id: this.srcNodeRef.getAttribute('profile-id')},
|
|
|
|
|
|
|
|
load: function(response) {
|
|
|
|
|
|
|
|
elem.attr('value', response);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
</span> $is_active</td>";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print "</tr>";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
++$lnum;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print "</table>";
|
|
|
|
|
|
|
|
print "</form>";
|
|
|
|
|
|
|
|
print "</div>";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print "<div class='dlgButtons'>
|
|
|
|
|
|
|
|
<div style='float : left'>
|
|
|
|
|
|
|
|
<button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('profileEditDlg').removeSelected()\">".
|
|
|
|
|
|
|
|
__('Remove selected profiles')."</button>
|
|
|
|
|
|
|
|
<button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('profileEditDlg').activateProfile()\">".
|
|
|
|
|
|
|
|
__('Activate profile')."</button>
|
|
|
|
|
|
|
|
</div>";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print "<button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('profileEditDlg').hide()\">".
|
|
|
|
|
|
|
|
__('Close this window')."</button>";
|
|
|
|
|
|
|
|
print "</div>";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
?>
|
|
|
|
?>
|
|
|
|