diff --git a/src/js/components/splatoon/SalmonRunAdminDialog.vue b/src/js/components/splatoon/SalmonRunAdminDialog.vue
index 3cbe731..27a4b73 100644
--- a/src/js/components/splatoon/SalmonRunAdminDialog.vue
+++ b/src/js/components/splatoon/SalmonRunAdminDialog.vue
@@ -45,7 +45,7 @@
@@ -59,7 +59,7 @@
@@ -106,6 +106,20 @@ import Modal from '@/js/components/Modal.vue';
import Stage from '@/js/components/splatoon/Stage.vue';
import SplatoonStages from '@/js/splatoonStages';
+function getTimeRange(startDate) {
+ let times = [];
+
+ for (let i = 0; i < 24; i += 6) {
+ let date = new Date(startDate);
+ date.setUTCHours(i);
+ date.setMinutes(0);
+ date.setSeconds(0);
+ times.push(Math.floor(date.getTime() / 1000));
+ }
+
+ return times;
+}
+
export default {
components: { Modal, Stage },
props: ['coopCalendar'],
@@ -121,7 +135,7 @@ export default {
schedules: null,
selectedSchedule: null,
dates: [],
- times: [],
+ // times: [],
selectedStartDate: null,
selectedStartTime: null,
selectedEndDate: null,
@@ -133,33 +147,57 @@ export default {
if (this.weapons)
return Object.values(this.weapons).filter(weapon => weapon.name.toLowerCase().indexOf(this.weaponSearchTerm) > -1);
},
+ startTimes() {
+ if (this.selectedStartDate)
+ return getTimeRange(this.selectedStartDate * 1000);
+ },
+ endTimes() {
+ if (this.selectedEndDate)
+ return getTimeRange(this.selectedEndDate * 1000);
+ },
output() {
return JSON.stringify(this.schedules);
},
},
+ watch: {
+ startTimes(newValue, oldValue) {
+ if (newValue) {
+ let index = (oldValue) ? oldValue.indexOf(this.selectedStartTime) : 0;
+ this.selectedStartTime = newValue[index];
+ }
+ },
+ endTimes(newValue, oldValue) {
+ if (newValue) {
+ let index = (oldValue) ? oldValue.indexOf(this.selectedEndTime) : 0;
+ this.selectedEndTime = newValue[index];
+ }
+ },
+ selectedStartDate() {
+ if (this.selectedStartDate) {
+ let index = this.dates.indexOf(this.selectedStartDate);
+ this.selectedEndDate = this.dates[index + 1];
+ }
+ },
+ selectedStartTime() {
+ if (this.selectedStartTime) {
+ let index = this.startTimes.indexOf(this.selectedStartTime);
+ this.selectedEndTime = this.endTimes[index];
+ }
+ },
+ },
created() {
- // Set up dates/times
+ // Set up dates
for (let i = 0; i < 20; i++) {
let date = new Date;
- date.setHours(0);
- date.setMinutes(0);
- date.setSeconds(0);
- date.setDate(date.getDate() + i);
+ date.setUTCHours(0);
+ date.setUTCMinutes(0);
+ date.setUTCSeconds(0);
+ date.setUTCDate(date.getDate() + i);
this.dates.push(Math.floor(date.getTime() / 1000));
}
this.selectedStartDate = this.dates[0];
this.selectedEndDate = this.dates[0];
- for (let i = 0; i < 24; i += 6) {
- let date = new Date;
- date.setUTCHours(i);
- date.setMinutes(0);
- date.setSeconds(0);
- this.times.push(Math.floor(date.getTime() / 1000));
- }
- this.selectedStartTime = this.times[0];
- this.selectedEndTime = this.times[0];
-
// Update weapons
this.updateWeapons();