move to psr-4 autoloader

This commit is contained in:
Andrew Dolgov 2023-10-25 12:55:09 +03:00
parent 0a5507d3bd
commit 865ecc8796
No known key found for this signature in database
GPG Key ID: 1A56B4FA25D4AF2A
75 changed files with 147 additions and 151 deletions

View File

@ -112,7 +112,7 @@
$op = "pluginhandler"; $op = "pluginhandler";
} */ } */
$op = str_replace("-", "_", $op); // $op = str_replace(, "_", $op);
$override = PluginHost::getInstance()->lookup_handler($op, $method); $override = PluginHost::getInstance()->lookup_handler($op, $method);

0
classes/api.php → classes/API.php Executable file → Normal file
View File

0
classes/article.php → classes/Article.php Executable file → Normal file
View File

0
classes/db.php → classes/Db.php Executable file → Normal file
View File

View File

View File

0
classes/feeditem/rss.php → classes/FeedItem_RSS.php Executable file → Normal file
View File

0
classes/feeds.php → classes/Feeds.php Executable file → Normal file
View File

View File

0
classes/logger.php → classes/Logger.php Executable file → Normal file
View File

0
classes/logger/sql.php → classes/Logger_SQL.php Executable file → Normal file
View File

0
classes/pluginhost.php → classes/PluginHost.php Executable file → Normal file
View File

6
classes/pref/feeds.php → classes/Pref_Feeds.php Executable file → Normal file
View File

@ -620,7 +620,7 @@ class Pref_Feeds extends Handler_Protected {
?> ?>
<?= \Controls\hidden_tag("ids", $feed_ids) ?> <?= \Controls\hidden_tag("ids", $feed_ids) ?>
<?= \Controls\hidden_tag("op", "pref-feeds") ?> <?= \Controls\hidden_tag("op", "Pref_Feeds") ?>
<?= \Controls\hidden_tag("method", "batchEditSave") ?> <?= \Controls\hidden_tag("method", "batchEditSave") ?>
<div dojoType="dijit.layout.TabContainer" style="height : 450px"> <div dojoType="dijit.layout.TabContainer" style="height : 450px">
@ -959,7 +959,7 @@ class Pref_Feeds extends Handler_Protected {
</div> </div>
<div style="padding : 0px" dojoType="dijit.layout.ContentPane" region="center"> <div style="padding : 0px" dojoType="dijit.layout.ContentPane" region="center">
<div dojoType="fox.PrefFeedStore" jsId="feedStore" <div dojoType="fox.PrefFeedStore" jsId="feedStore"
url="backend.php?op=pref-feeds&method=getfeedtree"> url="backend.php?op=Pref_Feeds&method=getfeedtree">
</div> </div>
<div dojoType="lib.CheckBoxStoreModel" jsId="feedModel" store="feedStore" <div dojoType="lib.CheckBoxStoreModel" jsId="feedModel" store="feedStore"
@ -988,7 +988,7 @@ class Pref_Feeds extends Handler_Protected {
<label class='dijitButton'><?= __("Choose file...") ?> <label class='dijitButton'><?= __("Choose file...") ?>
<input style='display : none' id='opml_file' name='opml_file' type='file'> <input style='display : none' id='opml_file' name='opml_file' type='file'>
</label> </label>
<input type='hidden' name='op' value='pref-feeds'> <input type='hidden' name='op' value='Pref_Feeds'>
<input type='hidden' name='csrf_token' value="<?= $_SESSION['csrf_token'] ?>"> <input type='hidden' name='csrf_token' value="<?= $_SESSION['csrf_token'] ?>">
<input type='hidden' name='method' value='importOpml'> <input type='hidden' name='method' value='importOpml'>
<button dojoType='dijit.form.Button' class='alt-primary' onclick="return Helpers.OPML.import()" type="submit"> <button dojoType='dijit.form.Button' class='alt-primary' onclick="return Helpers.OPML.import()" type="submit">

2
classes/pref/filters.php → classes/Pref_Filters.php Executable file → Normal file
View File

@ -696,7 +696,7 @@ class Pref_Filters extends Handler_Protected {
</div> </div>
<div style='padding : 0px' dojoType='dijit.layout.ContentPane' region='center'> <div style='padding : 0px' dojoType='dijit.layout.ContentPane' region='center'>
<div dojoType="fox.PrefFilterStore" jsId="filterStore" <div dojoType="fox.PrefFilterStore" jsId="filterStore"
url="backend.php?op=pref-filters&method=getfiltertree"> url="backend.php?op=Pref_Filters&method=getfiltertree">
</div> </div>
<div dojoType="lib.CheckBoxStoreModel" jsId="filterModel" store="filterStore" <div dojoType="lib.CheckBoxStoreModel" jsId="filterModel" store="filterStore"
query="{id:'root'}" rootId="root" rootLabel="Filters" query="{id:'root'}" rootId="root" rootLabel="Filters"

View File

@ -199,7 +199,7 @@ class Pref_Labels extends Handler_Protected {
<div style='padding : 0px' dojoType='dijit.layout.ContentPane' region='center'> <div style='padding : 0px' dojoType='dijit.layout.ContentPane' region='center'>
<div dojoType='dojo.data.ItemFileWriteStore' jsId='labelStore' <div dojoType='dojo.data.ItemFileWriteStore' jsId='labelStore'
url='backend.php?op=pref-labels&method=getlabeltree'> url='backend.php?op=Pref_Labels&method=getlabeltree'>
</div> </div>
<div dojoType='lib.CheckBoxStoreModel' jsId='labelModel' store='labelStore' <div dojoType='lib.CheckBoxStoreModel' jsId='labelModel' store='labelStore'

View File

@ -285,7 +285,7 @@ class Pref_Prefs extends Handler_Protected {
?> ?>
<form dojoType='dijit.form.Form'> <form dojoType='dijit.form.Form'>
<?= \Controls\hidden_tag("op", "pref-prefs") ?> <?= \Controls\hidden_tag("op", "Pref_Prefs") ?>
<?= \Controls\hidden_tag("method", "changePersonalData") ?> <?= \Controls\hidden_tag("method", "changePersonalData") ?>
<script type="dojo/method" event="onSubmit" args="evt"> <script type="dojo/method" event="onSubmit" args="evt">
@ -334,7 +334,7 @@ class Pref_Prefs extends Handler_Protected {
<form dojoType='dijit.form.Form'> <form dojoType='dijit.form.Form'>
<?= \Controls\hidden_tag("op", "pref-prefs") ?> <?= \Controls\hidden_tag("op", "Pref_Prefs") ?>
<?= \Controls\hidden_tag("method", "changepassword") ?> <?= \Controls\hidden_tag("method", "changepassword") ?>
<!-- TODO: return JSON the backend call --> <!-- TODO: return JSON the backend call -->
@ -426,7 +426,7 @@ class Pref_Prefs extends Handler_Protected {
?> ?>
<form dojoType='dijit.form.Form'> <form dojoType='dijit.form.Form'>
<?= \Controls\hidden_tag("op", "pref-prefs") ?> <?= \Controls\hidden_tag("op", "Pref_Prefs") ?>
<?= \Controls\hidden_tag("method", "otpdisable") ?> <?= \Controls\hidden_tag("method", "otpdisable") ?>
<!-- TODO: return JSON from the backend call --> <!-- TODO: return JSON from the backend call -->
@ -473,7 +473,7 @@ class Pref_Prefs extends Handler_Protected {
<form dojoType='dijit.form.Form'> <form dojoType='dijit.form.Form'>
<?= \Controls\hidden_tag("op", "pref-prefs") ?> <?= \Controls\hidden_tag("op", "Pref_Prefs") ?>
<?= \Controls\hidden_tag("method", "otpenable") ?> <?= \Controls\hidden_tag("method", "otpenable") ?>
<fieldset> <fieldset>
@ -746,7 +746,7 @@ class Pref_Prefs extends Handler_Protected {
private function index_prefs(): void { private function index_prefs(): void {
?> ?>
<form dojoType='dijit.form.Form' id='changeSettingsForm'> <form dojoType='dijit.form.Form' id='changeSettingsForm'>
<?= \Controls\hidden_tag("op", "pref-prefs") ?> <?= \Controls\hidden_tag("op", "Pref_Prefs") ?>
<?= \Controls\hidden_tag("method", "saveconfig") ?> <?= \Controls\hidden_tag("method", "saveconfig") ?>
<script type="dojo/method" event="onSubmit" args="evt, quit"> <script type="dojo/method" event="onSubmit" args="evt, quit">
@ -836,7 +836,7 @@ class Pref_Prefs extends Handler_Protected {
?> ?>
<form dojoType="dijit.form.Form" id="changePluginsForm"> <form dojoType="dijit.form.Form" id="changePluginsForm">
<?= \Controls\hidden_tag("op", "pref-prefs") ?> <?= \Controls\hidden_tag("op", "Pref_Prefs") ?>
<?= \Controls\hidden_tag("method", "setplugins") ?> <?= \Controls\hidden_tag("method", "setplugins") ?>
<div dojoType="dijit.layout.BorderContainer" gutters="false"> <div dojoType="dijit.layout.BorderContainer" gutters="false">
@ -936,7 +936,7 @@ class Pref_Prefs extends Handler_Protected {
<script type='dojo/method' event='onSelected' args='evt'> <script type='dojo/method' event='onSelected' args='evt'>
if (this.domNode.querySelector('.loading')) if (this.domNode.querySelector('.loading'))
window.setTimeout(() => { window.setTimeout(() => {
xhr.post("backend.php", {op: 'pref-prefs', method: 'index_auth'}, (reply) => { xhr.post("backend.php", {op: 'Pref_Prefs', method: 'index_auth'}, (reply) => {
this.attr('content', reply); this.attr('content', reply);
}); });
}, 100); }, 100);

View File

@ -194,7 +194,7 @@ class Pref_System extends Handler_Administrative {
} }
</script> </script>
<?= \Controls\hidden_tag("op", "pref-system") ?> <?= \Controls\hidden_tag("op", "Pref_System") ?>
<?= \Controls\hidden_tag("method", "sendTestEmail") ?> <?= \Controls\hidden_tag("method", "sendTestEmail") ?>
<fieldset> <fieldset>
@ -210,7 +210,7 @@ class Pref_System extends Handler_Administrative {
<script type='dojo/method' event='onSelected' args='evt'> <script type='dojo/method' event='onSelected' args='evt'>
if (this.domNode.querySelector('.loading')) if (this.domNode.querySelector('.loading'))
window.setTimeout(() => { window.setTimeout(() => {
xhr.post("backend.php", {op: 'pref-system', method: 'getphpinfo'}, (reply) => { xhr.post("backend.php", {op: 'Pref_System', method: 'getphpinfo'}, (reply) => {
this.attr('content', `<div class='phpinfo'>${reply}</div>`); this.attr('content', `<div class='phpinfo'>${reply}</div>`);
}); });
}, 200); }, 200);

0
classes/rpc.php → classes/RPC.php Executable file → Normal file
View File

0
classes/rssutils.php → classes/RSSUtils.php Executable file → Normal file
View File

View File

@ -12,6 +12,11 @@
"url": "https://dev.tt-rss.org/fox/idiorm.git" "url": "https://dev.tt-rss.org/fox/idiorm.git"
} }
], ],
"autoload": {
"psr-4": {
"": "classes/"
}
},
"require": { "require": {
"spomky-labs/otphp": "^10.0", "spomky-labs/otphp": "^10.0",
"chillerlan/php-qrcode": "^4.3.3", "chillerlan/php-qrcode": "^4.3.3",

View File

@ -1,17 +1,2 @@
<?php <?php
spl_autoload_register(function($class) {
$root_dir = dirname(__DIR__); // we were in tt-rss/include
// - internal tt-rss classes are loaded from classes/ and use special naming logic instead of namespaces
// - plugin classes are loaded by PluginHandler from plugins.local/ and plugins/
$class_file = "$root_dir/classes/" . str_replace("_", "/", strtolower($class)) . ".php";
if (file_exists($class_file))
include $class_file;
});
// also pull composer autoloader
require_once "vendor/autoload.php"; require_once "vendor/autoload.php";

View File

@ -153,7 +153,7 @@ const App = {
return dijit.getEnclosingWidget(elem.closest('.dijitDialog')); return dijit.getEnclosingWidget(elem.closest('.dijitDialog'));
}, },
getPhArgs(plugin, method, args = {}) { getPhArgs(plugin, method, args = {}) {
return {...{op: "pluginhandler", plugin: plugin, method: method}, ...args}; return {...{op: "PluginHandler", plugin: plugin, method: method}, ...args};
}, },
label_to_feed_id: function(label) { label_to_feed_id: function(label) {
return this.LABEL_BASE_INDEX - 1 - Math.abs(label); return this.LABEL_BASE_INDEX - 1 - Math.abs(label);
@ -291,7 +291,7 @@ const App = {
setCombinedMode: function(combined) { setCombinedMode: function(combined) {
const value = combined ? "true" : "false"; const value = combined ? "true" : "false";
xhr.post("backend.php", {op: "rpc", method: "setpref", key: "COMBINED_DISPLAY_MODE", value: value}, () => { xhr.post("backend.php", {op: "RPC", method: "setpref", key: "COMBINED_DISPLAY_MODE", value: value}, () => {
this.setInitParam("combined_display_mode", this.setInitParam("combined_display_mode",
!this.getInitParam("combined_display_mode")); !this.getInitParam("combined_display_mode"));
@ -306,7 +306,7 @@ const App = {
if (App.isCombinedMode()) { if (App.isCombinedMode()) {
const value = expand ? "true" : "false"; const value = expand ? "true" : "false";
xhr.post("backend.php", {op: "rpc", method: "setpref", key: "CDM_EXPANDED", value: value}, () => { xhr.post("backend.php", {op: "RPC", method: "setpref", key: "CDM_EXPANDED", value: value}, () => {
this.setInitParam("cdm_expanded", !this.getInitParam("cdm_expanded")); this.setInitParam("cdm_expanded", !this.getInitParam("cdm_expanded"));
Headlines.renderAgain(); Headlines.renderAgain();
}); });
@ -440,7 +440,7 @@ const App = {
} }
}, },
hotkeyHelp: function() { hotkeyHelp: function() {
xhr.post("backend.php", {op: "rpc", method: "hotkeyHelp"}, (reply) => { xhr.post("backend.php", {op: "RPC", method: "hotkeyHelp"}, (reply) => {
const dialog = new fox.SingleUseDialog({ const dialog = new fox.SingleUseDialog({
title: __("Keyboard shortcuts"), title: __("Keyboard shortcuts"),
content: reply, content: reply,
@ -621,7 +621,7 @@ const App = {
try { try {
xhr.post("backend.php", xhr.post("backend.php",
{op: "rpc", method: "log", {op: "RPC", method: "log",
file: params.filename ? params.filename : error.fileName, file: params.filename ? params.filename : error.fileName,
line: params.lineno ? params.lineno : error.lineNumber, line: params.lineno ? params.lineno : error.lineNumber,
msg: message, msg: message,
@ -703,7 +703,7 @@ const App = {
this.initHotkeyActions(); this.initHotkeyActions();
const params = { const params = {
op: "rpc", op: "RPC",
method: "sanityCheck", method: "sanityCheck",
clientTzOffset: new Date().getTimezoneOffset() * 60, clientTzOffset: new Date().getTimezoneOffset() * 60,
hasSandbox: "sandbox" in document.createElement("iframe"), hasSandbox: "sandbox" in document.createElement("iframe"),
@ -737,7 +737,7 @@ const App = {
return errorMsg == ""; return errorMsg == "";
}, },
updateRuntimeInfo: function() { updateRuntimeInfo: function() {
xhr.json("backend.php", {op: "rpc", method: "getruntimeinfo"}, () => { xhr.json("backend.php", {op: "RPC", method: "getruntimeinfo"}, () => {
// handled by xhr.json() // handled by xhr.json()
}); });
}, },
@ -858,7 +858,7 @@ const App = {
checkForUpdates: function() { checkForUpdates: function() {
console.log('checking for updates...'); console.log('checking for updates...');
xhr.json("backend.php", {op: 'rpc', method: 'checkforupdates'}) xhr.json("backend.php", {op: 'RPC', method: 'checkforupdates'})
.then((reply) => { .then((reply) => {
console.log('update reply', reply); console.log('update reply', reply);
@ -965,7 +965,7 @@ const App = {
if (article_id) Article.view(article_id); if (article_id) Article.view(article_id);
xhr.post("backend.php", {op: "rpc", method: "setWidescreen", wide: wide ? 1 : 0}); xhr.post("backend.php", {op: "RPC", method: "setWidescreen", wide: wide ? 1 : 0});
}, },
initHotkeyActions: function() { initHotkeyActions: function() {
if (this.is_prefs) { if (this.is_prefs) {
@ -1149,7 +1149,7 @@ const App = {
if (!Feeds.activeIsCat() && parseInt(Feeds.getActive()) > 0) { if (!Feeds.activeIsCat() && parseInt(Feeds.getActive()) > 0) {
/* global __csrf_token */ /* global __csrf_token */
App.postOpenWindow("backend.php", {op: "feeds", method: "updatedebugger", App.postOpenWindow("backend.php", {op: "Feeds", method: "updatedebugger",
feed_id: Feeds.getActive(), csrf_token: __csrf_token}); feed_id: Feeds.getActive(), csrf_token: __csrf_token});
} else { } else {
@ -1158,7 +1158,7 @@ const App = {
}; };
this.hotkey_actions["feed_debug_viewfeed"] = () => { this.hotkey_actions["feed_debug_viewfeed"] = () => {
App.postOpenWindow("backend.php", {op: "feeds", method: "view", App.postOpenWindow("backend.php", {op: "Feeds", method: "view",
feed: Feeds.getActive(), timestamps: 1, debug: 1, cat: Feeds.activeIsCat(), csrf_token: __csrf_token}); feed: Feeds.getActive(), timestamps: 1, debug: 1, cat: Feeds.activeIsCat(), csrf_token: __csrf_token});
}; };
@ -1177,13 +1177,13 @@ const App = {
Headlines.reverse(); Headlines.reverse();
}; };
this.hotkey_actions["feed_toggle_grid"] = () => { this.hotkey_actions["feed_toggle_grid"] = () => {
xhr.json("backend.php", {op: "rpc", method: "togglepref", key: "CDM_ENABLE_GRID"}, (reply) => { xhr.json("backend.php", {op: "RPC", method: "togglepref", key: "CDM_ENABLE_GRID"}, (reply) => {
App.setInitParam("cdm_enable_grid", reply.value); App.setInitParam("cdm_enable_grid", reply.value);
Headlines.renderAgain(); Headlines.renderAgain();
}) })
}; };
this.hotkey_actions["feed_toggle_vgroup"] = () => { this.hotkey_actions["feed_toggle_vgroup"] = () => {
xhr.post("backend.php", {op: "rpc", method: "togglepref", key: "VFEED_GROUP_BY_FEED"}, () => { xhr.post("backend.php", {op: "RPC", method: "togglepref", key: "VFEED_GROUP_BY_FEED"}, () => {
Feeds.reloadCurrent(); Feeds.reloadCurrent();
}) })
}; };
@ -1274,7 +1274,7 @@ const App = {
CommonDialogs.subscribeToFeed(); CommonDialogs.subscribeToFeed();
break; break;
case "qmcDigest": case "qmcDigest":
window.location.href = "backend.php?op=digest"; window.location.href = "backend.php?op=Digest";
break; break;
case "qmcEditFeed": case "qmcEditFeed":
if (Feeds.activeIsCat()) if (Feeds.activeIsCat())

View File

@ -123,7 +123,7 @@ const Article = {
Article.setActive(0); Article.setActive(0);
}, },
displayUrl: function (id) { displayUrl: function (id) {
const query = {op: "article", method: "getmetadatabyid", id: id}; const query = {op: "Article", method: "getmetadatabyid", id: id};
xhr.json("backend.php", query, (reply) => { xhr.json("backend.php", query, (reply) => {
if (reply && reply.link) { if (reply && reply.link) {
@ -136,7 +136,7 @@ const Article = {
openInNewWindow: function (id) { openInNewWindow: function (id) {
/* global __csrf_token */ /* global __csrf_token */
App.postOpenWindow("backend.php", App.postOpenWindow("backend.php",
{ "op": "article", "method": "redirect", "id": id, "csrf_token": __csrf_token }); { "op": "Article", "method": "redirect", "id": id, "csrf_token": __csrf_token });
Headlines.toggleUnread(id, 0); Headlines.toggleUnread(id, 0);
}, },
@ -395,7 +395,7 @@ const Article = {
const tmph = dojo.connect(dialog, 'onShow', function () { const tmph = dojo.connect(dialog, 'onShow', function () {
dojo.disconnect(tmph); dojo.disconnect(tmph);
xhr.json("backend.php", {op: "article", method: "printArticleTags", id: id}, (reply) => { xhr.json("backend.php", {op: "Article", method: "printArticleTags", id: id}, (reply) => {
dijit.getEnclosingWidget(App.byId("tags_str")) dijit.getEnclosingWidget(App.byId("tags_str"))
.attr('value', reply.tags.join(", ")) .attr('value', reply.tags.join(", "))
@ -404,7 +404,7 @@ const Article = {
App.byId('tags_str').onkeyup = (e) => { App.byId('tags_str').onkeyup = (e) => {
const last_tag = e.target.value.split(',').pop().trim(); const last_tag = e.target.value.split(',').pop().trim();
xhr.json("backend.php", {op: 'article', method: 'completeTags', search: last_tag}, (data) => { xhr.json("backend.php", {op: 'Article', method: 'completeTags', search: last_tag}, (data) => {
App.byId("tags_choices").innerHTML = `${data.map((tag) => App.byId("tags_choices").innerHTML = `${data.map((tag) =>
`<a href="#" onclick="Article.autocompleteInject(this, 'tags_str')">${tag}</a>` ) `<a href="#" onclick="Article.autocompleteInject(this, 'tags_str')">${tag}</a>` )
.join(', ')}` .join(', ')}`

View File

@ -28,7 +28,7 @@ const CommonDialogs = {
}, },
subscribeToFeed: function() { subscribeToFeed: function() {
xhr.json("backend.php", xhr.json("backend.php",
{op: "feeds", method: "subscribeToFeed"}, {op: "Feeds", method: "subscribeToFeed"},
(reply) => { (reply) => {
const dialog = new fox.SingleUseDialog({ const dialog = new fox.SingleUseDialog({
title: __("Subscribe to feed"), title: __("Subscribe to feed"),
@ -215,7 +215,7 @@ const CommonDialogs = {
}, },
showFeedsWithErrors: function() { showFeedsWithErrors: function() {
xhr.json("backend.php", {op: "pref-feeds", method: "feedsWithErrors"}, (reply) => { xhr.json("backend.php", {op: "Pref_Feeds", method: "feedsWithErrors"}, (reply) => {
const dialog = new fox.SingleUseDialog({ const dialog = new fox.SingleUseDialog({
id: "errorFeedsDlg", id: "errorFeedsDlg",
@ -231,7 +231,7 @@ const CommonDialogs = {
Notify.progress("Removing selected feeds...", true); Notify.progress("Removing selected feeds...", true);
const query = { const query = {
op: "pref-feeds", method: "remove", op: "Pref_Feeds", method: "remove",
ids: sel_rows.toString() ids: sel_rows.toString()
}; };
@ -305,7 +305,7 @@ const CommonDialogs = {
if (caption != undefined && caption.trim().length > 0) { if (caption != undefined && caption.trim().length > 0) {
const query = {op: "pref-labels", method: "add", caption: caption.trim()}; const query = {op: "Pref_Labels", method: "add", caption: caption.trim()};
Notify.progress("Loading, please wait...", true); Notify.progress("Loading, please wait...", true);
@ -325,7 +325,7 @@ const CommonDialogs = {
if (typeof title == "undefined" || confirm(msg)) { if (typeof title == "undefined" || confirm(msg)) {
Notify.progress("Removing feed..."); Notify.progress("Removing feed...");
const query = {op: "pref-feeds", quiet: 1, method: "remove", ids: feed_id}; const query = {op: "Pref_Feeds", quiet: 1, method: "remove", ids: feed_id};
xhr.post("backend.php", query, () => { xhr.post("backend.php", query, () => {
if (App.isPrefs()) { if (App.isPrefs()) {
@ -348,7 +348,7 @@ const CommonDialogs = {
if (feed_id <= 0) if (feed_id <= 0)
return alert(__("You can't edit this kind of feed.")); return alert(__("You can't edit this kind of feed."));
const query = {op: "pref-feeds", method: "editfeed", id: feed_id}; const query = {op: "Pref_Feeds", method: "editfeed", id: feed_id};
console.log("editFeed", query); console.log("editFeed", query);
@ -378,7 +378,7 @@ const CommonDialogs = {
const fd = new FormData(); const fd = new FormData();
fd.append('icon_file', icon_file) fd.append('icon_file', icon_file)
fd.append('feed_id', feed_id); fd.append('feed_id', feed_id);
fd.append('op', 'pref-feeds'); fd.append('op', 'Pref_Feeds');
fd.append('method', 'uploadIcon'); fd.append('method', 'uploadIcon');
fd.append('csrf_token', App.getInitParam("csrf_token")); fd.append('csrf_token', App.getInitParam("csrf_token"));
@ -427,7 +427,7 @@ const CommonDialogs = {
if (confirm(__("Remove stored feed icon?"))) { if (confirm(__("Remove stored feed icon?"))) {
Notify.progress("Removing feed icon...", true); Notify.progress("Removing feed icon...", true);
xhr.post("backend.php", {op: "pref-feeds", method: "removeicon", feed_id: id}, () => { xhr.post("backend.php", {op: "Pref_Feeds", method: "removeicon", feed_id: id}, () => {
Notify.info("Feed icon removed."); Notify.info("Feed icon removed.");
if (App.isPrefs()) if (App.isPrefs())
@ -470,7 +470,7 @@ const CommonDialogs = {
const tmph = dojo.connect(dialog, 'onShow', function () { const tmph = dojo.connect(dialog, 'onShow', function () {
dojo.disconnect(tmph); dojo.disconnect(tmph);
xhr.json("backend.php", {op: "pref-feeds", method: "editfeed", id: feed_id}, (reply) => { xhr.json("backend.php", {op: "Pref_Feeds", method: "editfeed", id: feed_id}, (reply) => {
const feed = reply.feed; const feed = reply.feed;
const is_readonly = reply.user.access_level == App.UserAccessLevels.ACCESS_LEVEL_READONLY; const is_readonly = reply.user.access_level == App.UserAccessLevels.ACCESS_LEVEL_READONLY;
@ -493,7 +493,7 @@ const CommonDialogs = {
<div dojoType="dijit.layout.ContentPane" title="${__('General')}"> <div dojoType="dijit.layout.ContentPane" title="${__('General')}">
${App.FormFields.hidden_tag("id", feed_id)} ${App.FormFields.hidden_tag("id", feed_id)}
${App.FormFields.hidden_tag("op", "pref-feeds")} ${App.FormFields.hidden_tag("op", "Pref_Feeds")}
${App.FormFields.hidden_tag("method", "editSave")} ${App.FormFields.hidden_tag("method", "editSave")}
<section> <section>
@ -621,7 +621,7 @@ const CommonDialogs = {
Notify.progress("Loading, please wait...", true); Notify.progress("Loading, please wait...", true);
xhr.json("backend.php", {op: "pref-feeds", method: "getsharedurl", id: feed, is_cat: is_cat, search: search}, (reply) => { xhr.json("backend.php", {op: "Pref_Feeds", method: "getsharedurl", id: feed, is_cat: is_cat, search: search}, (reply) => {
try { try {
const dialog = new fox.SingleUseDialog({ const dialog = new fox.SingleUseDialog({
title: __("Show as feed"), title: __("Show as feed"),
@ -630,7 +630,7 @@ const CommonDialogs = {
Notify.progress("Trying to change address...", true); Notify.progress("Trying to change address...", true);
const query = {op: "pref-feeds", method: "regenFeedKey", id: feed, is_cat: is_cat}; const query = {op: "Pref_Feeds", method: "regenFeedKey", id: feed, is_cat: is_cat};
xhr.json("backend.php", query, (reply) => { xhr.json("backend.php", query, (reply) => {
const new_link = reply.link; const new_link = reply.link;

View File

@ -115,7 +115,7 @@ const Filters = {
insertRule: function(parentNode, replaceNode) { insertRule: function(parentNode, replaceNode) {
const rule = dojo.formToJson("filter_new_rule_form"); const rule = dojo.formToJson("filter_new_rule_form");
xhr.post("backend.php", {op: "pref-filters", method: "printrulename", rule: rule}, (reply) => { xhr.post("backend.php", {op: "Pref_Filters", method: "printrulename", rule: rule}, (reply) => {
try { try {
const li = document.createElement('li'); const li = document.createElement('li');
li.addClassName("rule"); li.addClassName("rule");
@ -147,7 +147,7 @@ const Filters = {
const action = dojo.formToJson(form); const action = dojo.formToJson(form);
xhr.post("backend.php", { op: "pref-filters", method: "printactionname", action: action }, (reply) => { xhr.post("backend.php", { op: "Pref_Filters", method: "printactionname", action: action }, (reply) => {
try { try {
const li = document.createElement('li'); const li = document.createElement('li');
li.addClassName("action"); li.addClassName("action");
@ -200,7 +200,7 @@ const Filters = {
console.log(rule, dialog.filter_info); console.log(rule, dialog.filter_info);
xhr.json("backend.php", {op: "pref-filters", method: "editrule", ids: rule.feed_id.join(",")}, function (editrule) { xhr.json("backend.php", {op: "Pref_Filters", method: "editrule", ids: rule.feed_id.join(",")}, function (editrule) {
edit_rule_dialog.attr('content', edit_rule_dialog.attr('content',
` `
<form name="filter_new_rule_form" id="filter_new_rule_form" onsubmit="return false"> <form name="filter_new_rule_form" id="filter_new_rule_form" onsubmit="return false">
@ -326,7 +326,7 @@ const Filters = {
dijit.byId("filterDlg_actionSelect").attr('value', action.action_id); dijit.byId("filterDlg_actionSelect").attr('value', action.action_id);
/*xhr.post("backend.php", {op: 'pref-filters', method: 'newaction', action: actionStr}, (reply) => { /*xhr.post("backend.php", {op: 'Pref_Filters', method: 'newaction', action: actionStr}, (reply) => {
edit_action_dialog.attr('content', reply); edit_action_dialog.attr('content', reply);
setTimeout(() => { setTimeout(() => {
@ -365,7 +365,7 @@ const Filters = {
Notify.progress("Removing filter..."); Notify.progress("Removing filter...");
const query = {op: "pref-filters", method: "remove", ids: this.attr('value').id}; const query = {op: "Pref_Filters", method: "remove", ids: this.attr('value').id};
xhr.post("backend.php", query, () => { xhr.post("backend.php", query, () => {
const tree = dijit.byId("filterTree"); const tree = dijit.byId("filterTree");
@ -411,7 +411,7 @@ const Filters = {
const tmph = dojo.connect(dialog, 'onShow', function () { const tmph = dojo.connect(dialog, 'onShow', function () {
dojo.disconnect(tmph); dojo.disconnect(tmph);
xhr.json("backend.php", {op: "pref-filters", method: "edit", id: filter_id}, function (filter) { xhr.json("backend.php", {op: "Pref_Filters", method: "edit", id: filter_id}, function (filter) {
dialog.filter_info = filter; dialog.filter_info = filter;
@ -425,7 +425,7 @@ const Filters = {
` `
<form onsubmit='return false'> <form onsubmit='return false'>
${App.FormFields.hidden_tag("op", "pref-filters")} ${App.FormFields.hidden_tag("op", "Pref_Filters")}
${App.FormFields.hidden_tag("id", filter_id)} ${App.FormFields.hidden_tag("id", filter_id)}
${App.FormFields.hidden_tag("method", filter_id ? "editSave" : "add")} ${App.FormFields.hidden_tag("method", filter_id ? "editSave" : "add")}
${App.FormFields.hidden_tag("csrf_token", App.getInitParam('csrf_token'))} ${App.FormFields.hidden_tag("csrf_token", App.getInitParam('csrf_token'))}
@ -541,7 +541,7 @@ const Filters = {
dialog.editRule(null, dojo.toJson(rule)); dialog.editRule(null, dojo.toJson(rule));
} else { } else {
const query = {op: "article", method: "getmetadatabyid", id: Article.getActive()}; const query = {op: "Article", method: "getmetadatabyid", id: Article.getActive()};
xhr.json("backend.php", query, (reply) => { xhr.json("backend.php", query, (reply) => {
let title; let title;

View File

@ -104,7 +104,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "dojo/_base/array", "dojo/co
menu.addChild(new dijit.MenuItem({ menu.addChild(new dijit.MenuItem({
label: __("Open site"), label: __("Open site"),
onClick: function() { onClick: function() {
App.postOpenWindow("backend.php", {op: "feeds", method: "opensite", App.postOpenWindow("backend.php", {op: "Feeds", method: "opensite",
feed_id: this.getParent().row_id, csrf_token: __csrf_token}); feed_id: this.getParent().row_id, csrf_token: __csrf_token});
}})); }}));
@ -114,7 +114,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "dojo/_base/array", "dojo/co
label: __("Debug feed"), label: __("Debug feed"),
onClick: function() { onClick: function() {
/* global __csrf_token */ /* global __csrf_token */
App.postOpenWindow("backend.php", {op: "feeds", method: "updatedebugger", App.postOpenWindow("backend.php", {op: "Feeds", method: "updatedebugger",
feed_id: this.getParent().row_id, csrf_token: __csrf_token}); feed_id: this.getParent().row_id, csrf_token: __csrf_token});
}})); }}));
} }

View File

@ -160,7 +160,7 @@ const Feeds = {
}, },
// null = get all data, [] would give empty response for specific type // null = get all data, [] would give empty response for specific type
requestCounters: function(feed_ids = null, label_ids = null) { requestCounters: function(feed_ids = null, label_ids = null) {
xhr.json("backend.php", {op: "rpc", xhr.json("backend.php", {op: "RPC",
method: "getAllCounters", method: "getAllCounters",
"feed_ids[]": feed_ids, "feed_ids[]": feed_ids,
"feed_id_count": feed_ids ? feed_ids.length : -1, "feed_id_count": feed_ids ? feed_ids.length : -1,
@ -179,7 +179,7 @@ const Feeds = {
} }
const store = new dojo.data.ItemFileWriteStore({ const store = new dojo.data.ItemFileWriteStore({
url: "backend.php?op=pref_feeds&method=getfeedtree&mode=2" url: "backend.php?op=Pref_Feeds&method=getfeedtree&mode=2"
}); });
// noinspection JSUnresolvedFunction // noinspection JSUnresolvedFunction
@ -347,7 +347,7 @@ const Feeds = {
toggleUnread: function() { toggleUnread: function() {
const hide = !App.getInitParam("hide_read_feeds"); const hide = !App.getInitParam("hide_read_feeds");
xhr.post("backend.php", {op: "rpc", method: "setpref", key: "HIDE_READ_FEEDS", value: hide}, () => { xhr.post("backend.php", {op: "RPC", method: "setpref", key: "HIDE_READ_FEEDS", value: hide}, () => {
this.hideOrShowFeeds(hide); this.hideOrShowFeeds(hide);
App.setInitParam("hide_read_feeds", hide); App.setInitParam("hide_read_feeds", hide);
}); });
@ -386,7 +386,7 @@ const Feeds = {
}, 10 * 1000); }, 10 * 1000);
} }
let query = {...{op: "feeds", method: "view", feed: feed}, ...dojo.formToObject("toolbar-main")}; let query = {...{op: "Feeds", method: "view", feed: feed}, ...dojo.formToObject("toolbar-main")};
if (method) query.m = method; if (method) query.m = method;
@ -435,7 +435,7 @@ const Feeds = {
Notify.progress("Marking all feeds as read..."); Notify.progress("Marking all feeds as read...");
xhr.json("backend.php", {op: "feeds", method: "catchupAll"}, () => { xhr.json("backend.php", {op: "Feeds", method: "catchupAll"}, () => {
this.reloadCurrent(); this.reloadCurrent();
}); });
@ -473,7 +473,7 @@ const Feeds = {
} }
const catchup_query = { const catchup_query = {
op: 'rpc', method: 'catchupFeed', feed_id: feed, op: 'RPC', method: 'catchupFeed', feed_id: feed,
is_cat: is_cat, mode: mode, search_query: this.last_search_query[0], is_cat: is_cat, mode: mode, search_query: this.last_search_query[0],
search_lang: this.last_search_query[1] search_lang: this.last_search_query[1]
}; };
@ -612,7 +612,7 @@ const Feeds = {
}, },
search: function() { search: function() {
xhr.json("backend.php", xhr.json("backend.php",
{op: "feeds", method: "search"}, {op: "Feeds", method: "search"},
(reply) => { (reply) => {
try { try {
const dialog = new fox.SingleUseDialog({ const dialog = new fox.SingleUseDialog({
@ -686,7 +686,7 @@ const Feeds = {
updateRandom: function() { updateRandom: function() {
console.log("in update_random_feed"); console.log("in update_random_feed");
xhr.json("backend.php", {op: "rpc", method: "updaterandomfeed"}, () => { xhr.json("backend.php", {op: "RPC", method: "updaterandomfeed"}, () => {
// //
}); });
}, },

View File

@ -160,26 +160,26 @@ const Headlines = {
if (ops.tmark.length != 0) if (ops.tmark.length != 0)
promises.push(xhr.post("backend.php", promises.push(xhr.post("backend.php",
{op: "rpc", method: "markSelected", "ids[]": ops.tmark, cmode: 2})); {op: "RPC", method: "markSelected", "ids[]": ops.tmark, cmode: 2}));
if (ops.tpub.length != 0) if (ops.tpub.length != 0)
promises.push(xhr.post("backend.php", promises.push(xhr.post("backend.php",
{op: "rpc", method: "publishSelected", "ids[]": ops.tpub, cmode: 2})); {op: "RPC", method: "publishSelected", "ids[]": ops.tpub, cmode: 2}));
if (ops.read.length != 0) if (ops.read.length != 0)
promises.push(xhr.post("backend.php", promises.push(xhr.post("backend.php",
{op: "rpc", method: "catchupSelected", "ids[]": ops.read, cmode: 0})); {op: "RPC", method: "catchupSelected", "ids[]": ops.read, cmode: 0}));
if (ops.unread.length != 0) if (ops.unread.length != 0)
promises.push(xhr.post("backend.php", promises.push(xhr.post("backend.php",
{op: "rpc", method: "catchupSelected", "ids[]": ops.unread, cmode: 1})); {op: "RPC", method: "catchupSelected", "ids[]": ops.unread, cmode: 1}));
const scores = Object.keys(ops.rescore); const scores = Object.keys(ops.rescore);
if (scores.length != 0) { if (scores.length != 0) {
scores.forEach((score) => { scores.forEach((score) => {
promises.push(xhr.post("backend.php", promises.push(xhr.post("backend.php",
{op: "article", method: "setScore", "ids[]": ops.rescore[score], score: score})); {op: "Article", method: "setScore", "ids[]": ops.rescore[score], score: score}));
}); });
} }
@ -1132,7 +1132,7 @@ const Headlines = {
} }
const query = { const query = {
op: "article", method: "removeFromLabel", op: "Article", method: "removeFromLabel",
ids: ids.toString(), lid: id ids: ids.toString(), lid: id
}; };
@ -1149,7 +1149,7 @@ const Headlines = {
} }
const query = { const query = {
op: "article", method: "assignToLabel", op: "Article", method: "assignToLabel",
ids: ids.toString(), lid: id ids: ids.toString(), lid: id
}; };
@ -1181,7 +1181,7 @@ const Headlines = {
return; return;
} }
const query = {op: "rpc", method: "delete", ids: rows.toString()}; const query = {op: "RPC", method: "delete", ids: rows.toString()};
xhr.json("backend.php", query, () => { xhr.json("backend.php", query, () => {
Feeds.reloadCurrent(); Feeds.reloadCurrent();
@ -1586,7 +1586,7 @@ const Headlines = {
menu.addChild(new dijit.MenuItem({ menu.addChild(new dijit.MenuItem({
label: __("Open site"), label: __("Open site"),
onClick: function() { onClick: function() {
App.postOpenWindow("backend.php", {op: "feeds", method: "opensite", App.postOpenWindow("backend.php", {op: "Feeds", method: "opensite",
feed_id: this.getParent().currentTarget.getAttribute("data-feed-id"), csrf_token: __csrf_token}); feed_id: this.getParent().currentTarget.getAttribute("data-feed-id"), csrf_token: __csrf_token});
}})); }}));
@ -1596,7 +1596,7 @@ const Headlines = {
label: __("Debug feed"), label: __("Debug feed"),
onClick: function() { onClick: function() {
/* global __csrf_token */ /* global __csrf_token */
App.postOpenWindow("backend.php", {op: "feeds", method: "updatedebugger", App.postOpenWindow("backend.php", {op: "Feeds", method: "updatedebugger",
feed_id: this.getParent().currentTarget.getAttribute("data-feed-id"), csrf_token: __csrf_token}); feed_id: this.getParent().currentTarget.getAttribute("data-feed-id"), csrf_token: __csrf_token});
}})); }}));

View File

@ -8,7 +8,7 @@ define(["dojo/_base/declare", "dojo/data/ItemFileWriteStore"], function (declare
dojo.xhrPost({ dojo.xhrPost({
url: "backend.php", url: "backend.php",
content: {op: "pref-feeds", method: "savefeedorder", content: {op: "Pref_Feeds", method: "savefeedorder",
payload: newFileContentString}, payload: newFileContentString},
error: saveFailedCallback, error: saveFailedCallback,
load: saveCompleteCallback}); load: saveCompleteCallback});

View File

@ -150,7 +150,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dojo/_b
const searchElem = App.byId("feed_search"); const searchElem = App.byId("feed_search");
const search = (searchElem) ? searchElem.value : ""; const search = (searchElem) ? searchElem.value : "";
xhr.post("backend.php", { op: "pref-feeds", search: search }, (reply) => { xhr.post("backend.php", { op: "Pref_Feeds", search: search }, (reply) => {
dijit.byId('feedsTab').attr('content', reply); dijit.byId('feedsTab').attr('content', reply);
Notify.close(); Notify.close();
}); });
@ -185,14 +185,14 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dojo/_b
resetFeedOrder: function() { resetFeedOrder: function() {
Notify.progress("Loading, please wait..."); Notify.progress("Loading, please wait...");
xhr.post("backend.php", {op: "pref-feeds", method: "feedsortreset"}, () => { xhr.post("backend.php", {op: "Pref_Feeds", method: "feedsortreset"}, () => {
this.reload(); this.reload();
}); });
}, },
resetCatOrder: function() { resetCatOrder: function() {
Notify.progress("Loading, please wait..."); Notify.progress("Loading, please wait...");
xhr.post("backend.php", {op: "pref-feeds", method: "catsortreset"}, () => { xhr.post("backend.php", {op: "Pref_Feeds", method: "catsortreset"}, () => {
this.reload(); this.reload();
}); });
}, },
@ -200,7 +200,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dojo/_b
if (confirm(__("Remove category %s? Any nested feeds would be placed into Uncategorized.").replace("%s", item.name))) { if (confirm(__("Remove category %s? Any nested feeds would be placed into Uncategorized.").replace("%s", item.name))) {
Notify.progress("Removing category..."); Notify.progress("Removing category...");
xhr.post("backend.php", {op: "pref-feeds", method: "removeCat", ids: id}, () => { xhr.post("backend.php", {op: "Pref_Feeds", method: "removeCat", ids: id}, () => {
Notify.close(); Notify.close();
this.reload(); this.reload();
}); });
@ -215,7 +215,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dojo/_b
Notify.progress("Unsubscribing from selected feeds...", true); Notify.progress("Unsubscribing from selected feeds...", true);
const query = { const query = {
op: "pref-feeds", method: "remove", op: "Pref_Feeds", method: "remove",
ids: sel_rows.toString() ids: sel_rows.toString()
}; };
@ -231,14 +231,14 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dojo/_b
return false; return false;
}, },
checkErrorFeeds: function() { checkErrorFeeds: function() {
xhr.json("backend.php", {op: "pref-feeds", method: "feedsWithErrors"}, (reply) => { xhr.json("backend.php", {op: "Pref_Feeds", method: "feedsWithErrors"}, (reply) => {
if (reply.length > 0) { if (reply.length > 0) {
Element.show(dijit.byId("pref_feeds_errors_btn").domNode); Element.show(dijit.byId("pref_feeds_errors_btn").domNode);
} }
}); });
}, },
checkInactiveFeeds: function() { checkInactiveFeeds: function() {
xhr.json("backend.php", {op: "pref-feeds", method: "inactivefeeds"}, (reply) => { xhr.json("backend.php", {op: "Pref_Feeds", method: "inactivefeeds"}, (reply) => {
if (reply.length > 0) { if (reply.length > 0) {
Element.show(dijit.byId("pref_feeds_inactive_btn").domNode); Element.show(dijit.byId("pref_feeds_inactive_btn").domNode);
} }
@ -264,7 +264,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dojo/_b
Notify.progress("Removing selected categories..."); Notify.progress("Removing selected categories...");
const query = { const query = {
op: "pref-feeds", method: "removeCat", op: "Pref_Feeds", method: "removeCat",
ids: sel_rows.toString() ids: sel_rows.toString()
}; };
@ -316,7 +316,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dojo/_b
Notify.progress("Loading, please wait..."); Notify.progress("Loading, please wait...");
xhr.post("backend.php", {op: "pref-feeds", method: "editfeeds", ids: rows.toString()}, (reply) => { xhr.post("backend.php", {op: "Pref_Feeds", method: "editfeeds", ids: rows.toString()}, (reply) => {
Notify.close(); Notify.close();
try { try {
@ -393,7 +393,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dojo/_b
Notify.progress("Loading, please wait..."); Notify.progress("Loading, please wait...");
xhr.post("backend.php", { op: 'pref-feeds', method: 'renamecat', id: id, title: new_name }, () => { xhr.post("backend.php", { op: 'Pref_Feeds', method: 'renamecat', id: id, title: new_name }, () => {
this.reload(); this.reload();
}); });
} }
@ -404,14 +404,14 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dojo/_b
if (title) { if (title) {
Notify.progress("Creating category..."); Notify.progress("Creating category...");
xhr.post("backend.php", {op: "pref-feeds", method: "addCat", cat: title}, () => { xhr.post("backend.php", {op: "Pref_Feeds", method: "addCat", cat: title}, () => {
Notify.close(); Notify.close();
this.reload(); this.reload();
}); });
} }
}, },
batchSubscribe: function() { batchSubscribe: function() {
xhr.json("backend.php", {op: 'pref-feeds', method: 'batchSubscribe'}, (reply) => { xhr.json("backend.php", {op: 'Pref_Feeds', method: 'batchSubscribe'}, (reply) => {
const dialog = new fox.SingleUseDialog({ const dialog = new fox.SingleUseDialog({
id: "batchSubDlg", id: "batchSubDlg",
title: __("Batch subscribe"), title: __("Batch subscribe"),
@ -431,7 +431,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dojo/_b
}, },
content: ` content: `
<form onsubmit='return false'> <form onsubmit='return false'>
${App.FormFields.hidden_tag("op", "pref-feeds")} ${App.FormFields.hidden_tag("op", "Pref_Feeds")}
${App.FormFields.hidden_tag("method", "batchaddfeeds")} ${App.FormFields.hidden_tag("method", "batchaddfeeds")}
<header class='horizontal'> <header class='horizontal'>
@ -484,7 +484,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dojo/_b
}); });
}, },
showInactiveFeeds: function() { showInactiveFeeds: function() {
xhr.json("backend.php", {op: 'pref-feeds', method: 'inactivefeeds'}, function (reply) { xhr.json("backend.php", {op: 'Pref_Feeds', method: 'inactivefeeds'}, function (reply) {
const dialog = new fox.SingleUseDialog({ const dialog = new fox.SingleUseDialog({
id: "inactiveFeedsDlg", id: "inactiveFeedsDlg",
@ -500,7 +500,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dojo/_b
Notify.progress("Removing selected feeds...", true); Notify.progress("Removing selected feeds...", true);
const query = { const query = {
op: "pref-feeds", method: "remove", op: "Pref_Feeds", method: "remove",
ids: sel_rows.toString() ids: sel_rows.toString()
}; };

View File

@ -9,7 +9,7 @@ define(["dojo/_base/declare", "dojo/data/ItemFileWriteStore"], function (declare
dojo.xhrPost({ dojo.xhrPost({
url: "backend.php", url: "backend.php",
content: { content: {
op: "pref-filters", method: "savefilterorder", op: "Pref_Filters", method: "savefilterorder",
payload: newFileContentString payload: newFileContentString
}, },
error: saveFailedCallback, error: saveFailedCallback,

View File

@ -107,7 +107,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree"], functio
let search = ""; let search = "";
if (user_search) { search = user_search.value; } if (user_search) { search = user_search.value; }
xhr.post("backend.php", { op: "pref-filters", search: search }, (reply) => { xhr.post("backend.php", { op: "Pref_Filters", search: search }, (reply) => {
dijit.byId('filtersTab').attr('content', reply); dijit.byId('filtersTab').attr('content', reply);
Notify.close(); Notify.close();
}); });
@ -125,7 +125,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree"], functio
resetFilterOrder: function() { resetFilterOrder: function() {
Notify.progress("Loading, please wait..."); Notify.progress("Loading, please wait...");
xhr.post("backend.php", {op: "pref-filters", method: "filtersortreset"}, () => { xhr.post("backend.php", {op: "Pref_Filters", method: "filtersortreset"}, () => {
this.reload(); this.reload();
}); });
}, },
@ -140,7 +140,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree"], functio
if (confirm(__("Combine selected filters?"))) { if (confirm(__("Combine selected filters?"))) {
Notify.progress("Joining filters..."); Notify.progress("Joining filters...");
xhr.post("backend.php", {op: "pref-filters", method: "join", ids: rows.toString()}, () => { xhr.post("backend.php", {op: "Pref_Filters", method: "join", ids: rows.toString()}, () => {
this.reload(); this.reload();
}); });
} }
@ -153,7 +153,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree"], functio
Notify.progress("Removing selected filters..."); Notify.progress("Removing selected filters...");
const query = { const query = {
op: "pref-filters", method: "remove", op: "Pref_Filters", method: "remove",
ids: sel_rows.toString() ids: sel_rows.toString()
}; };

View File

@ -19,7 +19,7 @@ const Helpers = {
alert("No passwords selected."); alert("No passwords selected.");
} else if (confirm(__("Remove selected app passwords?"))) { } else if (confirm(__("Remove selected app passwords?"))) {
xhr.post("backend.php", {op: "pref-prefs", method: "deleteAppPasswords", "ids[]": rows}, (reply) => { xhr.post("backend.php", {op: "Pref_Prefs", method: "deleteAppPasswords", "ids[]": rows}, (reply) => {
this.updateContent(reply); this.updateContent(reply);
Notify.close(); Notify.close();
}); });
@ -31,7 +31,7 @@ const Helpers = {
const title = prompt("Password description:") const title = prompt("Password description:")
if (title) { if (title) {
xhr.post("backend.php", {op: "pref-prefs", method: "generateAppPassword", title: title}, (reply) => { xhr.post("backend.php", {op: "Pref_Prefs", method: "generateAppPassword", title: title}, (reply) => {
this.updateContent(reply); this.updateContent(reply);
Notify.close(); Notify.close();
}); });
@ -45,7 +45,7 @@ const Helpers = {
if (confirm(__("This will invalidate all previously generated feed URLs. Continue?"))) { if (confirm(__("This will invalidate all previously generated feed URLs. Continue?"))) {
Notify.progress("Clearing URLs..."); Notify.progress("Clearing URLs...");
xhr.post("backend.php", {op: "pref-feeds", method: "clearKeys"}, () => { xhr.post("backend.php", {op: "Pref_Feeds", method: "clearKeys"}, () => {
Notify.info("Generated URLs cleared."); Notify.info("Generated URLs cleared.");
}); });
} }
@ -71,7 +71,7 @@ const Helpers = {
const tmph = dojo.connect(dialog, 'onShow', function () { const tmph = dojo.connect(dialog, 'onShow', function () {
dojo.disconnect(tmph); dojo.disconnect(tmph);
xhr.json("backend.php", {op: "pref-prefs", method: "previewDigest"}, (reply) => { xhr.json("backend.php", {op: "Pref_Prefs", method: "previewDigest"}, (reply) => {
dialog.domNode.querySelector('.digest-preview').innerHTML = reply[0]; dialog.domNode.querySelector('.digest-preview').innerHTML = reply[0];
}); });
}); });
@ -91,7 +91,7 @@ const Helpers = {
}, },
update: function() { update: function() {
xhr.post("backend.php", { xhr.post("backend.php", {
op: "pref-system", op: "Pref_System",
severity: dijit.byId("severity").attr('value'), severity: dijit.byId("severity").attr('value'),
page: Helpers.EventLog.log_page page: Helpers.EventLog.log_page
}, (reply) => { }, (reply) => {
@ -114,7 +114,7 @@ const Helpers = {
Notify.progress("Loading, please wait..."); Notify.progress("Loading, please wait...");
xhr.post("backend.php", {op: "pref-system", method: "clearLog"}, () => { xhr.post("backend.php", {op: "Pref_System", method: "clearLog"}, () => {
Helpers.EventLog.refresh(); Helpers.EventLog.refresh();
}); });
} }
@ -135,7 +135,7 @@ const Helpers = {
const new_title = prompt(__("Name for cloned profile:")); const new_title = prompt(__("Name for cloned profile:"));
if (new_title) { if (new_title) {
xhr.post("backend.php", {op: "pref-prefs", method: "cloneprofile", "new_title": new_title, "old_profile": sel_rows[0]}, () => { xhr.post("backend.php", {op: "Pref_Prefs", method: "cloneprofile", "new_title": new_title, "old_profile": sel_rows[0]}, () => {
Notify.close(); Notify.close();
dialog.refresh(); dialog.refresh();
}); });
@ -153,7 +153,7 @@ const Helpers = {
if (confirm(__("Remove selected profiles? Active and default profiles will not be removed."))) { if (confirm(__("Remove selected profiles? Active and default profiles will not be removed."))) {
Notify.progress("Removing selected profiles...", true); Notify.progress("Removing selected profiles...", true);
xhr.post("backend.php", {op: "pref-prefs", method: "remprofiles", "ids[]": sel_rows}, () => { xhr.post("backend.php", {op: "Pref_Prefs", method: "remprofiles", "ids[]": sel_rows}, () => {
Notify.close(); Notify.close();
dialog.refresh(); dialog.refresh();
}); });
@ -167,7 +167,7 @@ const Helpers = {
if (this.validate()) { if (this.validate()) {
Notify.progress("Creating profile...", true); Notify.progress("Creating profile...", true);
const query = {op: "pref-prefs", method: "addprofile", title: dialog.attr('value').newprofile}; const query = {op: "Pref_Prefs", method: "addprofile", title: dialog.attr('value').newprofile};
xhr.post("backend.php", query, () => { xhr.post("backend.php", query, () => {
Notify.close(); Notify.close();
@ -177,7 +177,7 @@ const Helpers = {
} }
}, },
refresh: function() { refresh: function() {
xhr.json("backend.php", {op: 'pref-prefs', method: 'getprofiles'}, (reply) => { xhr.json("backend.php", {op: 'Pref_Prefs', method: 'getprofiles'}, (reply) => {
dialog.attr('content', ` dialog.attr('content', `
<div dojoType='fox.Toolbar'> <div dojoType='fox.Toolbar'>
<div dojoType='fox.form.DropDownButton'> <div dojoType='fox.form.DropDownButton'>
@ -210,7 +210,7 @@ const Helpers = {
profile-id='${profile.id}'>${profile.title} profile-id='${profile.id}'>${profile.title}
<script type='dojo/method' event='onChange' args='value'> <script type='dojo/method' event='onChange' args='value'>
xhr.post("backend.php", xhr.post("backend.php",
{op: 'pref-prefs', method: 'saveprofile', value: value, id: this.attr('profile-id')}, () => { {op: 'Pref_Prefs', method: 'saveprofile', value: value, id: this.attr('profile-id')}, () => {
// //
}); });
</script> </script>
@ -242,7 +242,7 @@ const Helpers = {
if (confirm(__("Activate selected profile?"))) { if (confirm(__("Activate selected profile?"))) {
Notify.progress("Loading, please wait..."); Notify.progress("Loading, please wait...");
xhr.post("backend.php", {op: "pref-prefs", method: "activateprofile", id: sel_rows.toString()}, () => { xhr.post("backend.php", {op: "Pref_Prefs", method: "activateprofile", id: sel_rows.toString()}, () => {
window.location.reload(); window.location.reload();
}); });
} }
@ -312,7 +312,7 @@ const Helpers = {
const tmph = dojo.connect(dialog, 'onShow', function () { const tmph = dojo.connect(dialog, 'onShow', function () {
dojo.disconnect(tmph); dojo.disconnect(tmph);
xhr.json("backend.php", {op: "pref-prefs", method: "customizeCSS"}, (reply) => { xhr.json("backend.php", {op: "Pref_Prefs", method: "customizeCSS"}, (reply) => {
const editor = dijit.getEnclosingWidget(dialog.domNode.querySelector(".user-css-editor")); const editor = dijit.getEnclosingWidget(dialog.domNode.querySelector(".user-css-editor"));
@ -327,14 +327,14 @@ const Helpers = {
}, },
confirmReset: function() { confirmReset: function() {
if (confirm(__("Reset to defaults?"))) { if (confirm(__("Reset to defaults?"))) {
xhr.post("backend.php", {op: "pref-prefs", method: "resetconfig"}, (reply) => { xhr.post("backend.php", {op: "Pref_Prefs", method: "resetconfig"}, (reply) => {
Helpers.Prefs.refresh(); Helpers.Prefs.refresh();
Notify.info(reply); Notify.info(reply);
}); });
} }
}, },
refresh: function() { refresh: function() {
xhr.post("backend.php", { op: "pref-prefs" }, (reply) => { xhr.post("backend.php", { op: "Pref_Prefs" }, (reply) => {
dijit.byId('prefsTab').attr('content', reply); dijit.byId('prefsTab').attr('content', reply);
Notify.close(); Notify.close();
}); });
@ -360,7 +360,7 @@ const Helpers = {
this.render_contents(); this.render_contents();
}, },
reload: function() { reload: function() {
xhr.json("backend.php", {op: "pref-prefs", method: "getPluginsList"}, (reply) => { xhr.json("backend.php", {op: "Pref_Prefs", method: "getPluginsList"}, (reply) => {
this._list_of_plugins = reply; this._list_of_plugins = reply;
this.render_contents(); this.render_contents();
}, (e) => { }, (e) => {
@ -444,7 +444,7 @@ const Helpers = {
if (confirm(__("Clear stored data for %s?").replace("%s", name))) { if (confirm(__("Clear stored data for %s?").replace("%s", name))) {
Notify.progress("Loading, please wait..."); Notify.progress("Loading, please wait...");
xhr.post("backend.php", {op: "pref-prefs", method: "clearPluginData", name: name}, () => { xhr.post("backend.php", {op: "Pref_Prefs", method: "clearPluginData", name: name}, () => {
Helpers.Prefs.refresh(); Helpers.Prefs.refresh();
}); });
} }
@ -455,7 +455,7 @@ const Helpers = {
if (confirm(msg)) { if (confirm(msg)) {
Notify.progress("Loading, please wait..."); Notify.progress("Loading, please wait...");
xhr.json("backend.php", {op: "pref-prefs", method: "uninstallPlugin", plugin: plugin}, (reply) => { xhr.json("backend.php", {op: "Pref_Prefs", method: "uninstallPlugin", plugin: plugin}, (reply) => {
if (reply && reply.status == 1) if (reply && reply.status == 1)
Helpers.Plugins.reload(); Helpers.Plugins.reload();
else { else {
@ -504,7 +504,7 @@ const Helpers = {
const container = install_dialog.domNode.querySelector(".contents"); const container = install_dialog.domNode.querySelector(".contents");
xhr.json("backend.php", {op: "pref-prefs", method: "installPlugin", plugin: plugin}, (reply) => { xhr.json("backend.php", {op: "Pref_Prefs", method: "installPlugin", plugin: plugin}, (reply) => {
if (!reply) { if (!reply) {
container.innerHTML = `<li class='text-center text-error'>${__("Operation failed: check event log.")}</li>`; container.innerHTML = `<li class='text-center text-error'>${__("Operation failed: check event log.")}</li>`;
} else { } else {
@ -603,7 +603,7 @@ const Helpers = {
const container = dialog.domNode.querySelector(".contents"); const container = dialog.domNode.querySelector(".contents");
container.innerHTML = `<li class='text-center'>${__("Looking for plugins...")}</li>`; container.innerHTML = `<li class='text-center'>${__("Looking for plugins...")}</li>`;
xhr.json("backend.php", {op: "pref-prefs", method: "getAvailablePlugins"}, (reply) => { xhr.json("backend.php", {op: "Pref_Prefs", method: "getAvailablePlugins"}, (reply) => {
dialog.entries = reply; dialog.entries = reply;
dialog.render_contents(); dialog.render_contents();
}); });
@ -656,7 +656,7 @@ const Helpers = {
container.innerHTML = `<li class='text-center'>${__("Updating, please wait...")}</li>`; container.innerHTML = `<li class='text-center'>${__("Updating, please wait...")}</li>`;
let enable_update_btn = false; let enable_update_btn = false;
xhr.json("backend.php", {op: "pref-prefs", method: "updateLocalPlugins", plugins: dialog.plugins_to_update.join(",")}, (reply) => { xhr.json("backend.php", {op: "Pref_Prefs", method: "updateLocalPlugins", plugins: dialog.plugins_to_update.join(",")}, (reply) => {
if (!reply) { if (!reply) {
container.innerHTML = `<li class='text-center text-error'>${__("Operation failed: check event log.")}</li>`; container.innerHTML = `<li class='text-center text-error'>${__("Operation failed: check event log.")}</li>`;
@ -717,7 +717,7 @@ const Helpers = {
//container.innerHTML = `<li class='text-center'>${__("Checking: %s...").replace("%s", name)}</li>`; //container.innerHTML = `<li class='text-center'>${__("Checking: %s...").replace("%s", name)}</li>`;
xhr.json("backend.php", {op: "pref-prefs", method: "checkForPluginUpdates", name: name}, (reply) => { xhr.json("backend.php", {op: "Pref_Prefs", method: "checkForPluginUpdates", name: name}, (reply) => {
if (!reply) { if (!reply) {
container.innerHTML += `<li class='text-error'>${__("%s: Operation failed: check event log.").replace("%s", name)}</li>`; container.innerHTML += `<li class='text-error'>${__("%s: Operation failed: check event log.").replace("%s", name)}</li>`;
@ -834,7 +834,7 @@ const Helpers = {
}, },
export: function() { export: function() {
console.log("export"); console.log("export");
window.open("backend.php?op=opml&method=export&" + dojo.formToQuery("opmlExportForm")); window.open("backend.php?op=OPML&method=export&" + dojo.formToQuery("opmlExportForm"));
}, },
} }
}; };

View File

@ -55,13 +55,13 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dijit/f
return rv; return rv;
}, },
reload: function() { reload: function() {
xhr.post("backend.php", { op: "pref-labels" }, (reply) => { xhr.post("backend.php", { op: "Pref_Labels" }, (reply) => {
dijit.byId('labelsTab').attr('content', reply); dijit.byId('labelsTab').attr('content', reply);
Notify.close(); Notify.close();
}); });
}, },
editLabel: function(id) { editLabel: function(id) {
xhr.json("backend.php", {op: "pref-labels", method: "edit", id: id}, (reply) => { xhr.json("backend.php", {op: "Pref_Labels", method: "edit", id: id}, (reply) => {
const fg_color = reply['fg_color']; const fg_color = reply['fg_color'];
const bg_color = reply['bg_color'] ? reply['bg_color'] : '#fff7d5'; const bg_color = reply['bg_color'] ? reply['bg_color'] : '#fff7d5';
@ -91,7 +91,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dijit/f
} }
const query = { const query = {
op: "pref-labels", method: "colorset", kind: kind, op: "Pref_Labels", method: "colorset", kind: kind,
ids: id, fg: fg, bg: bg, color: color ids: id, fg: fg, bg: bg, color: color
}; };
@ -131,7 +131,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dijit/f
</section> </section>
${App.FormFields.hidden_tag('id', id)} ${App.FormFields.hidden_tag('id', id)}
${App.FormFields.hidden_tag('op', 'pref-labels')} ${App.FormFields.hidden_tag('op', 'Pref_Labels')}
${App.FormFields.hidden_tag('method', 'save')} ${App.FormFields.hidden_tag('method', 'save')}
${App.FormFields.hidden_tag('fg_color', fg_color, {}, 'labelEdit_fgColor')} ${App.FormFields.hidden_tag('fg_color', fg_color, {}, 'labelEdit_fgColor')}
@ -189,7 +189,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dijit/f
if (confirm(__("Reset selected labels to default colors?"))) { if (confirm(__("Reset selected labels to default colors?"))) {
const query = { const query = {
op: "pref-labels", method: "colorreset", op: "Pref_Labels", method: "colorreset",
ids: labels.toString() ids: labels.toString()
}; };
@ -210,7 +210,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dijit/f
Notify.progress("Removing selected labels..."); Notify.progress("Removing selected labels...");
const query = { const query = {
op: "pref-labels", method: "remove", op: "Pref_Labels", method: "remove",
ids: sel_rows.toString() ids: sel_rows.toString()
}; };

View File

@ -8,7 +8,7 @@ const Users = {
const user_search = App.byId("user_search"); const user_search = App.byId("user_search");
const search = user_search ? user_search.value : ""; const search = user_search ? user_search.value : "";
xhr.post("backend.php", { op: "pref-users", sort: sort, search: search }, (reply) => { xhr.post("backend.php", { op: "Pref_Users", sort: sort, search: search }, (reply) => {
dijit.byId('usersTab').attr('content', reply); dijit.byId('usersTab').attr('content', reply);
Notify.close(); Notify.close();
resolve(); resolve();
@ -21,7 +21,7 @@ const Users = {
if (login) { if (login) {
Notify.progress("Adding user..."); Notify.progress("Adding user...");
xhr.post("backend.php", {op: "pref-users", method: "add", login: login}, (reply) => { xhr.post("backend.php", {op: "Pref_Users", method: "add", login: login}, (reply) => {
Users.reload().then(() => { Users.reload().then(() => {
Notify.info(reply); Notify.info(reply);
}) })
@ -30,7 +30,7 @@ const Users = {
} }
}, },
edit: function(id) { edit: function(id) {
xhr.json('backend.php', {op: 'pref-users', method: 'edit', id: id}, (reply) => { xhr.json('backend.php', {op: 'Pref_Users', method: 'edit', id: id}, (reply) => {
const user = reply.user; const user = reply.user;
const admin_disabled = (user.id == 1); const admin_disabled = (user.id == 1);
@ -53,7 +53,7 @@ const Users = {
<form onsubmit='return false'> <form onsubmit='return false'>
${App.FormFields.hidden_tag('id', user.id.toString())} ${App.FormFields.hidden_tag('id', user.id.toString())}
${App.FormFields.hidden_tag('op', 'pref-users')} ${App.FormFields.hidden_tag('op', 'Pref_Users')}
${App.FormFields.hidden_tag('method', 'editSave')} ${App.FormFields.hidden_tag('method', 'editSave')}
<div dojoType="dijit.layout.TabContainer" style="height : 400px"> <div dojoType="dijit.layout.TabContainer" style="height : 400px">
@ -104,7 +104,7 @@ const Users = {
<div dojoType="dijit.layout.ContentPane" title="${__('User details')}"> <div dojoType="dijit.layout.ContentPane" title="${__('User details')}">
<script type='dojo/method' event='onShow' args='evt'> <script type='dojo/method' event='onShow' args='evt'>
if (this.domNode.querySelector('.loading')) { if (this.domNode.querySelector('.loading')) {
xhr.post("backend.php", {op: 'pref-users', method: 'userdetails', id: ${user.id}}, (reply) => { xhr.post("backend.php", {op: 'Pref_Users', method: 'userdetails', id: ${user.id}}, (reply) => {
this.attr('content', reply); this.attr('content', reply);
}); });
} }
@ -147,7 +147,7 @@ const Users = {
const id = rows[0]; const id = rows[0];
xhr.post("backend.php", {op: "pref-users", method: "resetPass", id: id}, (reply) => { xhr.post("backend.php", {op: "Pref_Users", method: "resetPass", id: id}, (reply) => {
Notify.close(); Notify.close();
Notify.info(reply, true); Notify.info(reply, true);
}); });
@ -162,7 +162,7 @@ const Users = {
Notify.progress("Removing selected users..."); Notify.progress("Removing selected users...");
const query = { const query = {
op: "pref-users", method: "remove", op: "Pref_Users", method: "remove",
ids: sel_rows.toString() ids: sel_rows.toString()
}; };

View File

@ -142,26 +142,26 @@
<div id="main" dojoType="dijit.layout.BorderContainer"> <div id="main" dojoType="dijit.layout.BorderContainer">
<div dojoType="dijit.layout.TabContainer" region="center" id="pref-tabs"> <div dojoType="dijit.layout.TabContainer" region="center" id="pref-tabs">
<div id="prefsTab" dojoType="dijit.layout.ContentPane" <div id="prefsTab" dojoType="dijit.layout.ContentPane"
href="backend.php?op=pref-prefs" href="backend.php?op=Pref_Prefs"
title="<i class='material-icons'>settings</i> <?= __('Preferences') ?>"></div> title="<i class='material-icons'>settings</i> <?= __('Preferences') ?>"></div>
<div id="feedsTab" dojoType="dijit.layout.ContentPane" <div id="feedsTab" dojoType="dijit.layout.ContentPane"
href="backend.php?op=pref-feeds" href="backend.php?op=Pref_Feeds"
title="<i class='material-icons'>rss_feed</i> <?= __('Feeds') ?>"></div> title="<i class='material-icons'>rss_feed</i> <?= __('Feeds') ?>"></div>
<div id="filtersTab" dojoType="dijit.layout.ContentPane" <div id="filtersTab" dojoType="dijit.layout.ContentPane"
style="padding : 0px" style="padding : 0px"
href="backend.php?op=pref-filters" href="backend.php?op=Pref_Filters"
title="<i class='material-icons'>filter_list1</i> <?= __('Filters') ?>"></div> title="<i class='material-icons'>filter_list1</i> <?= __('Filters') ?>"></div>
<div id="labelsTab" dojoType="dijit.layout.ContentPane" <div id="labelsTab" dojoType="dijit.layout.ContentPane"
style="padding : 0px" style="padding : 0px"
href="backend.php?op=pref-labels" href="backend.php?op=Pref_Labels"
title="<i class='material-icons'>label_outline1</i> <?= __('Labels') ?>"></div> title="<i class='material-icons'>label_outline1</i> <?= __('Labels') ?>"></div>
<?php if ($_SESSION["access_level"] >= UserHelper::ACCESS_LEVEL_ADMIN) { ?> <?php if ($_SESSION["access_level"] >= UserHelper::ACCESS_LEVEL_ADMIN) { ?>
<div id="usersTab" dojoType="dijit.layout.ContentPane" <div id="usersTab" dojoType="dijit.layout.ContentPane"
style="padding : 0px" style="padding : 0px"
href="backend.php?op=pref-users" href="backend.php?op=Pref_Users"
title="<i class='material-icons'>person</i> <?= __('Users') ?>"></div> title="<i class='material-icons'>person</i> <?= __('Users') ?>"></div>
<div id="systemTab" dojoType="dijit.layout.ContentPane" <div id="systemTab" dojoType="dijit.layout.ContentPane"
href="backend.php?op=pref-system" href="backend.php?op=Pref_System"
title="<i class='material-icons'>info_outline</i> <?= __('System') ?>"></div> title="<i class='material-icons'>info_outline</i> <?= __('System') ?>"></div>
<?php } ?> <?php } ?>
<?php <?php

View File

@ -41,4 +41,5 @@ return array(
'Doctrine\\Instantiator\\' => array($vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator'), 'Doctrine\\Instantiator\\' => array($vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator'),
'DeepCopy\\' => array($vendorDir . '/myclabs/deep-copy/src/DeepCopy'), 'DeepCopy\\' => array($vendorDir . '/myclabs/deep-copy/src/DeepCopy'),
'Assert\\' => array($vendorDir . '/beberlei/assert/lib/Assert'), 'Assert\\' => array($vendorDir . '/beberlei/assert/lib/Assert'),
'' => array($baseDir . '/classes'),
); );

View File

@ -331,6 +331,10 @@ class ComposerStaticInit19fc2ff1c0f9a92279c7979386bb2056
), ),
); );
public static $fallbackDirsPsr4 = array (
0 => __DIR__ . '/../..' . '/classes',
);
public static $classMap = array ( public static $classMap = array (
'AllowDynamicProperties' => __DIR__ . '/..' . '/symfony/polyfill-php82/Resources/stubs/AllowDynamicProperties.php', 'AllowDynamicProperties' => __DIR__ . '/..' . '/symfony/polyfill-php82/Resources/stubs/AllowDynamicProperties.php',
'Attribute' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Attribute.php', 'Attribute' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Attribute.php',
@ -1071,6 +1075,7 @@ class ComposerStaticInit19fc2ff1c0f9a92279c7979386bb2056
return \Closure::bind(function () use ($loader) { return \Closure::bind(function () use ($loader) {
$loader->prefixLengthsPsr4 = ComposerStaticInit19fc2ff1c0f9a92279c7979386bb2056::$prefixLengthsPsr4; $loader->prefixLengthsPsr4 = ComposerStaticInit19fc2ff1c0f9a92279c7979386bb2056::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInit19fc2ff1c0f9a92279c7979386bb2056::$prefixDirsPsr4; $loader->prefixDirsPsr4 = ComposerStaticInit19fc2ff1c0f9a92279c7979386bb2056::$prefixDirsPsr4;
$loader->fallbackDirsPsr4 = ComposerStaticInit19fc2ff1c0f9a92279c7979386bb2056::$fallbackDirsPsr4;
$loader->classMap = ComposerStaticInit19fc2ff1c0f9a92279c7979386bb2056::$classMap; $loader->classMap = ComposerStaticInit19fc2ff1c0f9a92279c7979386bb2056::$classMap;
}, null, ClassLoader::class); }, null, ClassLoader::class);