|
|
@ -1427,66 +1427,61 @@ class Pref_Prefs extends Handler_Protected {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function activateprofile() {
|
|
|
|
function activateprofile() {
|
|
|
|
$_SESSION["profile"] = (int) clean($_REQUEST["id"]);
|
|
|
|
$id = (int) $_REQUEST['id'] ?? 0;
|
|
|
|
|
|
|
|
|
|
|
|
// default value
|
|
|
|
$profile = ORM::for_table('ttrss_settings_profiles')
|
|
|
|
if (!$_SESSION["profile"]) $_SESSION["profile"] = null;
|
|
|
|
->where('owner_uid', $_SESSION['uid'])
|
|
|
|
|
|
|
|
->find_one($id);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ($profile) {
|
|
|
|
|
|
|
|
$_SESSION["profile"] = $id;
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
$_SESSION["profile"] = null;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function remprofiles() {
|
|
|
|
function remprofiles() {
|
|
|
|
$ids = explode(",", clean($_REQUEST["ids"]));
|
|
|
|
$ids = $_REQUEST["ids"] ?? [];
|
|
|
|
|
|
|
|
|
|
|
|
foreach ($ids as $id) {
|
|
|
|
ORM::for_table('ttrss_settings_profiles')
|
|
|
|
if ($_SESSION["profile"] != $id) {
|
|
|
|
->where('owner_uid', $_SESSION['uid'])
|
|
|
|
$sth = $this->pdo->prepare("DELETE FROM ttrss_settings_profiles WHERE id = ? AND
|
|
|
|
->where_in('id', $ids)
|
|
|
|
owner_uid = ?");
|
|
|
|
->where_not_equal('id', $_SESSION['profile'] ?? 0)
|
|
|
|
$sth->execute([$id, $_SESSION['uid']]);
|
|
|
|
->delete_many();
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function addprofile() {
|
|
|
|
function addprofile() {
|
|
|
|
$title = clean($_REQUEST["title"]);
|
|
|
|
$title = clean($_REQUEST["title"]);
|
|
|
|
|
|
|
|
|
|
|
|
if ($title) {
|
|
|
|
if ($title) {
|
|
|
|
$this->pdo->beginTransaction();
|
|
|
|
$profile = ORM::for_table('ttrss_settings_profiles')
|
|
|
|
|
|
|
|
->where('owner_uid', $_SESSION['uid'])
|
|
|
|
$sth = $this->pdo->prepare("SELECT id FROM ttrss_settings_profiles
|
|
|
|
->where('title', $title)
|
|
|
|
WHERE title = ? AND owner_uid = ?");
|
|
|
|
->find_one();
|
|
|
|
$sth->execute([$title, $_SESSION['uid']]);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!$sth->fetch()) {
|
|
|
|
if (!$profile) {
|
|
|
|
|
|
|
|
$profile = ORM::for_table('ttrss_settings_profiles')->create();
|
|
|
|
|
|
|
|
|
|
|
|
$sth = $this->pdo->prepare("INSERT INTO ttrss_settings_profiles (title, owner_uid)
|
|
|
|
$profile->title = $title;
|
|
|
|
VALUES (?, ?)");
|
|
|
|
$profile->owner_uid = $_SESSION['uid'];
|
|
|
|
|
|
|
|
$profile->save();
|
|
|
|
$sth->execute([$title, $_SESSION['uid']]);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$sth = $this->pdo->prepare("SELECT id FROM ttrss_settings_profiles WHERE
|
|
|
|
|
|
|
|
title = ? AND owner_uid = ?");
|
|
|
|
|
|
|
|
$sth->execute([$title, $_SESSION['uid']]);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$this->pdo->commit();
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function saveprofile() {
|
|
|
|
function saveprofile() {
|
|
|
|
$id = clean($_REQUEST["id"]);
|
|
|
|
$id = (int)$_REQUEST["id"];
|
|
|
|
$title = clean($_REQUEST["title"]);
|
|
|
|
$title = clean($_REQUEST["value"]);
|
|
|
|
|
|
|
|
|
|
|
|
if ($id == 0) {
|
|
|
|
if ($title && $id) {
|
|
|
|
print __("Default profile");
|
|
|
|
$profile = ORM::for_table('ttrss_settings_profiles')
|
|
|
|
return;
|
|
|
|
->where('owner_uid', $_SESSION['uid'])
|
|
|
|
}
|
|
|
|
->find_one($id);
|
|
|
|
|
|
|
|
|
|
|
|
if ($title) {
|
|
|
|
|
|
|
|
$sth = $this->pdo->prepare("UPDATE ttrss_settings_profiles
|
|
|
|
|
|
|
|
SET title = ? WHERE id = ? AND
|
|
|
|
|
|
|
|
owner_uid = ?");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$sth->execute([$title, $id, $_SESSION['uid']]);
|
|
|
|
if ($profile) {
|
|
|
|
print $title;
|
|
|
|
$profile->title = $title;
|
|
|
|
|
|
|
|
$profile->save();
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -1494,18 +1489,19 @@ class Pref_Prefs extends Handler_Protected {
|
|
|
|
function getProfiles() {
|
|
|
|
function getProfiles() {
|
|
|
|
$rv = [];
|
|
|
|
$rv = [];
|
|
|
|
|
|
|
|
|
|
|
|
$sth = $this->pdo->prepare("SELECT title,id FROM ttrss_settings_profiles
|
|
|
|
$profiles = ORM::for_table('ttrss_settings_profiles')
|
|
|
|
WHERE owner_uid = ? ORDER BY title");
|
|
|
|
->where('owner_uid', $_SESSION['uid'])
|
|
|
|
$sth->execute([$_SESSION['uid']]);
|
|
|
|
->order_by_expr('title')
|
|
|
|
|
|
|
|
->find_many();
|
|
|
|
|
|
|
|
|
|
|
|
array_push($rv, ["title" => __("Default profile"),
|
|
|
|
array_push($rv, ["title" => __("Default profile"),
|
|
|
|
"id" => 0,
|
|
|
|
"id" => 0,
|
|
|
|
"active" => empty($_SESSION["profile"])
|
|
|
|
"active" => empty($_SESSION["profile"])
|
|
|
|
]);
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
|
|
while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
|
|
|
|
foreach ($profiles as $profile) {
|
|
|
|
$row["active"] = isset($_SESSION["profile"]) && $_SESSION["profile"] == $row["id"];
|
|
|
|
$profile['active'] = ($_SESSION["profile"] ?? 0) == $profile->id;
|
|
|
|
array_push($rv, $row);
|
|
|
|
array_push($rv, $profile->as_array());
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
print json_encode($rv);
|
|
|
|
print json_encode($rv);
|
|
|
|