Skip to content

Commit fa537d6

Browse files
j12nazaslonov
authored andcommitted
Allow the operation-list group by tag to be enabled by default (#353)
1 parent dc50038 commit fa537d6

File tree

7 files changed

+31
-0
lines changed

7 files changed

+31
-0
lines changed

src/components/operations/operation-list/ko/operationListEditor.html

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,13 @@
66
</label>
77
</div>
88

9+
<div class="form-group">
10+
<label for="defaultGroupByTagToEnabled" class="form-label">
11+
<input type="checkbox" id="defaultGroupByTagToEnabled" name="defaultGroupByTagToEnabled" data-bind="checked: defaultGroupByTagToEnabled" />
12+
Default Group by tag to enabled
13+
</label>
14+
</div>
15+
916
<div class="form-group">
1017
<label class="form-label">
1118
Link to operation details page

src/components/operations/operation-list/ko/operationListEditor.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@ import { HyperlinkModel } from "@paperbits/common/permalinks";
1111
})
1212
export class OperationListEditor {
1313
public readonly allowSelection: ko.Observable<boolean>;
14+
public readonly defaultGroupByTagToEnabled: ko.Observable<boolean>;
1415
public readonly hyperlink: ko.Observable<HyperlinkModel>;
1516
public readonly hyperlinkTitle: ko.Computed<string>;
1617

1718
constructor() {
1819
this.allowSelection = ko.observable(false);
20+
this.defaultGroupByTagToEnabled = ko.observable(false);
1921
this.hyperlink = ko.observable();
2022
this.hyperlinkTitle = ko.computed<string>(() => this.hyperlink() ? this.hyperlink().title : "Add a link...");
2123
}
@@ -29,13 +31,16 @@ export class OperationListEditor {
2931
@OnMounted()
3032
public async initialize(): Promise<void> {
3133
this.allowSelection(this.model.allowSelection);
34+
this.defaultGroupByTagToEnabled(this.model.defaultGroupByTagToEnabled);
3235
this.hyperlink(this.model.detailsPageHyperlink);
3336

3437
this.allowSelection.subscribe(this.applyChanges);
38+
this.defaultGroupByTagToEnabled.subscribe(this.applyChanges);
3539
}
3640

3741
private applyChanges(): void {
3842
this.model.allowSelection = this.allowSelection();
43+
this.model.defaultGroupByTagToEnabled = this.defaultGroupByTagToEnabled();
3944
this.model.detailsPageHyperlink = this.hyperlink();
4045
this.onChange(this.model);
4146
}

src/components/operations/operation-list/ko/operationListViewModelBinder.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export class OperationListViewModelBinder implements ViewModelBinder<OperationLi
1414

1515
viewModel.runtimeConfig(JSON.stringify({
1616
allowSelection: model.allowSelection,
17+
defaultGroupByTagToEnabled: model.defaultGroupByTagToEnabled,
1718
detailsPageUrl: model.detailsPageHyperlink
1819
? model.detailsPageHyperlink.href
1920
: undefined

src/components/operations/operation-list/ko/runtime/operation-list.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ export class OperationList {
4444
this.selectedOperationName = ko.observable().extend(<any>{ acceptChange: this.allowSelection });
4545
this.working = ko.observable(false);
4646
this.groupByTag = ko.observable(false);
47+
this.defaultGroupByTagToEnabled = ko.observable(false);
4748
this.pattern = ko.observable();
4849
this.pageNumber = ko.observable(1);
4950
this.hasNextPage = ko.observable();
@@ -54,6 +55,9 @@ export class OperationList {
5455
@Param()
5556
public allowSelection: ko.Observable<boolean>;
5657

58+
@Param()
59+
public defaultGroupByTagToEnabled: ko.Observable<boolean>;
60+
5761
@Param()
5862
public detailsPageUrl: ko.Observable<string>;
5963

@@ -69,6 +73,8 @@ export class OperationList {
6973
return;
7074
}
7175

76+
this.groupByTag(this.defaultGroupByTagToEnabled());
77+
7278
await this.loadOperations();
7379

7480
this.pattern

src/components/operations/operation-list/operationListContract.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ export interface OperationListContract extends Contract {
1010
*/
1111
allowSelection: boolean;
1212

13+
/**
14+
* Default GroupByTag to enabled.
15+
*/
16+
defaultGroupByTagToEnabled?: boolean;
17+
1318
/**
1419
* Link to a page that contains operation details.
1520
*/

src/components/operations/operation-list/operationListModel.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ export class OperationListModel {
66
*/
77
public allowSelection: boolean;
88

9+
/**
10+
* Default GroupByTag to enabled.
11+
*/
12+
public defaultGroupByTagToEnabled: boolean;
13+
914
/**
1015
* Link to a page that contains operation details.
1116
*/

src/components/operations/operation-list/operationListModelBinder.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ export class OperationListModelBinder implements IModelBinder<OperationListModel
2020
const model = new OperationListModel();
2121

2222
model.allowSelection = contract.allowSelection;
23+
model.defaultGroupByTagToEnabled = contract.defaultGroupByTagToEnabled === true;
2324

2425
if (contract.detailsPageHyperlink) {
2526
model.detailsPageHyperlink = await this.permalinkResolver.getHyperlinkFromConfig(contract.detailsPageHyperlink);
@@ -32,6 +33,7 @@ export class OperationListModelBinder implements IModelBinder<OperationListModel
3233
const contract: OperationListContract = {
3334
type: "operationList",
3435
allowSelection: model.allowSelection,
36+
defaultGroupByTagToEnabled: model.defaultGroupByTagToEnabled,
3537
detailsPageHyperlink: model.detailsPageHyperlink
3638
? {
3739
target: model.detailsPageHyperlink.target,

0 commit comments

Comments
 (0)