update counters when downloads initiate from search page
This commit is contained in:
@@ -4,6 +4,7 @@ return [
|
|||||||
'routes' => [
|
'routes' => [
|
||||||
['name' => 'Main#Index', 'url' => '/', 'verb' => 'GET'],
|
['name' => 'Main#Index', 'url' => '/', 'verb' => 'GET'],
|
||||||
['name' => 'Main#Upload', 'url' => '/upload', 'verb' => 'POST'],
|
['name' => 'Main#Upload', 'url' => '/upload', 'verb' => 'POST'],
|
||||||
|
['name' => 'Main#getCounters', 'url' => '/counters', 'verb' => 'GET'],
|
||||||
['name' => 'main#Download', 'url' => '/new', 'verb' => 'POST'],
|
['name' => 'main#Download', 'url' => '/new', 'verb' => 'POST'],
|
||||||
['name' => 'Aria2#Action', 'url' => '/aria2/{path}', 'verb' => 'POST'],
|
['name' => 'Aria2#Action', 'url' => '/aria2/{path}', 'verb' => 'POST'],
|
||||||
['name' => 'Aria2#getStatus', 'url' => '/status/{path}', 'verb' => 'POST'],
|
['name' => 'Aria2#getStatus', 'url' => '/status/{path}', 'verb' => 'POST'],
|
||||||
|
|||||||
@@ -5,17 +5,17 @@ namespace OCA\NCDownloader\Controller;
|
|||||||
use OCA\NCDownloader\Tools\Aria2;
|
use OCA\NCDownloader\Tools\Aria2;
|
||||||
use OCA\NCDownloader\Tools\Counters;
|
use OCA\NCDownloader\Tools\Counters;
|
||||||
use OCA\NCDownloader\Tools\DbHelper;
|
use OCA\NCDownloader\Tools\DbHelper;
|
||||||
|
use OCA\NCDownloader\Tools\folderScan;
|
||||||
use OCA\NCDownloader\Tools\Helper;
|
use OCA\NCDownloader\Tools\Helper;
|
||||||
use OCA\NCDownloader\Tools\Settings;
|
use OCA\NCDownloader\Tools\Settings;
|
||||||
use OCA\NCDownloader\Tools\Youtube;
|
use OCA\NCDownloader\Tools\Youtube;
|
||||||
use OCP\AppFramework\Controller;
|
use OCP\AppFramework\Controller;
|
||||||
use OCP\AppFramework\Http\JSONResponse;
|
use OCP\AppFramework\Http\JSONResponse;
|
||||||
use OCP\AppFramework\Http\TemplateResponse;
|
use OCP\AppFramework\Http\TemplateResponse;
|
||||||
use OCP\IL10N;
|
|
||||||
//use OCP\Files\IRootFolder;
|
//use OCP\Files\IRootFolder;
|
||||||
|
use OCP\IL10N;
|
||||||
use OCP\IRequest;
|
use OCP\IRequest;
|
||||||
use OC_Util;
|
use OC_Util;
|
||||||
use OCA\NCDownloader\Tools\folderScan;
|
|
||||||
|
|
||||||
class MainController extends Controller
|
class MainController extends Controller
|
||||||
{
|
{
|
||||||
@@ -205,5 +205,14 @@ class MainController extends Controller
|
|||||||
$resp = folderScan::create()->scan();
|
$resp = folderScan::create()->scan();
|
||||||
return new JSONResponse($resp);
|
return new JSONResponse($resp);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* @NoAdminRequired
|
||||||
|
* @NoCSRFRequired
|
||||||
|
*/
|
||||||
|
public function getCounters(): JSONResponse
|
||||||
|
{
|
||||||
|
$counter = $this->counters->getCounters();
|
||||||
|
return new JSONResponse(['counter' => $counter]);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,9 @@ const buttonHandler = (event, type) => {
|
|||||||
let url = element.getAttribute("path");
|
let url = element.getAttribute("path");
|
||||||
let row, data = {};
|
let row, data = {};
|
||||||
let removeRow = true;
|
let removeRow = true;
|
||||||
|
if (element.getAttribute("id") == "download-action-button"){
|
||||||
|
helper.getCounters();
|
||||||
|
}
|
||||||
if (row = element.closest('.table-row-search')) {
|
if (row = element.closest('.table-row-search')) {
|
||||||
if (element.className == 'icon-clipboard') {
|
if (element.className == 'icon-clipboard') {
|
||||||
const clippy = new Clipboard(element, row.dataset.link);
|
const clippy = new Clipboard(element, row.dataset.link);
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ class contentTable {
|
|||||||
div.appendChild(document.createTextNode(helper.t('No items')));
|
div.appendChild(document.createTextNode(helper.t('No items')));
|
||||||
this.table.appendChild(div);
|
this.table.appendChild(div);
|
||||||
}
|
}
|
||||||
createHeading(prefix = "table-heading"):HTMLElement {
|
createHeading(prefix = "table-heading"): HTMLElement {
|
||||||
let thead = document.createElement("section");
|
let thead = document.createElement("section");
|
||||||
thead.classList.add(this.headingClass);
|
thead.classList.add(this.headingClass);
|
||||||
let headRow = document.createElement("header");
|
let headRow = document.createElement("header");
|
||||||
@@ -134,16 +134,17 @@ class contentTable {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
createActionButton(name: string, path: string, data: string):HTMLElement {
|
createActionButton(name: string, path: string, data: string): HTMLElement {
|
||||||
let button = document.createElement("button");
|
let button = document.createElement("button");
|
||||||
button.classList.add("icon-" + name);
|
button.classList.add("icon-" + name);
|
||||||
button.setAttribute("path", path);
|
button.setAttribute("path", path);
|
||||||
button.setAttribute("data", data);
|
button.setAttribute("data", data || "nodata");
|
||||||
if (name == 'refresh') {
|
if (name == 'refresh') {
|
||||||
name = helper.t('Redownload');
|
name = helper.t('Redownload');
|
||||||
}
|
}
|
||||||
button.setAttribute("data-tippy-content", helper.ucfirst(name));
|
button.setAttribute("data-tippy-content", helper.ucfirst(name));
|
||||||
button.setAttribute("title", helper.ucfirst(name));
|
button.setAttribute("title", helper.ucfirst(name));
|
||||||
|
button.setAttribute("id", name + "-action-button");
|
||||||
return button;
|
return button;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -139,6 +139,13 @@ const helper = {
|
|||||||
counter.innerHTML = '<div class="number">' + data[key] + '</div>';
|
counter.innerHTML = '<div class="number">' + data[key] + '</div>';
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
getCounters() {
|
||||||
|
let url = helper.generateUrl("apps/ncdownloader/counters");
|
||||||
|
Http.getInstance(url).setMethod("GET").setHandler(function (data) {
|
||||||
|
if (data["counter"])
|
||||||
|
helper.updateCounter(data["counter"]);
|
||||||
|
}).send();
|
||||||
|
},
|
||||||
html2DOM: function (htmlString) {
|
html2DOM: function (htmlString) {
|
||||||
const parser = new window.DOMParser();
|
const parser = new window.DOMParser();
|
||||||
let doc = parser.parseFromString(htmlString, "text/html")
|
let doc = parser.parseFromString(htmlString, "text/html")
|
||||||
|
|||||||
Reference in New Issue
Block a user