diff --git a/src/app/settings/create-organization.component.html b/src/app/settings/create-organization.component.html
index b7b52100..de76b539 100644
--- a/src/app/settings/create-organization.component.html
+++ b/src/app/settings/create-organization.component.html
@@ -3,8 +3,18 @@
{{'newOrganizationDesc' | i18n}}
- {{'uploadLicenseFilePremium' | i18n}}
-
+ {{'uploadLicenseFileOrg' | i18n}}
+
{{'addons' | i18n}}
diff --git a/src/app/settings/premium.component.ts b/src/app/settings/premium.component.ts
index 7a8cd083..89f15f37 100644
--- a/src/app/settings/premium.component.ts
+++ b/src/app/settings/premium.component.ts
@@ -46,15 +46,34 @@ export class PremiumComponent implements OnInit {
}
async submit() {
+ let files: FileList = null;
+ if (this.selfHosted) {
+ const fileEl = document.getElementById('file') as HTMLInputElement;
+ files = fileEl.files;
+ if (files == null || files.length === 0) {
+ this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),
+ this.i18nService.t('selectFile'));
+ return;
+ }
+ }
+
try {
- this.formPromise = this.paymentComponent.createPaymentToken().then((token) => {
+ if (this.selfHosted) {
const fd = new FormData();
- fd.append('paymentToken', token);
- fd.append('additionalStorageGb', (this.additionalStorage || 0).toString());
- return this.apiService.postPremium(fd);
- }).then(() => {
- return this.finalizePremium();
- });
+ fd.append('license', files[0]);
+ this.formPromise = this.apiService.postAccountLicense(fd).then(() => {
+ return this.finalizePremium();
+ });
+ } else {
+ this.formPromise = this.paymentComponent.createPaymentToken().then((token) => {
+ const fd = new FormData();
+ fd.append('paymentToken', token);
+ fd.append('additionalStorageGb', (this.additionalStorage || 0).toString());
+ return this.apiService.postPremium(fd);
+ }).then(() => {
+ return this.finalizePremium();
+ });
+ }
await this.formPromise;
} catch { }
}
diff --git a/src/app/settings/update-license.component.html b/src/app/settings/update-license.component.html
index 9cf14d90..9b67578d 100644
--- a/src/app/settings/update-license.component.html
+++ b/src/app/settings/update-license.component.html
@@ -8,7 +8,7 @@
{{'submit' | i18n}}
-
+
{{'cancel' | i18n}}
diff --git a/src/app/settings/update-license.component.ts b/src/app/settings/update-license.component.ts
index 7ce70a69..338c446b 100644
--- a/src/app/settings/update-license.component.ts
+++ b/src/app/settings/update-license.component.ts
@@ -10,24 +10,20 @@ import { Angulartics2 } from 'angulartics2';
import { ApiService } from 'jslib/abstractions/api.service';
import { I18nService } from 'jslib/abstractions/i18n.service';
-import { TokenService } from 'jslib/abstractions/token.service';
@Component({
selector: 'app-update-license',
templateUrl: 'update-license.component.html',
})
export class UpdateLicenseComponent {
- @Input() create = true;
@Input() user = true;
@Output() onUpdated = new EventEmitter();
@Output() onCanceled = new EventEmitter();
- storageAdjustment = 0;
formPromise: Promise;
constructor(private apiService: ApiService, private i18nService: I18nService,
- private analytics: Angulartics2, private toasterService: ToasterService,
- private tokenService: TokenService) { }
+ private analytics: Angulartics2, private toasterService: ToasterService) { }
async submit() {
const fileEl = document.getElementById('file') as HTMLInputElement;
@@ -39,25 +35,18 @@ export class UpdateLicenseComponent {
}
try {
+ const fd = new FormData();
+ fd.append('license', files[0]);
+
if (this.user) {
- const fd = new FormData();
- fd.append('license', files[0]);
- if (this.create) {
- if (!this.tokenService.getEmailVerified()) {
- this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),
- this.i18nService.t('accountEmailMustBeVerified'));
- return;
- }
- this.formPromise = this.apiService.postPremium(fd);
- } else {
- this.formPromise = this.apiService.postAccountLicense(fd);
- }
+ this.formPromise = this.apiService.postAccountLicense(fd);
+ } else {
+ // TODO
}
+
await this.formPromise;
- if (!this.create) {
- this.analytics.eventTrack.next({ action: 'Updated License' });
- this.toasterService.popAsync('success', null, this.i18nService.t('updatedLicense'));
- }
+ this.analytics.eventTrack.next({ action: 'Updated License' });
+ this.toasterService.popAsync('success', null, this.i18nService.t('updatedLicense'));
this.onUpdated.emit();
} catch { }
}
diff --git a/src/app/settings/user-billing.component.html b/src/app/settings/user-billing.component.html
index ad104f82..7f366945 100644
--- a/src/app/settings/user-billing.component.html
+++ b/src/app/settings/user-billing.component.html
@@ -64,7 +64,7 @@
{{'updateLicense' | i18n}}
-
+
diff --git a/src/locales/en/messages.json b/src/locales/en/messages.json
index f70af4e2..39182ea1 100644
--- a/src/locales/en/messages.json
+++ b/src/locales/en/messages.json
@@ -1452,6 +1452,9 @@
"uploadLicenseFilePremium": {
"message": "To upgrade your account to a premium membership you need to upload a valid license file."
},
+ "uploadLicenseFileOrg": {
+ "message": "To create an on-premise hosted organization you need to upload a valid license file."
+ },
"accountEmailMustBeVerified": {
"message": "Your account's email address must be verified."
},