terrier-engine 4.24.0 → 4.24.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,6 +14,8 @@ import Messages from "tuff-core/messages"
14
14
  import Arrays from "tuff-core/arrays"
15
15
  import TerrierPart from "../../terrier/parts/terrier-part"
16
16
  import {DiveRunModal} from "./dive-runs"
17
+ import * as inflection from "inflection"
18
+ import Schedules from "../../terrier/schedules"
17
19
 
18
20
  const log = new Logger("DiveList")
19
21
 
@@ -112,7 +114,7 @@ export class DiveListPart extends TerrierPart<DiveListState> {
112
114
 
113
115
  const groupedDives = Arrays.groupBy(this.result.dives, 'dd_dive_group_id')
114
116
 
115
- parent.div('.dd-group-grid', grid => {
117
+ parent.div('.dd-group-grid.tt-typography', grid => {
116
118
  const groups = Arrays.sortBy(Object.values(this.groupMap), 'name')
117
119
  for (const group of groups) {
118
120
  this.renderGroupPanel(grid, group, groupedDives[group.id] || [])
@@ -156,7 +158,8 @@ export class DiveListPart extends TerrierPart<DiveListState> {
156
158
  a.i('.glyp-data_dive')
157
159
  .data({tooltip: "Public Dive"})
158
160
  }
159
- a.span().text(dive.name)
161
+ a.div('.name').text(dive.name)
162
+ this.renderDiveSchedule(a, dive)
160
163
  }).data({tooltip: "Open Editor"})
161
164
  row.a('.icon-only', a => {
162
165
  a.i('.glyp-settings')
@@ -173,7 +176,8 @@ export class DiveListPart extends TerrierPart<DiveListState> {
173
176
  a.i('.glyp-data_dive')
174
177
  .data({tooltip: "Public Dive"})
175
178
  }
176
- a.span().text(dive.name)
179
+ a.div('.name').text(dive.name)
180
+ this.renderDiveSchedule(a, dive)
177
181
  })
178
182
  .data({tooltip: "Run Dive"})
179
183
  .emitClick(this.runDiveKey, {id: dive.id})
@@ -181,6 +185,19 @@ export class DiveListPart extends TerrierPart<DiveListState> {
181
185
  })
182
186
  }
183
187
 
188
+ renderDiveSchedule(row: PartTag, dive: DdDive) {
189
+ log.info(`Rendering dive schedule: ${dive.delivery_schedule?.schedule_type}`, dive.delivery_schedule)
190
+ if (!dive.delivery_schedule || dive.delivery_schedule.schedule_type == 'none') {
191
+ return
192
+ }
193
+ let description = Schedules.describeRegular(dive.delivery_schedule)
194
+ if (dive.delivery_recipients?.length) {
195
+ description += ` to:<br>${dive.delivery_recipients.join('<br>')}`
196
+ }
197
+ row.div(".glyp-setup.with-icon").text(inflection.titleize(dive.delivery_schedule.schedule_type))
198
+ .data({tooltip: description})
199
+ }
200
+
184
201
  }
185
202
 
186
203
 
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "files": [
5
5
  "*"
6
6
  ],
7
- "version": "4.24.0",
7
+ "version": "4.24.1",
8
8
  "repository": {
9
9
  "type": "git",
10
10
  "url": "https://github.com/Terrier-Tech/terrier-engine"
@@ -166,6 +166,32 @@ export class RegularScheduleForm extends TerrierFormPart<CombinedRegularSchedule
166
166
 
167
167
  }
168
168
 
169
+
170
+ ////////////////////////////////////////////////////////////////////////////////
171
+ // Display
172
+ ////////////////////////////////////////////////////////////////////////////////
173
+
174
+ /**
175
+ * Generate an english description of the given regular schedule.
176
+ * @param schedule
177
+ */
178
+ function describeRegular(schedule: CombinedRegularSchedule): string {
179
+ const timeString = dayjs().hour(parseInt(schedule.hour_of_day || '0')).format('h A')
180
+ switch (schedule.schedule_type) {
181
+ case 'none':
182
+ return "Unscheduled"
183
+ case 'daily':
184
+ return `Daily at ${timeString}`
185
+ case 'weekly':
186
+ return `Every ${inflection.titleize(schedule.day_of_week || 'sunday')} at ${timeString}`
187
+ case 'monthly':
188
+ return `Every ${inflection.ordinalize(schedule.day_of_month || '1')} of the month at ${timeString}`
189
+ default:
190
+ throw `Invalid schedule type: ${schedule.schedule_type}`
191
+ }
192
+ }
193
+
194
+
169
195
  ////////////////////////////////////////////////////////////////////////////////
170
196
  // Export
171
197
  ////////////////////////////////////////////////////////////////////////////////
@@ -173,7 +199,8 @@ export class RegularScheduleForm extends TerrierFormPart<CombinedRegularSchedule
173
199
  const Schedules = {
174
200
  DaysOfWeek,
175
201
  DaysOfMonth,
176
- HoursOfDay
202
+ HoursOfDay,
203
+ describeRegular
177
204
  }
178
205
  export default Schedules
179
206