From 62df25d7d83e5ad4eec9458dd0783cacac6f2968 Mon Sep 17 00:00:00 2001 From: Baptiste Grob <60621355+baptiste-grob@users.noreply.github.com> Date: Wed, 30 Sep 2020 16:37:10 +0200 Subject: [PATCH] fix: disable features for public beta --- .../javascripts/directives/views/accountMenu.ts | 16 +++++++++++++++- .../javascripts/views/footer/footer_view.ts | 5 +++++ app/assets/templates/directives/account-menu.pug | 8 +++++--- package.json | 3 ++- webpack.config.js | 1 + 5 files changed, 28 insertions(+), 5 deletions(-) diff --git a/app/assets/javascripts/directives/views/accountMenu.ts b/app/assets/javascripts/directives/views/accountMenu.ts index bcd957214..a4ed194b7 100644 --- a/app/assets/javascripts/directives/views/accountMenu.ts +++ b/app/assets/javascripts/directives/views/accountMenu.ts @@ -63,8 +63,11 @@ type AccountMenuState = { server: string; encryptionEnabled: boolean; selectedAutoLockInterval: any; + strictSigninDisabled: boolean; } +declare const __PUBLIC_BETA__: boolean; + class AccountMenuCtrl extends PureViewCtrl<{}, AccountMenuState> { public appVersion: string @@ -89,8 +92,9 @@ class AccountMenuCtrl extends PureViewCtrl<{}, AccountMenuState> { user: this.application!.getUser(), formData: { mergeLocal: true, - ephemeral: false + ephemeral: false, }, + strictSigninDisabled: __PUBLIC_BETA__, mutable: {} } as AccountMenuState; } @@ -331,6 +335,16 @@ class AccountMenuCtrl extends PureViewCtrl<{}, AccountMenuState> { ); } + showRegister() { + if (__PUBLIC_BETA__) { + alertDialog({ text: 'Registration is disabled for this beta version.' }); + } else { + this.setFormDataState({ + showRegister: true + }); + } + } + async readFile(file: File): Promise { return new Promise((resolve) => { const reader = new FileReader(); diff --git a/app/assets/javascripts/views/footer/footer_view.ts b/app/assets/javascripts/views/footer/footer_view.ts index 75c5bd397..b8a529f3b 100644 --- a/app/assets/javascripts/views/footer/footer_view.ts +++ b/app/assets/javascripts/views/footer/footer_view.ts @@ -28,6 +28,8 @@ import { import { PureViewCtrl } from '@Views/abstract/pure_view_ctrl'; import { confirmDialog } from '@/services/alertService'; +declare const __PUBLIC_BETA__: boolean; + /** * Disable before production release. * Anyone who used the beta will still have access to @@ -139,6 +141,9 @@ class FooterViewCtrl extends PureViewCtrl<{}, { reloadUpgradeStatus() { this.application.checkForSecurityUpdate().then((available) => { + if (__PUBLIC_BETA__) { + return; + } this.setState({ dataUpgradeAvailable: available }); diff --git a/app/assets/templates/directives/account-menu.pug b/app/assets/templates/directives/account-menu.pug index bfd48cd3e..324368de8 100644 --- a/app/assets/templates/directives/account-menu.pug +++ b/app/assets/templates/directives/account-menu.pug @@ -16,7 +16,7 @@ .sk-button-group.stretch .sk-button.info.featured(ng-click='self.state.formData.showLogin = true') .sk-label Sign In - .sk-button.info.featured(ng-click='self.state.formData.showRegister = true') + .sk-button.info.featured(ng-click='self.showRegister()') .sk-label Register .sk-panel-row.sk-p | Standard Notes is free on every platform, and comes @@ -84,11 +84,13 @@ ) .sk-horizontal-group.tight input.sk-input( + ng-disabled="self.state.strictSigninDisabled" ng-model='self.state.formData.strictSignin', type='checkbox' ) - p.sk-p Use strict sign in - span + p.sk-p(ng-if="!self.state.strictSigninDisabled") Use strict sign in + p.sk-p(ng-if="self.state.strictSigninDisabled") Strict sign is disabled for this beta version + span(ng-if="!self.state.strictSigninDisabled") a.info( href='https://standardnotes.org/help/security', rel='noopener', diff --git a/package.json b/package.json index 43eb53b95..657c7fdaa 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,8 @@ "watch": "webpack -w --config webpack.dev.js", "watch:desktop": "webpack -w --config webpack.dev.js --env.platform='desktop'", "bundle": "webpack --config webpack.prod.js && npm run tsc", - "bundle:desktop": "webpack --config webpack.prod.js --env.platform='desktop' && npm run tsc", + "bundle:desktop": "webpack --config webpack.prod.js --env.platform='desktop'", + "bundle:desktop:beta": "webpack --config webpack.prod.js --env.platform='desktop' --env.public_beta='true'", "build": "bundle install && npm ci && bundle exec rails assets:precompile && npm run bundle", "submodules": "git submodule update --init --force", "lint": "eslint --fix app/assets/javascripts/**/*.js", diff --git a/webpack.config.js b/webpack.config.js index a8765035c..778b9a4e2 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -15,6 +15,7 @@ module.exports = (env = { __VERSION__: JSON.stringify(require('./package.json').version), __WEB__: JSON.stringify(env.platform === 'web'), __DESKTOP__: JSON.stringify(env.platform === 'desktop'), + __PUBLIC_BETA__: JSON.stringify(env.public_beta === 'true'), }), new MiniCssExtractPlugin({ // Options similar to the same options in webpackOptions.output