Skip to content

Commit 4ea364f

Browse files
theovglmoustaphahennawi
authored andcommitted
feat(flashmsg): add enable-flashmsg-user-position-field configuration
1 parent 66a95fe commit 4ea364f

File tree

6 files changed

+30
-10
lines changed

6 files changed

+30
-10
lines changed

admin/src/main/java/org/entcore/admin/controllers/PlatformInfoController.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,8 @@ public void readConfig(HttpServerRequest request) {
7373
.put("hide-personal-data", serverMap.get("hidePersonalData"))
7474
.put("mass-messaging-enabled", config.getBoolean("mass-messaging-enabled"))
7575
.put("allow-adml-structure-name-change", config.getBoolean("allow-adml-structure-name-change", true))
76-
.put("enable-manual-group-autolink", config.getBoolean("enable-manual-group-autolink", false));
76+
.put("enable-manual-group-autolink", config.getBoolean("enable-manual-group-autolink", false))
77+
.put("enable-flashmsg-user-position-field", config.getBoolean("enable-flashmsg-user-position-field", false));
7778

7879
if (preDelete != null && preDelete.size() == PROFILES.size() &&
7980
PROFILES.containsAll(preDelete.fieldNames())) {

admin/src/main/ts/src/app/core/resolvers/Config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,5 @@ export interface Config {
1111
'mass-messaging-enabled': boolean;
1212
'allow-adml-structure-name-change': boolean;
1313
'enable-manual-group-autolink': boolean;
14+
'enable-flashmsg-user-position-field': boolean;
1415
}

admin/src/main/ts/src/app/management/management-routing.module.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import {SubjectCreate} from './subjects/create/subject-create.component';
1717
import {SubjectDetails} from './subjects/details/subject-details.component';
1818
import {StructureGarComponent} from './structure-gar/structure-gar.component';
1919
import { StructureUserPositionsComponent } from './structure-user-positions/structure-user-positions.component';
20+
import { ConfigResolver } from '../core/resolvers/config.resolver';
2021

2122
export let routes: Routes = [
2223
{
@@ -46,19 +47,24 @@ export let routes: Routes = [
4647
path: 'edit/:messageId',
4748
component: EditMessageFlashComponent,
4849
resolve: {
50+
config: ConfigResolver,
4951
messages: MessageFlashResolver
5052
}
5153
},
5254
{
5355
path: 'duplicate/:messageId',
5456
component: DuplicateMessageFlashComponent,
5557
resolve: {
58+
config: ConfigResolver,
5659
messages: MessageFlashResolver
5760
}
5861
},
5962
{
6063
path: 'create',
61-
component: CreateMessageFlashComponent
64+
component: CreateMessageFlashComponent,
65+
resolve: {
66+
config: ConfigResolver
67+
}
6268
}
6369
]
6470
},

admin/src/main/ts/src/app/management/management.module.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ import { StructureUserPositionComponent } from './structure-user-positions/struc
4545
import { MatDialogModule } from '@angular/material/dialog';
4646
import { StructureUserPositionsComponent } from './structure-user-positions/structure-user-positions.component';
4747
import { SharedModule } from '../_shared/shared.module';
48+
import { ConfigResolver } from '../core/resolvers/config.resolver';
4849

4950
@NgModule({
5051
imports: [
@@ -104,6 +105,7 @@ import { SharedModule } from '../_shared/shared.module';
104105
MessageFlashStore,
105106
MessageFlashResolver,
106107
BlockProfilesService,
108+
ConfigResolver,
107109
ZimbraService,
108110
{
109111
provide: MatPaginatorIntl,

admin/src/main/ts/src/app/management/message-flash/form/message-flash-form/message-flash-form.component.html

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,20 +31,22 @@ <h2><s5l>management.message.flash.{{action}}</s5l></h2>
3131
</div>
3232
</div>
3333

34+
<div *ngIf="showUserPositionField()">
3435
<ode-form-field label="management.message.flash.userPositions">
3536
<ode-multi-combo
36-
[(outputModel)]="message.userPositions"
37-
[comboModel]="userPositionsComboModel"
38-
[title]="'management.message.flash.chose.userPositions' | translate">
37+
[(outputModel)]="message.userPositions"
38+
[comboModel]="userPositionsComboModel"
39+
[title]="'management.message.flash.chose.userPositions' | translate"
40+
>
3941
</ode-multi-combo>
4042
</ode-form-field>
4143
<div class="multi-combo-companion">
42-
<div (click)="deselect(item, message.userPositions)"
43-
*ngFor="let item of message.userPositions">
44-
<s5l>{{ item }}</s5l>
45-
<i class="fa fa-trash is-size-5"></i>
46-
</div>
44+
<div (click)="deselect(item, message.userPositions)" *ngFor="let item of message.userPositions">
45+
<s5l>{{ item }}</s5l>
46+
<i class="fa fa-trash is-size-5"></i>
47+
</div>
4748
</div>
49+
</div>
4850

4951
<ode-form-field *ngIf="!!structure && !!structure.children && structure.children.length > 0"
5052
label="management.message.flash.selected.etab">

admin/src/main/ts/src/app/management/message-flash/form/message-flash-form/message-flash-form.component.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { FlashMessageModel } from '../../../../core/store/models/flashmessage.mo
1111
import { TrumbowygOptions } from 'ngx-trumbowyg';
1212
import * as dayjs from 'dayjs';
1313
import utc from 'dayjs/plugin/utc';
14+
import { Config } from 'src/app/core/resolvers/Config';
1415

1516
class StructureListItem {
1617
name: string;
@@ -29,6 +30,7 @@ export class MessageFlashFormComponent extends OdeComponent implements OnInit, O
2930
@Input() action: 'create' | 'edit' | 'duplicate';
3031
@Input() messageId = 'none';
3132

33+
config: Config;
3234
structure: StructureModel;
3335
items: StructureListItem[];
3436
originalMessage: FlashMessageModel;
@@ -115,6 +117,8 @@ export class MessageFlashFormComponent extends OdeComponent implements OnInit, O
115117
}
116118
}));
117119

120+
this.route.data.subscribe((data) => (this.config = data.config as Config));
121+
118122
MessageFlashService.getLanguages()
119123
.then(lang => {
120124
this.loadedLanguages = lang;
@@ -178,6 +182,10 @@ export class MessageFlashFormComponent extends OdeComponent implements OnInit, O
178182
return res;
179183
}
180184

185+
public showUserPositionField(): boolean {
186+
return this.config?.['enable-flashmsg-user-position-field'] ?? false;
187+
}
188+
181189
openLightbox(): void {
182190
this.lightboxSubStructures = Object.assign([], this.message.subStructures);
183191
this.items = this.getItems();

0 commit comments

Comments
 (0)