Spiegel von
https://github.com/paviliondev/discourse-custom-wizard.git
synchronisiert 2024-11-09 11:52:54 +01:00
FEATURE: add a sub refresh button
Dieser Commit ist enthalten in:
Ursprung
1824738bd4
Commit
2b867ce678
4 geänderte Dateien mit 75 neuen und 18 gelöschten Zeilen
|
@ -27,4 +27,18 @@
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
<span>{{this.label}}</span>
|
<span>{{this.label}}</span>
|
||||||
</DButton>
|
</DButton>
|
||||||
|
<span class="loading-container">
|
||||||
|
{{#if this.updating}}
|
||||||
|
{{loading-spinner size="small"}}
|
||||||
|
{{else if updateIcon}}
|
||||||
|
{{d-icon updateIcon}}
|
||||||
|
{{/if}}
|
||||||
|
</span>
|
||||||
|
<DButton
|
||||||
|
@icon="sync"
|
||||||
|
@action={{this.update}}
|
||||||
|
class="btn btn-primary update"
|
||||||
|
@disabled={{this.updating}}
|
||||||
|
@title="admin.wizard.subscription.update.title"
|
||||||
|
/>
|
|
@ -1,11 +1,17 @@
|
||||||
import { inject as service } from "@ember/service";
|
import { inject as service } from "@ember/service";
|
||||||
import { action, computed } from "@ember/object";
|
import { action, computed } from "@ember/object";
|
||||||
|
import { ajax } from "discourse/lib/ajax";
|
||||||
|
import { popupAjaxError } from "discourse/lib/ajax-error";
|
||||||
import Component from "@glimmer/component";
|
import Component from "@glimmer/component";
|
||||||
|
import { tracked } from "@glimmer/tracking";
|
||||||
import DiscourseURL from "discourse/lib/url";
|
import DiscourseURL from "discourse/lib/url";
|
||||||
import I18n from "I18n";
|
import I18n from "I18n";
|
||||||
|
|
||||||
export default class WizardSubscriptionBadge extends Component {
|
export default class WizardSubscriptionBadge extends Component {
|
||||||
@service subscription;
|
@service subscription;
|
||||||
|
@tracked updating = false;
|
||||||
|
@tracked updateIcon = null;
|
||||||
|
basePath = "/admin/plugins/subscription-client";
|
||||||
|
|
||||||
@computed("subscription.subscriptionType")
|
@computed("subscription.subscriptionType")
|
||||||
get i18nKey() {
|
get i18nKey() {
|
||||||
|
@ -30,4 +36,26 @@ export default class WizardSubscriptionBadge extends Component {
|
||||||
click() {
|
click() {
|
||||||
DiscourseURL.routeTo(this.subscription.subscriptionLink);
|
DiscourseURL.routeTo(this.subscription.subscriptionLink);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@action
|
||||||
|
update() {
|
||||||
|
this.updating = true;
|
||||||
|
return ajax(`${this.basePath}/subscriptions`, {
|
||||||
|
type: "POST",
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
if (this.subscription.subscribed) {
|
||||||
|
this.updateIcon = "check";
|
||||||
|
} else {
|
||||||
|
this.updateIcon = "times";
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(popupAjaxError)
|
||||||
|
.finally(() => {
|
||||||
|
this.updating = false;
|
||||||
|
// setTimeout(() => {
|
||||||
|
// this.updateIcon = null;
|
||||||
|
// }, 7000);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,23 +43,6 @@ $error: #ef1700;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.admin-wizards .admin-actions {
|
|
||||||
.supplier-authorize {
|
|
||||||
display: inline-flex;
|
|
||||||
|
|
||||||
.btn-pavilion-support {
|
|
||||||
margin-left: 10px;
|
|
||||||
&:hover {
|
|
||||||
color: var(--pavilion-secondary);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-primary {
|
|
||||||
margin-right: 10px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.wizard-message {
|
.wizard-message {
|
||||||
background-color: var(--primary-low);
|
background-color: var(--primary-low);
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
@ -949,3 +932,33 @@ $error: #ef1700;
|
||||||
font-size: 0.75em;
|
font-size: 0.75em;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.admin-wizards .admin-actions {
|
||||||
|
.supplier-authorize {
|
||||||
|
display: inline-flex;
|
||||||
|
|
||||||
|
.btn-pavilion-support {
|
||||||
|
margin-left: 10px;
|
||||||
|
&:hover {
|
||||||
|
color: var(--pavilion-secondary);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.wizard-subscription-badge {
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.loading-container {
|
||||||
|
svg,
|
||||||
|
div {
|
||||||
|
vertical-align: -moz-middle-with-baseline;
|
||||||
|
vertical-align: -webkit-baseline-middle;
|
||||||
|
margin-right: 3px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-primary {
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -551,6 +551,8 @@ en:
|
||||||
deauthorize:
|
deauthorize:
|
||||||
label: deauthorize
|
label: deauthorize
|
||||||
title: Deauthorize your subscription on this site
|
title: Deauthorize your subscription on this site
|
||||||
|
update:
|
||||||
|
title: "Update subscription status"
|
||||||
subscribed:
|
subscribed:
|
||||||
label: Subscribed
|
label: Subscribed
|
||||||
title: You're subscribed and can use these features
|
title: You're subscribed and can use these features
|
||||||
|
|
Laden …
In neuem Issue referenzieren