mirror of
https://github.com/hkalexling/Mango.git
synced 2025-08-03 11:25:29 -04:00
Instantiate Plugin objects with IDs
This commit is contained in:
parent
361d37d742
commit
0e9a659828
@ -1,16 +1,16 @@
|
||||
const loadPlugin = title => {
|
||||
localStorage.setItem('plugin', title);
|
||||
const loadPlugin = id => {
|
||||
localStorage.setItem('plugin', id);
|
||||
const url = `${location.protocol}//${location.host}${location.pathname}`;
|
||||
const newURL = `${url}?${$.param({
|
||||
plugin: encodeURIComponent(title)
|
||||
plugin: id
|
||||
})}`;
|
||||
window.location.href = newURL;
|
||||
};
|
||||
|
||||
$(() => {
|
||||
var storedTitle = localStorage.getItem('plugin');
|
||||
if (storedTitle && storedTitle !== plugin) {
|
||||
loadPlugin(storedTitle);
|
||||
var storedID = localStorage.getItem('plugin');
|
||||
if (storedID && storedID !== pid) {
|
||||
loadPlugin(storedID);
|
||||
} else {
|
||||
$('#controls').removeAttr('hidden');
|
||||
}
|
||||
@ -20,10 +20,10 @@ $(() => {
|
||||
search();
|
||||
}
|
||||
});
|
||||
$('#plugin-select').val(plugin);
|
||||
$('#plugin-select').val(pid);
|
||||
$('#plugin-select').change(() => {
|
||||
const title = $('#plugin-select').val();
|
||||
loadPlugin(title);
|
||||
const id = $('#plugin-select').val();
|
||||
loadPlugin(id);
|
||||
});
|
||||
});
|
||||
|
||||
@ -39,7 +39,7 @@ const search = () => {
|
||||
url: base_url + 'api/admin/plugin/search',
|
||||
data: JSON.stringify({
|
||||
query: query,
|
||||
plugin: plugin
|
||||
plugin: pid
|
||||
}),
|
||||
contentType: "application/json",
|
||||
dataType: 'json'
|
||||
@ -112,7 +112,7 @@ const download = () => {
|
||||
type: 'POST',
|
||||
url: base_url + 'api/admin/plugin/download',
|
||||
data: JSON.stringify({
|
||||
plugin: plugin,
|
||||
plugin: pid,
|
||||
chapters: chapters,
|
||||
title: mangaTitle
|
||||
}),
|
||||
|
@ -35,7 +35,7 @@ class Plugin
|
||||
raise "Job does not have a plugin ID specificed"
|
||||
end
|
||||
|
||||
plugin = Plugin.new_from_id job.plugin_id.not_nil!
|
||||
plugin = Plugin.new job.plugin_id.not_nil!
|
||||
info = plugin.select_chapter job.plugin_chapter_id.not_nil!
|
||||
|
||||
pages = info["pages"].as_i
|
||||
|
@ -106,28 +106,21 @@ class Plugin
|
||||
|
||||
def self.list
|
||||
self.build_info_ary
|
||||
|
||||
@@info_ary.map &.title
|
||||
@@info_ary.map do |m|
|
||||
{id: m.id, title: m.title}
|
||||
end
|
||||
end
|
||||
|
||||
def info
|
||||
@info.not_nil!
|
||||
end
|
||||
|
||||
def self.new_from_id(id : String)
|
||||
self.build_info_ary
|
||||
|
||||
info = @@info_ary.find { |i| i.id == id }
|
||||
raise Error.new "Plugin with id #{id} not found" unless info
|
||||
self.new info.title
|
||||
end
|
||||
|
||||
def initialize(title : String)
|
||||
def initialize(id : String)
|
||||
Plugin.build_info_ary
|
||||
|
||||
@info = @@info_ary.find { |i| i.title == title }
|
||||
@info = @@info_ary.find { |i| i.id == id }
|
||||
if @info.nil?
|
||||
raise Error.new "Plugin with title #{title} not found"
|
||||
raise Error.new "Plugin with ID #{id} not found"
|
||||
end
|
||||
|
||||
@js_path = File.join info.dir, "index.js"
|
||||
|
@ -80,13 +80,13 @@ class MainRouter < Router
|
||||
|
||||
get "/download/plugins" do |env|
|
||||
begin
|
||||
title = env.params.query["plugin"]?
|
||||
id = env.params.query["plugin"]?
|
||||
plugins = Plugin.list
|
||||
|
||||
if title
|
||||
plugin = Plugin.new URI.decode title
|
||||
if id
|
||||
plugin = Plugin.new id
|
||||
else
|
||||
plugin = Plugin.new plugins[0]
|
||||
plugin = Plugin.new plugins[0][:id]
|
||||
end
|
||||
|
||||
layout "plugin-download"
|
||||
|
@ -22,8 +22,8 @@
|
||||
<label class="uk-form-label" for="plugin-select">Choose a plugin</label>
|
||||
<div class="uk-form-controls">
|
||||
<select id="plugin-select" class="uk-select">
|
||||
<% plugins.each do |s| %>
|
||||
<option><%= s %></option>
|
||||
<% plugins.each do |p| %>
|
||||
<option value="<%= p[:id] %>"><%= p[:title] %></option>
|
||||
<% end %>
|
||||
</select>
|
||||
</div>
|
||||
@ -64,7 +64,7 @@
|
||||
|
||||
<% content_for "script" do %>
|
||||
<script>
|
||||
var plugin = "<%= plugin.info.title %>";
|
||||
var pid = "<%= plugin.info.id %>";
|
||||
</script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.31.3/js/jquery.tablesorter.combined.min.js"></script>
|
||||
|
Loading…
x
Reference in New Issue
Block a user