mirror of
https://github.com/hkalexling/Mango.git
synced 2025-08-02 10:55:30 -04:00
Hide subscribe button when not subscribable
This commit is contained in:
parent
2d97faa7c0
commit
30d5ad0c19
@ -1,6 +1,7 @@
|
||||
const component = () => {
|
||||
return {
|
||||
plugins: [],
|
||||
subscribable: false,
|
||||
info: undefined,
|
||||
pid: undefined,
|
||||
chapters: undefined, // undefined: not searched yet, []: empty
|
||||
@ -60,6 +61,7 @@ const component = () => {
|
||||
.then((data) => {
|
||||
if (!data.success) throw new Error(data.error);
|
||||
this.info = data.info;
|
||||
this.subscribable = data.subscribable;
|
||||
this.pid = pid;
|
||||
})
|
||||
.catch((e) => {
|
||||
@ -140,6 +142,7 @@ const component = () => {
|
||||
if (!query) return;
|
||||
|
||||
this.manga = undefined;
|
||||
this.mid = undefined;
|
||||
if (this.info.version === 1) {
|
||||
this.searchChapters(query);
|
||||
} else {
|
||||
|
@ -38,6 +38,7 @@ class Logger
|
||||
Log.setup do |c|
|
||||
c.bind "*", @@severity, @backend
|
||||
c.bind "db.*", :error, @backend
|
||||
c.bind "duktape", :none, @backend
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -223,6 +223,10 @@ class Plugin
|
||||
raise Error.new "Missing required fields in the Page type"
|
||||
end
|
||||
|
||||
def can_subscribe? : Bool
|
||||
info.version > 1 && eval_exists?("newChapters")
|
||||
end
|
||||
|
||||
def search_manga(query : String)
|
||||
if info.version == 1
|
||||
raise Error.new "Manga searching is only available for plugins " \
|
||||
@ -327,6 +331,15 @@ class Plugin
|
||||
JSON.parse eval(str).as String
|
||||
end
|
||||
|
||||
private def eval_exists?(str) : Bool
|
||||
@rt.eval str
|
||||
true
|
||||
rescue e : Duktape::ReferenceError
|
||||
false
|
||||
rescue e : Duktape::Error
|
||||
raise Error.new e.message
|
||||
end
|
||||
|
||||
private def def_helper_functions(sbx)
|
||||
sbx.push_object
|
||||
|
||||
|
@ -871,6 +871,7 @@ struct APIRouter
|
||||
"version" => Int32,
|
||||
"settings" => {} of String => String,
|
||||
},
|
||||
"subscribable" => Bool,
|
||||
}
|
||||
get "/api/admin/plugin/info" do |env|
|
||||
begin
|
||||
@ -878,6 +879,7 @@ struct APIRouter
|
||||
send_json env, {
|
||||
"success" => true,
|
||||
"info" => plugin.info,
|
||||
"subscribable" => plugin.can_subscribe?,
|
||||
}.to_json
|
||||
rescue e
|
||||
Logger.error e
|
||||
|
@ -133,8 +133,10 @@
|
||||
</template>
|
||||
<button class="uk-button uk-button-primary" @click.prevent="applyFilters()">Apply</button>
|
||||
<button class="uk-button uk-button-default" @click.prevent="clearFilters()">Clear</button>
|
||||
<span x-show="subscribable">
|
||||
<span class="uk-divider-vertical uk-margin-left uk-margin-right"></span>
|
||||
<button class="uk-button uk-button-default" @click.prevent="UIkit.modal($refs.modal).show()" :disable="subscribing">Subscribe</button>
|
||||
</span>
|
||||
</form>
|
||||
|
||||
<p class="uk-text-meta" x-show="chapters && chapters.length > chaptersLimit" x-text="`The manga has ${chapters ? chapters.length : 0} chapters, but Mango can only list up to ${chaptersLimit}. Please use the filters to narrow down your search.`"></p>
|
||||
|
Loading…
x
Reference in New Issue
Block a user