mirror of
https://gitlab.com/wgp/dougal/software.git
synced 2025-12-06 10:07:08 +00:00
Change sequence renumbering behaviour.
By default, change just the number of the sequence being edited. It is checked for conflict with other planned sequences but not with anything already acquired. If the user ticks the ‘shift all’ checkbox, then all planned sequences are shifted by the same amount.
This commit is contained in:
@@ -58,6 +58,11 @@
|
|||||||
single-line
|
single-line
|
||||||
>
|
>
|
||||||
</v-text-field>
|
</v-text-field>
|
||||||
|
<v-checkbox
|
||||||
|
v-model="shiftAll"
|
||||||
|
class="mt-0"
|
||||||
|
label="Shift all planned sequences"
|
||||||
|
></v-checkbox>
|
||||||
</template>
|
</template>
|
||||||
</v-edit-dialog>
|
</v-edit-dialog>
|
||||||
</template>
|
</template>
|
||||||
@@ -320,6 +325,7 @@ export default {
|
|||||||
queuedReload: false,
|
queuedReload: false,
|
||||||
|
|
||||||
plannerConfig: null,
|
plannerConfig: null,
|
||||||
|
shiftAll: false, // Shift all sequences checkbox
|
||||||
|
|
||||||
// Context menu stuff
|
// Context menu stuff
|
||||||
contextMenuShow: false,
|
contextMenuShow: false,
|
||||||
@@ -355,7 +361,11 @@ export default {
|
|||||||
await this.shiftTimesAfter(item, delta);
|
await this.shiftTimesAfter(item, delta);
|
||||||
await this.saveItem({sequence: item.sequence, key: 'ts1', value: ts1});
|
await this.saveItem({sequence: item.sequence, key: 'ts1', value: ts1});
|
||||||
} else if (oldVal.key == "sequence") {
|
} else if (oldVal.key == "sequence") {
|
||||||
await this.shiftSequences(oldVal.value-item.sequence);
|
if (this.shiftAll) {
|
||||||
|
await this.shiftSequences(oldVal.value-item.sequence);
|
||||||
|
} else {
|
||||||
|
await this.shiftSequence(item, oldVal.value);
|
||||||
|
}
|
||||||
} else if (item[oldVal.key] != oldVal.value) {
|
} else if (item[oldVal.key] != oldVal.value) {
|
||||||
if (await this.saveItem(oldVal)) {
|
if (await this.saveItem(oldVal)) {
|
||||||
item[oldVal.key] = oldVal.value;
|
item[oldVal.key] = oldVal.value;
|
||||||
@@ -449,6 +459,38 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
async shiftSequence (item, newSequence) {
|
||||||
|
|
||||||
|
if (item.sequence == newSequence) {
|
||||||
|
// Nothing to do
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const conflict = this.items.find(i => i.sequence == newSequence)
|
||||||
|
if (conflict) {
|
||||||
|
this.showSnack([`Sequence ${newSequence} already exists`, "error"]);
|
||||||
|
} else {
|
||||||
|
// Cannot do this check at the moment as we would have to load the list of sequences.
|
||||||
|
// TODO We will do this after refactoring.
|
||||||
|
/*
|
||||||
|
if (this.sequences.find(i => i.sequence == newSequence)) {
|
||||||
|
this.showSnack([`Sequence ${newSequence} conflicts with a line that's already been acquired`, "warning"]);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
const url = `/project/${this.$route.params.project}/plan/${item.sequence}`;
|
||||||
|
const init = {
|
||||||
|
method: "PATCH",
|
||||||
|
headers: {"Content-Type": "application/json"},
|
||||||
|
body: {
|
||||||
|
sequence: newSequence,
|
||||||
|
name: null
|
||||||
|
} // Setting name to null causes it to be regenerated
|
||||||
|
}
|
||||||
|
await this.api([url, init]);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
async shiftTimesAfter(item, delta) {
|
async shiftTimesAfter(item, delta) {
|
||||||
const pos = this.items.indexOf(item)+1;
|
const pos = this.items.indexOf(item)+1;
|
||||||
if (pos != 0) {
|
if (pos != 0) {
|
||||||
@@ -546,7 +588,7 @@ export default {
|
|||||||
: item;
|
: item;
|
||||||
},
|
},
|
||||||
|
|
||||||
...mapActions(["api"])
|
...mapActions(["api", "showSnack"])
|
||||||
},
|
},
|
||||||
|
|
||||||
async mounted () {
|
async mounted () {
|
||||||
|
|||||||
Reference in New Issue
Block a user