experimentally rebase labels; make base index configurable
This commit is contained in:
parent
260501fddd
commit
f822a8e56c
|
@ -700,7 +700,7 @@ class Feeds extends Handler_Protected {
|
||||||
$message = __("No starred articles found to display.");
|
$message = __("No starred articles found to display.");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if ($feed < -10) {
|
if ($feed < LABEL_BASE_INDEX) {
|
||||||
$message = __("No articles found to display. You can assign articles to labels manually (see the Actions menu above) or use a filter.");
|
$message = __("No articles found to display. You can assign articles to labels manually (see the Actions menu above) or use a filter.");
|
||||||
} else {
|
} else {
|
||||||
$message = __("No articles found to display.");
|
$message = __("No articles found to display.");
|
||||||
|
@ -777,8 +777,8 @@ class Feeds extends Handler_Protected {
|
||||||
|
|
||||||
$result = false;
|
$result = false;
|
||||||
|
|
||||||
if ($feed < -10) {
|
if ($feed < LABEL_BASE_INDEX) {
|
||||||
$label_feed = -11-$feed;
|
$label_feed = feed_to_label_id($feed);
|
||||||
$result = db_query($this->link, "SELECT id FROM ttrss_labels2 WHERE
|
$result = db_query($this->link, "SELECT id FROM ttrss_labels2 WHERE
|
||||||
id = '$label_feed' AND owner_uid = " . $_SESSION['uid']);
|
id = '$label_feed' AND owner_uid = " . $_SESSION['uid']);
|
||||||
} else if (!$cat_view && is_numeric($feed) && $feed > 0) {
|
} else if (!$cat_view && is_numeric($feed) && $feed > 0) {
|
||||||
|
|
|
@ -134,7 +134,7 @@ class Pref_Feeds extends Handler_Protected {
|
||||||
|
|
||||||
while ($line = db_fetch_assoc($result)) {
|
while ($line = db_fetch_assoc($result)) {
|
||||||
|
|
||||||
$label_id = -$line['id'] - 11;
|
$label_id = label_to_feed_id($line['id']);
|
||||||
|
|
||||||
$feed = $this->feedlist_init_feed($label_id, false, 0);
|
$feed = $this->feedlist_init_feed($label_id, false, 0);
|
||||||
|
|
||||||
|
@ -1700,8 +1700,8 @@ class Pref_Feeds extends Handler_Protected {
|
||||||
ccache_remove($link, $id, $owner_uid);
|
ccache_remove($link, $id, $owner_uid);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
label_remove($link, -11-$id, $owner_uid);
|
label_remove($link, feed_to_label_id($id), $owner_uid);
|
||||||
ccache_remove($link, -11-$id, $owner_uid);
|
//ccache_remove($link, $id, $owner_uid); don't think labels are cached
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,8 @@
|
||||||
define('EXPECTED_CONFIG_VERSION', 26);
|
define('EXPECTED_CONFIG_VERSION', 26);
|
||||||
define('SCHEMA_VERSION', 108);
|
define('SCHEMA_VERSION', 108);
|
||||||
|
|
||||||
|
define('LABEL_BASE_INDEX', -1024);
|
||||||
|
|
||||||
$fetch_last_error = false;
|
$fetch_last_error = false;
|
||||||
$pluginhost = false;
|
$pluginhost = false;
|
||||||
|
|
||||||
|
@ -1034,7 +1036,7 @@
|
||||||
AND $ref_check_qpart AND unread = true
|
AND $ref_check_qpart AND unread = true
|
||||||
AND owner_uid = $owner_uid");
|
AND owner_uid = $owner_uid");
|
||||||
|
|
||||||
} else if ($feed < 0 && $feed > -10) { // special, like starred
|
} else if ($feed < 0 && $feed > LABEL_BASE_INDEX) { // special, like starred
|
||||||
|
|
||||||
if ($feed == -1) {
|
if ($feed == -1) {
|
||||||
db_query($link, "UPDATE ttrss_user_entries
|
db_query($link, "UPDATE ttrss_user_entries
|
||||||
|
@ -1085,9 +1087,9 @@
|
||||||
owner_uid = $owner_uid");
|
owner_uid = $owner_uid");
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if ($feed < -10) { // label
|
} else if ($feed < LABEL_BASE_INDEX) { // label
|
||||||
|
|
||||||
$label_id = -$feed - 11;
|
$label_id = feed_to_label_id($feed);
|
||||||
|
|
||||||
db_query($link, "UPDATE ttrss_user_entries, ttrss_user_labels2
|
db_query($link, "UPDATE ttrss_user_entries, ttrss_user_labels2
|
||||||
SET unread = false, last_read = NOW()
|
SET unread = false, last_read = NOW()
|
||||||
|
@ -1334,9 +1336,9 @@
|
||||||
$match_part = "feed_id IS NULL";
|
$match_part = "feed_id IS NULL";
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if ($feed < -10) {
|
} else if ($feed < LABEL_BASE_INDEX) {
|
||||||
|
|
||||||
$label_id = -$feed - 11;
|
$label_id = feed_to_label_id($feed);
|
||||||
|
|
||||||
return getLabelUnread($link, $label_id, $owner_uid);
|
return getLabelUnread($link, $label_id, $owner_uid);
|
||||||
|
|
||||||
|
@ -1446,7 +1448,7 @@
|
||||||
|
|
||||||
while ($line = db_fetch_assoc($result)) {
|
while ($line = db_fetch_assoc($result)) {
|
||||||
|
|
||||||
$id = -$line["id"] - 11;
|
$id = label_to_feed_id($line["id"]);
|
||||||
|
|
||||||
$label_name = $line["caption"];
|
$label_name = $line["caption"];
|
||||||
$count = $line["unread"];
|
$count = $line["unread"];
|
||||||
|
@ -1753,7 +1755,7 @@
|
||||||
function getFeedCatTitle($link, $id) {
|
function getFeedCatTitle($link, $id) {
|
||||||
if ($id == -1) {
|
if ($id == -1) {
|
||||||
return __("Special");
|
return __("Special");
|
||||||
} else if ($id < -10) {
|
} else if ($id < LABEL_BASE_INDEX) {
|
||||||
return __("Labels");
|
return __("Labels");
|
||||||
} else if ($id > 0) {
|
} else if ($id > 0) {
|
||||||
$result = db_query($link, "SELECT ttrss_feed_categories.title
|
$result = db_query($link, "SELECT ttrss_feed_categories.title
|
||||||
|
@ -1791,7 +1793,7 @@
|
||||||
return "images/recently_read.png";
|
return "images/recently_read.png";
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if ($id < -10) {
|
if ($id < LABEL_BASE_INDEX) {
|
||||||
return "images/label.png";
|
return "images/label.png";
|
||||||
} else {
|
} else {
|
||||||
if (file_exists(ICONS_DIR . "/$id.ico"))
|
if (file_exists(ICONS_DIR . "/$id.ico"))
|
||||||
|
@ -1816,8 +1818,8 @@
|
||||||
return __("Archived articles");
|
return __("Archived articles");
|
||||||
} else if ($id == -6) {
|
} else if ($id == -6) {
|
||||||
return __("Recently read");
|
return __("Recently read");
|
||||||
} else if ($id < -10) {
|
} else if ($id < LABEL_BASE_INDEX) {
|
||||||
$label_id = -$id - 11;
|
$label_id = feed_to_label_id($id);
|
||||||
$result = db_query($link, "SELECT caption FROM ttrss_labels2 WHERE id = '$label_id'");
|
$result = db_query($link, "SELECT caption FROM ttrss_labels2 WHERE id = '$label_id'");
|
||||||
if (db_num_rows($result) == 1) {
|
if (db_num_rows($result) == 1) {
|
||||||
return db_fetch_result($result, 0, "caption");
|
return db_fetch_result($result, 0, "caption");
|
||||||
|
@ -2389,8 +2391,8 @@
|
||||||
} else if ($feed == -4) { // all articles virtual feed
|
} else if ($feed == -4) { // all articles virtual feed
|
||||||
$query_strategy_part = "true";
|
$query_strategy_part = "true";
|
||||||
$vfeed_query_part = "ttrss_feeds.title AS feed_title,";
|
$vfeed_query_part = "ttrss_feeds.title AS feed_title,";
|
||||||
} else if ($feed <= -10) { // labels
|
} else if ($feed <= LABEL_BASE_INDEX) { // labels
|
||||||
$label_id = -$feed - 11;
|
$label_id = feed_to_label_id($feed);
|
||||||
|
|
||||||
$query_strategy_part = "label_id = '$label_id' AND
|
$query_strategy_part = "label_id = '$label_id' AND
|
||||||
ttrss_labels2.id = ttrss_user_labels2.label_id AND
|
ttrss_labels2.id = ttrss_user_labels2.label_id AND
|
||||||
|
@ -4155,4 +4157,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function label_to_feed_id($label) {
|
||||||
|
return LABEL_BASE_INDEX - 1 - abs($label);
|
||||||
|
}
|
||||||
|
|
||||||
|
function feed_to_label_id($feed) {
|
||||||
|
return LABEL_BASE_INDEX - 1 + abs($feed);
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -158,7 +158,7 @@
|
||||||
|
|
||||||
/* Remove access key for the label */
|
/* Remove access key for the label */
|
||||||
|
|
||||||
$ext_id = -11 - $id;
|
$ext_id = LABEL_BASE_INDEX - 1 - $id;
|
||||||
|
|
||||||
db_query($link, "DELETE FROM ttrss_access_keys WHERE
|
db_query($link, "DELETE FROM ttrss_access_keys WHERE
|
||||||
feed_id = '$ext_id' AND owner_uid = $owner_uid");
|
feed_id = '$ext_id' AND owner_uid = $owner_uid");
|
||||||
|
|
|
@ -106,7 +106,7 @@ dojo.declare("fox.FeedTree", dijit.Tree, {
|
||||||
var id = args.item.id[0];
|
var id = args.item.id[0];
|
||||||
var bare_id = parseInt(id.substr(id.indexOf(':')+1));
|
var bare_id = parseInt(id.substr(id.indexOf(':')+1));
|
||||||
|
|
||||||
if (bare_id < -10) {
|
if (bare_id < _label_base_index) {
|
||||||
var span = dojo.doc.createElement('span');
|
var span = dojo.doc.createElement('span');
|
||||||
var fg_color = args.item.fg_color[0];
|
var fg_color = args.item.fg_color[0];
|
||||||
var bg_color = args.item.bg_color[0];
|
var bg_color = args.item.bg_color[0];
|
||||||
|
@ -380,7 +380,7 @@ dojo.declare("fox.FeedTree", dijit.Tree, {
|
||||||
var node = tree._itemNodesMap[id];
|
var node = tree._itemNodesMap[id];
|
||||||
|
|
||||||
if (node) {
|
if (node) {
|
||||||
if (hide && unread == 0 && (bare_id > 0 || bare_id < -10 || !show_special)) {
|
if (hide && unread == 0 && (bare_id > 0 || bare_id < _label_base_index || !show_special)) {
|
||||||
Effect.Fade(node[0].rowNode, {duration : 0.3,
|
Effect.Fade(node[0].rowNode, {duration : 0.3,
|
||||||
queue: { position: 'end', scope: 'FFADE-' + id, limit: 1 }});
|
queue: { position: 'end', scope: 'FFADE-' + id, limit: 1 }});
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -2,6 +2,7 @@ var notify_silent = false;
|
||||||
var loading_progress = 0;
|
var loading_progress = 0;
|
||||||
var sanity_check_done = false;
|
var sanity_check_done = false;
|
||||||
var init_params = {};
|
var init_params = {};
|
||||||
|
var _label_base_index = -1024;
|
||||||
|
|
||||||
Ajax.Base.prototype.initialize = Ajax.Base.prototype.initialize.wrap(
|
Ajax.Base.prototype.initialize = Ajax.Base.prototype.initialize.wrap(
|
||||||
function (callOriginal, options) {
|
function (callOriginal, options) {
|
||||||
|
@ -1986,3 +1987,13 @@ function htmlspecialchars_decode (string, quote_style) {
|
||||||
|
|
||||||
return string;
|
return string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function label_to_feed_id(label) {
|
||||||
|
return _label_base_index - 1 - Math.abs(label);
|
||||||
|
}
|
||||||
|
|
||||||
|
function feed_to_label_id(feed) {
|
||||||
|
return _label_base_index - 1 + Math.abs(feed);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -1920,7 +1920,7 @@ function initHeadlinesMenu() {
|
||||||
var bare_id = id.substr(id.indexOf(":")+1);
|
var bare_id = id.substr(id.indexOf(":")+1);
|
||||||
var name = label.name[0];
|
var name = label.name[0];
|
||||||
|
|
||||||
bare_id = -11-bare_id;
|
bare_id = feed_to_label_id(bare_id);
|
||||||
|
|
||||||
labelAddMenu.addChild(new dijit.MenuItem({
|
labelAddMenu.addChild(new dijit.MenuItem({
|
||||||
label: name,
|
label: name,
|
||||||
|
@ -2120,3 +2120,4 @@ function displayArticleUrl(id) {
|
||||||
exception_error("changeScore", e);
|
exception_error("changeScore", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -207,7 +207,7 @@
|
||||||
|
|
||||||
while ($line = db_fetch_assoc($result)) {
|
while ($line = db_fetch_assoc($result)) {
|
||||||
|
|
||||||
$id = -$line["id"] - 11;
|
$id = label_to_feed_id($line["id"]);
|
||||||
|
|
||||||
$unread = getFeedUnread($link, $id);
|
$unread = getFeedUnread($link, $id);
|
||||||
$title = $line["caption"];
|
$title = $line["caption"];
|
||||||
|
|
Loading…
Reference in New Issue