From 85cce39af7f87249a85de151873ed4edf1e94046 Mon Sep 17 00:00:00 2001 From: Kevin Ansfield Date: Mon, 3 Oct 2022 21:15:27 +0100 Subject: [PATCH] Refactored staff user modals refs https://github.com/TryGhost/Team/issues/1734 refs https://github.com/TryGhost/Team/issues/559 refs https://github.com/TryGhost/Ghost/issues/14101 - switches to newer modal patterns ready for later Ember upgrades - cleaned up the `upload-image` modal which had multiple areas of code that were no longer being used - disabled `no-duplicate-landmark-elements` template lint rule as it's buggy and mostly gives false positives --- ghost/admin/.lint-todo | 29 +++ ghost/admin/.template-lintrc.js | 3 +- .../admin/app/components/gh-image-uploader.js | 3 +- .../app/components/modal-delete-user.hbs | 31 --- .../admin/app/components/modal-delete-user.js | 31 --- .../app/components/modal-import-members.hbs | 1 - .../app/components/modal-regenerate-token.hbs | 20 -- .../app/components/modal-regenerate-token.js | 10 - .../app/components/modal-select-user-role.hbs | 16 -- .../app/components/modal-select-user-role.js | 39 ---- .../app/components/modal-suspend-user.hbs | 13 -- .../app/components/modal-suspend-user.js | 24 -- .../app/components/modal-transfer-owner.hbs | 16 -- .../app/components/modal-transfer-owner.js | 23 -- .../app/components/modal-unsuspend-user.hbs | 13 -- .../app/components/modal-unsuspend-user.js | 24 -- ...odal-upgrade-unsuspend-user-host-limit.hbs | 20 -- ...modal-upgrade-unsuspend-user-host-limit.js | 16 -- .../app/components/modal-upload-image.hbs | 32 --- .../app/components/modal-upload-image.js | 109 --------- .../settings/staff/modals/delete-user.hbs | 34 +++ .../settings/staff/modals/delete-user.js | 31 +++ .../staff/modals/regenerate-staff-token.hbs | 22 ++ .../staff/modals/regenerate-staff-token.js | 23 ++ .../settings/staff/modals/select-role.hbs | 18 ++ .../settings/staff/modals/select-role.js | 11 + .../settings/staff/modals/suspend-user.hbs | 21 ++ .../settings/staff/modals/suspend-user.js | 24 ++ .../staff/modals/transfer-ownership.hbs | 22 ++ .../staff/modals/transfer-ownership.js | 47 ++++ .../settings/staff/modals/unsuspend-user.hbs | 46 ++++ .../settings/staff/modals/unsuspend-user.js | 57 +++++ .../settings/staff/modals/upload-image.hbs | 38 +++ .../settings/staff/modals/upload-image.js | 52 +++++ .../app/controllers/settings/staff/user.js | 221 ++++++------------ .../app/templates/settings/staff/user.hbs | 88 +------ 36 files changed, 566 insertions(+), 662 deletions(-) delete mode 100644 ghost/admin/app/components/modal-delete-user.hbs delete mode 100644 ghost/admin/app/components/modal-delete-user.js delete mode 100644 ghost/admin/app/components/modal-regenerate-token.hbs delete mode 100644 ghost/admin/app/components/modal-regenerate-token.js delete mode 100644 ghost/admin/app/components/modal-select-user-role.hbs delete mode 100644 ghost/admin/app/components/modal-select-user-role.js delete mode 100644 ghost/admin/app/components/modal-suspend-user.hbs delete mode 100644 ghost/admin/app/components/modal-suspend-user.js delete mode 100644 ghost/admin/app/components/modal-transfer-owner.hbs delete mode 100644 ghost/admin/app/components/modal-transfer-owner.js delete mode 100644 ghost/admin/app/components/modal-unsuspend-user.hbs delete mode 100644 ghost/admin/app/components/modal-unsuspend-user.js delete mode 100644 ghost/admin/app/components/modal-upgrade-unsuspend-user-host-limit.hbs delete mode 100644 ghost/admin/app/components/modal-upgrade-unsuspend-user-host-limit.js delete mode 100644 ghost/admin/app/components/modal-upload-image.hbs delete mode 100644 ghost/admin/app/components/modal-upload-image.js create mode 100644 ghost/admin/app/components/settings/staff/modals/delete-user.hbs create mode 100644 ghost/admin/app/components/settings/staff/modals/delete-user.js create mode 100644 ghost/admin/app/components/settings/staff/modals/regenerate-staff-token.hbs create mode 100644 ghost/admin/app/components/settings/staff/modals/regenerate-staff-token.js create mode 100644 ghost/admin/app/components/settings/staff/modals/select-role.hbs create mode 100644 ghost/admin/app/components/settings/staff/modals/select-role.js create mode 100644 ghost/admin/app/components/settings/staff/modals/suspend-user.hbs create mode 100644 ghost/admin/app/components/settings/staff/modals/suspend-user.js create mode 100644 ghost/admin/app/components/settings/staff/modals/transfer-ownership.hbs create mode 100644 ghost/admin/app/components/settings/staff/modals/transfer-ownership.js create mode 100644 ghost/admin/app/components/settings/staff/modals/unsuspend-user.hbs create mode 100644 ghost/admin/app/components/settings/staff/modals/unsuspend-user.js create mode 100644 ghost/admin/app/components/settings/staff/modals/upload-image.hbs create mode 100644 ghost/admin/app/components/settings/staff/modals/upload-image.js diff --git a/ghost/admin/.lint-todo b/ghost/admin/.lint-todo index e737bdeb3a..1d61999165 100644 --- a/ghost/admin/.lint-todo +++ b/ghost/admin/.lint-todo @@ -858,3 +858,32 @@ remove|ember-template-lint|no-unused-block-params|1|0|1|0|6640f2d788e2ebf173ee6a add|ember-template-lint|no-duplicate-attributes|9|4|9|4|1bd74ed221db1070a4ef257ccb712285f6e4ebc6|1663977600000|1674349200000|1679533200000|app/components/gh-members-segment-select.hbs add|ember-template-lint|table-groups|29|12|29|12|fd6c7d9c26f38dac21ab2603a31d20617717ab33|1663977600000|1674349200000|1679533200000|app/templates/offers.hbs add|ember-template-lint|no-unused-block-params|1|0|1|0|1709beda164cdda6c0196211f71d73a81b9251dd|1663977600000|1674349200000|1679533200000|lib/koenig-editor/addon/components/koenig-card-email-cta.hbs +remove|ember-template-lint|no-action|47|93|47|93|a927cb3d62f088a149f64288c634921673563e7d|1662681600000|1673053200000|1678237200000|app/templates/settings/staff/user.hbs +remove|ember-template-lint|no-action|83|29|83|29|c81a8b61bc2a6a24c5103fd71843b71c96a7e413|1662681600000|1673053200000|1678237200000|app/templates/settings/staff/user.hbs +remove|ember-template-lint|no-action|84|27|84|27|a927cb3d62f088a149f64288c634921673563e7d|1662681600000|1673053200000|1678237200000|app/templates/settings/staff/user.hbs +remove|ember-template-lint|no-action|53|99|53|99|7628e64f5e59b4de2f529e029596f5570a4827ae|1662681600000|1673053200000|1678237200000|app/templates/settings/staff/user.hbs +remove|ember-template-lint|no-action|91|29|91|29|509c2ee1c3b1c57ee10b62649404561d5817de7f|1662681600000|1673053200000|1678237200000|app/templates/settings/staff/user.hbs +remove|ember-template-lint|no-action|92|27|92|27|7628e64f5e59b4de2f529e029596f5570a4827ae|1662681600000|1673053200000|1678237200000|app/templates/settings/staff/user.hbs +remove|ember-template-lint|no-action|60|103|60|103|a98190ea4757d865b31ad00184c6cc12a89c1009|1662681600000|1673053200000|1678237200000|app/templates/settings/staff/user.hbs +remove|ember-template-lint|no-action|102|31|102|31|a98190ea4757d865b31ad00184c6cc12a89c1009|1662681600000|1673053200000|1678237200000|app/templates/settings/staff/user.hbs +remove|ember-template-lint|no-action|107|33|107|33|34da22516e03547d6f322fe271a3251add8f3ec9|1662681600000|1673053200000|1678237200000|app/templates/settings/staff/user.hbs +remove|ember-template-lint|no-action|108|31|108|31|a98190ea4757d865b31ad00184c6cc12a89c1009|1662681600000|1673053200000|1678237200000|app/templates/settings/staff/user.hbs +remove|ember-template-lint|no-action|34|54|34|54|5af61080eb82340db68e59c287a1e9273f805b1e|1662681600000|1673053200000|1678237200000|app/templates/settings/staff/user.hbs +remove|ember-template-lint|no-action|39|49|39|49|7f6812a5fb3d34d95b4e27ce4b9691b3065f7b8c|1662681600000|1673053200000|1678237200000|app/templates/settings/staff/user.hbs +remove|ember-template-lint|no-action|40|47|40|47|5af61080eb82340db68e59c287a1e9273f805b1e|1662681600000|1673053200000|1678237200000|app/templates/settings/staff/user.hbs +remove|ember-template-lint|no-action|473|62|473|62|4150a56e60c88b9d8203a48c28069896522205ed|1662681600000|1673053200000|1678237200000|app/templates/settings/staff/user.hbs +remove|ember-template-lint|no-action|493|49|493|49|60dfff263d99797e3bcdf455c9c6ccf8ae539f1e|1662681600000|1673053200000|1678237200000|app/templates/settings/staff/user.hbs +remove|ember-template-lint|no-action|494|47|494|47|a1a5fab148882be2de9da5aca1d7d7e39e65a326|1662681600000|1673053200000|1678237200000|app/templates/settings/staff/user.hbs +remove|ember-template-lint|no-duplicate-landmark-elements|459|16|459|16|c7e339eb9f5d83115a7fda2636d1487ba11b133d|1662681600000|1673053200000|1678237200000|app/templates/settings/staff/user.hbs +remove|ember-template-lint|no-duplicate-landmark-elements|19|4|19|4|75d318fd9d711332a80f28848acc874ec14b0f4f|1662681600000|1673053200000|1678237200000|app/components/modal-members-label-form.hbs +remove|ember-template-lint|no-duplicate-landmark-elements|16|16|16|16|1661d2edb187b634c8187e5ecb0db15a4c7262fc|1662681600000|1673053200000|1678237200000|app/templates/signin.hbs +remove|ember-template-lint|no-duplicate-landmark-elements|46|16|46|16|f2740bc03b393e8708035d4952a2ab630472bd22|1662681600000|1673053200000|1678237200000|app/templates/settings/navigation.hbs +remove|ember-template-lint|no-duplicate-landmark-elements|398|16|398|16|f8a398a428b26623555526f6e625aeca79d8dc72|1662681600000|1673053200000|1678237200000|app/templates/settings/staff/user.hbs +remove|ember-template-lint|no-action|210|75|210|75|e0b0429cdf24580adc31da56392cc9814a42b2bb|1662681600000|1673053200000|1678237200000|app/templates/settings/staff/user.hbs +remove|ember-template-lint|no-action|218|45|218|45|4a66eafd7ad8fea066c11d298665e40bb02e3fc1|1662681600000|1673053200000|1678237200000|app/templates/settings/staff/user.hbs +remove|ember-template-lint|no-action|219|43|219|43|923e950a7705bc29217afe2e0a81dbf6012777f1|1662681600000|1673053200000|1678237200000|app/templates/settings/staff/user.hbs +remove|ember-template-lint|no-invalid-interactive|210|62|210|62|19a5403007099acc29f4f7bbbb8fd008405002eb|1662681600000|1673053200000|1678237200000|app/templates/settings/staff/user.hbs +remove|ember-template-lint|no-action|125|88|125|88|ea7c6e414cc202b6e4049eae4f60eb0829bd3ff0|1662681600000|1673053200000|1678237200000|app/templates/settings/staff/user.hbs +remove|ember-template-lint|no-action|129|35|129|35|ea7c6e414cc202b6e4049eae4f60eb0829bd3ff0|1662681600000|1673053200000|1678237200000|app/templates/settings/staff/user.hbs +remove|ember-template-lint|no-action|136|42|136|42|7a2a7a1b2159d811b310a9b89817108ddff9df88|1662681600000|1673053200000|1678237200000|app/templates/settings/staff/user.hbs +remove|ember-template-lint|no-action|140|35|140|35|7a2a7a1b2159d811b310a9b89817108ddff9df88|1662681600000|1673053200000|1678237200000|app/templates/settings/staff/user.hbs diff --git a/ghost/admin/.template-lintrc.js b/ghost/admin/.template-lintrc.js index 59d6e9283a..ebb04ffb7f 100644 --- a/ghost/admin/.template-lintrc.js +++ b/ghost/admin/.template-lintrc.js @@ -4,6 +4,7 @@ module.exports = { rules: { 'no-forbidden-elements': ['meta', 'html', 'script'], 'no-implicit-this': {allow: ['noop', 'now', 'site-icon-style', 'accent-color-background']}, - 'no-inline-styles': false + 'no-inline-styles': false, + 'no-duplicate-landmark-elements': false } }; diff --git a/ghost/admin/app/components/gh-image-uploader.js b/ghost/admin/app/components/gh-image-uploader.js index ce008e9c55..9f50422976 100644 --- a/ghost/admin/app/components/gh-image-uploader.js +++ b/ghost/admin/app/components/gh-image-uploader.js @@ -248,10 +248,11 @@ export default Component.extend({ message = `The image type you uploaded is not supported. Please use ${validExtensions}`; } else if (isRequestEntityTooLargeError(error)) { message = 'The image you uploaded was larger than the maximum file size your server allows.'; - } else if (error.payload.errors && !isBlank(error.payload.errors[0].message)) { + } else if (!isBlank(error.payload?.errors[0]?.message)) { message = error.payload.errors[0].message; } else { message = 'Something went wrong :('; + console.error(error); // eslint-disable-line } this.set('failureMessage', message); diff --git a/ghost/admin/app/components/modal-delete-user.hbs b/ghost/admin/app/components/modal-delete-user.hbs deleted file mode 100644 index d62f48b326..0000000000 --- a/ghost/admin/app/components/modal-delete-user.hbs +++ /dev/null @@ -1,31 +0,0 @@ - -{{svg-jar "close"}} - - - - diff --git a/ghost/admin/app/components/modal-delete-user.js b/ghost/admin/app/components/modal-delete-user.js deleted file mode 100644 index 4efbfd3eea..0000000000 --- a/ghost/admin/app/components/modal-delete-user.js +++ /dev/null @@ -1,31 +0,0 @@ -import ModalComponent from 'ghost-admin/components/modal-base'; -import {alias} from '@ember/object/computed'; -import {inject as service} from '@ember/service'; -import {task} from 'ember-concurrency'; - -export default ModalComponent.extend({ - store: service(), - - // Allowed actions - confirm: () => {}, - - user: alias('model'), - - actions: { - confirm() { - this.deleteUser.perform(); - } - }, - - get ownerUser() { - return this.store.peekAll('user').findBy('isOwnerOnly', true); - }, - - deleteUser: task(function* () { - try { - yield this.confirm(); - } finally { - this.send('closeModal'); - } - }).drop() -}); diff --git a/ghost/admin/app/components/modal-import-members.hbs b/ghost/admin/app/components/modal-import-members.hbs index 869bb96f88..99b785fc75 100644 --- a/ghost/admin/app/components/modal-import-members.hbs +++ b/ghost/admin/app/components/modal-import-members.hbs @@ -1,5 +1,4 @@
- {{!-- template-lint-disable no-duplicate-landmark-elements --}} {{#if (eq this.state 'INIT')}}