91 lines
3.0 KiB
JavaScript
91 lines
3.0 KiB
JavaScript
import helper from './utils/helper'
|
|
import eventHandler from './lib/eventHandler'
|
|
import Http from './lib/http'
|
|
import { translate as t, translatePlural as n } from '@nextcloud/l10n'
|
|
import updatePage from './actions/updatePage'
|
|
import buttonActions from './actions/buttonActions'
|
|
import './css/style.scss'
|
|
import './css/table.scss'
|
|
import { createApp } from 'vue'
|
|
import App from './App';
|
|
import tippy, { delegate } from 'tippy.js';
|
|
import 'tippy.js/dist/tippy.css';
|
|
'use strict'
|
|
import settingsBar from './settingsBar';
|
|
const basePath = "/apps/ncdownloader";
|
|
|
|
|
|
window.addEventListener('DOMContentLoaded', function () {
|
|
|
|
helper.showErrors('[data-error-message]');
|
|
updatePage.run();
|
|
buttonActions.run();
|
|
let container = 'ncdownloader-form-wrapper';
|
|
const dataContainerID = "app-settings-data";
|
|
let app = createApp(App);
|
|
let bar = createApp(settingsBar);
|
|
|
|
const dataContainer = document.getElementById(dataContainerID);
|
|
let values = {};
|
|
try {
|
|
let settings = dataContainer.getAttribute("data-settings");
|
|
let searchSites = dataContainer.getAttribute("data-search-sites");
|
|
values['settings'] = JSON.parse(settings);
|
|
values['search_sites'] = JSON.parse(searchSites);
|
|
} catch (e) {
|
|
values = {}
|
|
console.log(e);
|
|
}
|
|
bar.provide('settings', values['settings']);
|
|
bar.mount("#" + "app-settings-content");
|
|
app.provide('settings', values);
|
|
let vm = app.mount('#' + container);
|
|
helper.addVue(vm.$options.name, vm);
|
|
|
|
eventHandler.add("click", "#start-aria2", "button", function (e) {
|
|
const path = basePath + "/aria2/start";
|
|
let element = e.target
|
|
if (element.classList.contains("notinstalled")) {
|
|
return;
|
|
}
|
|
let parent = element.parentElement;
|
|
let oldHtml = parent.innerHTML;
|
|
parent.innerHTML = helper.loadingTpl();
|
|
let url = helper.generateUrl(path);
|
|
const callback = function (parent, html, data) {
|
|
parent.innerHTML = html;
|
|
|
|
if (!data.status) {
|
|
if (data.error)
|
|
helper.error(data.error);
|
|
return;
|
|
}
|
|
let element = document.querySelector("#start-aria2 button");
|
|
let aria2 = element.getAttribute("data-aria2");
|
|
if (!aria2) {
|
|
return;
|
|
}
|
|
if (aria2 === 'on') {
|
|
element.setAttribute("data-aria2", "off");
|
|
element.textContent = t("ncdownloader", "Start Aria2");
|
|
} else {
|
|
element.setAttribute("data-aria2", "on");
|
|
element.textContent = t("ncdownloader", "Stop Aria2");
|
|
}
|
|
}
|
|
Http.getInstance(url).setHandler(function (data) {
|
|
callback(parent, oldHtml, data);
|
|
}).send();
|
|
})
|
|
eventHandler.add("click", "#app-navigation", "#search-download", helper.showDownload);
|
|
delegate('#app-ncdownloader-wrapper',
|
|
{ target: '[data-tippy-content]' }
|
|
);
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|