Skip to content

Commit c4eaedf

Browse files
feat: switch default queue type to Sequential (#3110) (#3122)
* feat: switch default queue type to Sequential (#3110) * feat: update effect queue add/edit modal - Resize modal to medium size - Switch to using firebot-radio-cards for mode
1 parent 74c7129 commit c4eaedf

File tree

3 files changed

+40
-53
lines changed

3 files changed

+40
-53
lines changed

src/gui/app/controllers/effect-queues.controller.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
"use strict";
2-
(function() {
2+
(function () {
33
angular
44
.module("firebotApp")
5-
.controller("effectQueuesController", function(
5+
.controller("effectQueuesController", function (
66
$scope,
77
effectQueuesService,
88
utilityService,
@@ -15,8 +15,8 @@
1515
};
1616

1717
$scope.getQueueModeName = (modeId) => {
18-
const mode = effectQueuesService.queueModes.find(m => m.id === modeId);
19-
return mode ? mode.display : "Unknown";
18+
const mode = effectQueuesService.queueModes.find(m => m.value === modeId);
19+
return mode ? mode.label : "Unknown";
2020
};
2121

2222
$scope.headers = [
@@ -26,7 +26,7 @@
2626
dataField: "name",
2727
sortable: true,
2828
cellTemplate: `{{data.name}}`,
29-
cellController: () => {}
29+
cellController: () => { }
3030
},
3131
{
3232
name: "MODE",
@@ -36,8 +36,8 @@
3636
cellTemplate: `{{getQueueModeName(data.mode)}}`,
3737
cellController: ($scope) => {
3838
$scope.getQueueModeName = (modeId) => {
39-
const mode = effectQueuesService.queueModes.find(m => m.id === modeId);
40-
return mode ? mode.display : "Unknown";
39+
const mode = effectQueuesService.queueModes.find(m => m.value === modeId);
40+
return mode ? mode.label : "Unknown";
4141
};
4242
}
4343
},
@@ -47,7 +47,7 @@
4747
dataField: "interval",
4848
sortable: true,
4949
cellTemplate: `{{(data.mode === 'interval' || data.mode === 'auto') ? (data.interval || 0) + 's' : 'n/a'}}`,
50-
cellController: () => {}
50+
cellController: () => { }
5151
}
5252
];
5353

src/gui/app/directives/modals/effect-queues/addOrEditEffectQueueModal.js

Lines changed: 11 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
"use strict";
2-
(function() {
2+
(function () {
33
angular.module("firebotApp").component("addOrEditEffectQueueModal", {
44
template: `
55
<scroll-sentinel element-class="edit-effect-queue-header"></scroll-sentinel>
@@ -23,27 +23,14 @@
2323
</div>
2424
</div>
2525
26-
<div class="mt-6">
27-
<div class="modal-subheader pb-2 pt-0 px-0">MODE</div>
28-
<div>
29-
<ui-select ng-model="$ctrl.effectQueue.mode" theme="bootstrap" class="control-type-list">
30-
<ui-select-match placeholder="Select queue mode">{{$select.selected.display}}</ui-select-match>
31-
<ui-select-choices repeat="mode.id as mode in $ctrl.queueModes | filter: { display: $select.search }" style="position:relative;">
32-
<div class="flex-row-center">
33-
<div class="my-0 mx-5" style="width: 30px;height: 100%;font-size:20px;text-align: center;flex-shrink: 0;">
34-
<i class="fas" ng-class="mode.iconClass"></i>
35-
</div>
36-
<div>
37-
<div ng-bind-html="mode.display | highlight: $select.search"></div>
38-
<small class="muted">{{mode.description}}</small>
39-
</div>
40-
41-
</div>
42-
43-
</ui-select-choices>
44-
</ui-select>
45-
</div>
46-
</div>
26+
<div class="modal-subheader pb-2 pt-0 px-0">MODE</div>
27+
<firebot-radio-cards
28+
options="$ctrl.queueModes"
29+
ng-model="$ctrl.effectQueue.mode"
30+
id="queueMode"
31+
name="queueMode"
32+
grid-columns="1"
33+
></firebot-radio-cards>
4734
4835
<div class="mt-6" ng-show="$ctrl.effectQueue.mode != null && ($ctrl.effectQueue.mode ==='interval' || $ctrl.effectQueue.mode ==='auto')">
4936
<div class="modal-subheader pb-2 pt-0 px-0">Interval/Delay (secs)</div>
@@ -66,14 +53,14 @@
6653
dismiss: "&",
6754
modalInstance: "<"
6855
},
69-
controller: function(effectQueuesService, ngToast) {
56+
controller: function (effectQueuesService, ngToast) {
7057
const $ctrl = this;
7158

7259
$ctrl.isNewQueue = true;
7360

7461
$ctrl.effectQueue = {
7562
name: "",
76-
mode: "custom",
63+
mode: "auto",
7764
sortTags: [],
7865
active: true,
7966
length: 0

src/gui/app/services/effect-queues.service.js

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
"use strict";
22

3-
(function() {
3+
(function () {
44

55
angular
66
.module("firebotApp")
7-
.factory("effectQueuesService", function(backendCommunicator, utilityService,
7+
.factory("effectQueuesService", function (backendCommunicator, utilityService,
88
objectCopyHelper, ngToast) {
99
const service = {};
1010

@@ -26,20 +26,20 @@
2626
}
2727
};
2828

29-
backendCommunicator.on("all-queues", effectQueues => {
29+
backendCommunicator.on("all-queues", (effectQueues) => {
3030
if (effectQueues != null) {
3131
service.effectQueues = effectQueues;
3232
}
3333
});
3434

35-
backendCommunicator.on("updateQueueLength", queue => {
35+
backendCommunicator.on("updateQueueLength", (queue) => {
3636
const index = service.effectQueues.findIndex(eq => eq.id === queue.id);
3737
if (service.effectQueues[index] != null) {
3838
service.effectQueues[index].length = queue.length;
3939
}
4040
});
4141

42-
backendCommunicator.on("updateQueueStatus", queue => {
42+
backendCommunicator.on("updateQueueStatus", (queue) => {
4343
const index = service.effectQueues.findIndex(eq => eq.id === queue.id);
4444
if (service.effectQueues[index] != null) {
4545
service.effectQueues[index].active = queue.active;
@@ -48,20 +48,20 @@
4848

4949
service.queueModes = [
5050
{
51-
id: "custom",
52-
display: "Custom",
53-
description: "Wait the custom amount of time defined for each individual effect list.",
54-
iconClass: "fa-clock"
55-
},
56-
{
57-
id: "auto",
58-
display: "Sequential",
51+
value: "auto",
52+
label: "Sequential",
5953
description: "Runs effect list in the queue sequentially. Priority items will be added before non-priority. Optional delay defaults to 0s.",
6054
iconClass: "fa-sort-numeric-down"
6155
},
6256
{
63-
id: "interval",
64-
display: "Interval",
57+
value: "custom",
58+
label: "Custom",
59+
description: "Wait the custom amount of time defined for each individual effect list.",
60+
iconClass: "fa-clock"
61+
},
62+
{
63+
value: "interval",
64+
label: "Interval",
6565
description: "Runs effect lists on a set interval.",
6666
iconClass: "fa-stopwatch"
6767
}
@@ -118,7 +118,7 @@
118118
copiedEffectQueue.name += " copy";
119119
}
120120

121-
service.saveEffectQueue(copiedEffectQueue).then(successful => {
121+
service.saveEffectQueue(copiedEffectQueue).then((successful) => {
122122
if (successful) {
123123
ngToast.create({
124124
className: 'success',
@@ -136,7 +136,7 @@
136136
};
137137

138138
service.showAddEditEffectQueueModal = (effectQueueId) => {
139-
return new Promise(resolve => {
139+
return new Promise((resolve) => {
140140
let effectQueue;
141141

142142
if (effectQueueId != null) {
@@ -145,19 +145,19 @@
145145

146146
utilityService.showModal({
147147
component: "addOrEditEffectQueueModal",
148-
size: "sm",
148+
size: "md",
149149
resolveObj: {
150150
effectQueue: () => effectQueue
151151
},
152-
closeCallback: response => {
152+
closeCallback: (response) => {
153153
resolve(response.effectQueue.id);
154154
}
155155
});
156156
});
157157
};
158158

159159
service.showDeleteEffectQueueModal = (effectQueueId) => {
160-
return new Promise(resolve => {
160+
return new Promise((resolve) => {
161161
if (effectQueueId == null) {
162162
resolve(false);
163163
}
@@ -174,7 +174,7 @@
174174
confirmLabel: "Delete",
175175
confirmBtnType: "btn-danger"
176176
})
177-
.then(confirmed => {
177+
.then((confirmed) => {
178178
if (confirmed) {
179179
service.deleteEffectQueue(effectQueueId);
180180
}

0 commit comments

Comments
 (0)