Skip to content

Commit ec5f4d3

Browse files
authored
Show metadata infobox for moderators on first update (#1398)
- Ticket: [ENG-3561] - Feature flag: n/a ## Purpose - show update metadata infobox for Registrations that are having their first update moderated ## Summary of Changes - Update the condition to show the version metadata info - check if the user is a moderator in moderator mode and show the metadata infobox if this is not the original submission being moderated
1 parent d0d267a commit ec5f4d3

File tree

2 files changed

+36
-3
lines changed
  • lib
    • osf-components/addon/components/registries/overview-form-renderer
    • registries/addon/overview/index

2 files changed

+36
-3
lines changed

lib/osf-components/addon/components/registries/overview-form-renderer/component.ts

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,20 @@ import Store from '@ember-data/store';
33
import { inject as service } from '@ember/service';
44
import { tagName } from '@ember-decorators/component';
55
import Component from '@ember/component';
6+
import { computed } from '@ember/object';
67
import { waitFor } from '@ember/test-waiters';
7-
import { restartableTask } from 'ember-concurrency';
8+
import { tracked } from '@glimmer/tracking';
9+
import { restartableTask, task } from 'ember-concurrency';
10+
import { taskFor } from 'ember-concurrency-ts';
11+
import Intl from 'ember-intl/services/intl';
812
import Toast from 'ember-toastr/services/toast';
913

1014
import { layout } from 'ember-osf-web/decorators/component';
15+
import ModeratorModel from 'ember-osf-web/models/moderator';
1116
import Registration from 'ember-osf-web/models/registration';
1217
import SchemaResponseModel from 'ember-osf-web/models/schema-response';
1318
import { getSchemaBlockGroups, SchemaBlock, SchemaBlockGroup } from 'ember-osf-web/packages/registration-schema';
19+
import CurrentUserService from 'ember-osf-web/services/current-user';
1420
import captureException, { getApiErrorMessage } from 'ember-osf-web/utils/capture-exception';
1521

1622
import template from './template';
@@ -20,20 +26,27 @@ import template from './template';
2026
export default class RegistrationFormViewSchemaBlocks extends Component {
2127
@service store!: Store;
2228
@service toast!: Toast;
29+
@service currentUser!: CurrentUserService;
30+
@service intl!: Intl;
2331
// Required parameter
2432
registration!: Registration;
2533
revision!: SchemaResponseModel;
2634

2735
// Optional parameters
2836
updatedResponseIds?: string[];
37+
mode?: string;
2938

3039
// Private properties
3140
schemaBlocks?: SchemaBlock[];
3241
schemaBlockGroups?: SchemaBlockGroup[];
3342
responses?: { [key: string]: string };
3443

44+
@tracked currentModerator?: ModeratorModel;
45+
46+
@computed('currentModerator', 'registration.{latestResponse.content,schemaResponses.length}')
3547
get showMetadata() {
36-
return this.registration.latestResponse.content && !this.registration.latestResponse.get('isOriginalResponse');
48+
return this.registration.latestResponse.content && !this.registration.latestResponse.get('isOriginalResponse')
49+
|| (Boolean(this.currentModerator) && this.registration.schemaResponses.length > 1);
3750
}
3851

3952
@restartableTask({ on: 'didReceiveAttrs' })
@@ -55,7 +68,26 @@ export default class RegistrationFormViewSchemaBlocks extends Component {
5568
}
5669
}
5770

71+
@task
72+
@waitFor
73+
async loadCurrentModerator() {
74+
try {
75+
this.currentModerator = await this.store.findRecord('moderator', this.currentUser.currentUserId!,
76+
{
77+
adapterOptions: {
78+
providerId: this.registration.provider.get('id'),
79+
},
80+
});
81+
} catch (e) {
82+
captureException(e);
83+
this.toast.error(this.intl.t('registries.overviewHeader.needModeratorPermission'));
84+
}
85+
}
86+
5887
didReceiveAttrs() {
59-
assert('OverviewFormRenderer needs a registration',Boolean(this.registration));
88+
assert('OverviewFormRenderer needs a registration', Boolean(this.registration));
89+
if (this.mode === 'moderator') {
90+
taskFor(this.loadCurrentModerator).perform();
91+
}
6092
}
6193
}

lib/registries/addon/overview/index/template.hbs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
as |diffManager|>
1818
{{#if diffManager.headRevision}}
1919
<Registries::OverviewFormRenderer
20+
@mode={{this.overview.mode}}
2021
@registration={{this.registration}}
2122
@revision={{diffManager.headRevision}}
2223
@updatedResponseIds={{diffManager.updatedKeys}}

0 commit comments

Comments
 (0)