Edit All button in row editor

pull/35/head
Ondřej Hruška 6 years ago
parent 0d938ec8af
commit d3a7381f39
Signed by: MightyPork
GPG Key ID: 2C5FD5035250423D
  1. 29
      resources/assets/js/components/RowsEditor.vue

@ -26,14 +26,14 @@ Rows are identified by row._id, columns by col.id
<input name="count" id="newrow-count" type="number" <input name="count" id="newrow-count" type="number"
min=1 step=1 value=1 class="form-control" style="width: 6em"> min=1 step=1 value=1 class="form-control" style="width: 6em">
<div class="input-group-append"> <div class="input-group-append">
<button class="btn btn-outline-success">Add Rows</button> <button class="btn btn-outline-success">Add</button>
</div> </div>
</div> </div>
</form> </form>
<a :href="loadCsvUrl" class="btn btn-outline-success mr-2" v-if="newRows && loadCsvUrl"> <a :href="loadCsvUrl" class="btn btn-outline-success mr-2" v-if="newRows && loadCsvUrl">
<v-icon class="fa-file-excel-o fa-pr" alt="CSV"></v-icon><!-- <v-icon class="fa-file-excel-o fa-pr" alt="CSV"></v-icon><!--
-->CSV -->From CSV
</a> </a>
<form :action="route" method="POST" v-if="newRows" class="form-inline mr-2"> <form :action="route" method="POST" v-if="newRows" class="form-inline mr-2">
@ -43,8 +43,13 @@ Rows are identified by row._id, columns by col.id
<button class="btn btn-outline-danger">Remove Empty</button> <button class="btn btn-outline-danger">Remove Empty</button>
</form> </form>
<button @click="saveAllChanges" type="button" <button @click="editAll()" type="button" v-if="!newRows"
:class="['btn', this.dirtyRows ? 'btn-info' : ['btn-outline-secondary', 'disabled']]"> class="btn btn-outline-secondary mr-2">
Edit All
</button>
<button @click="saveAllChanges()" type="button"
:class="['btn', this.dirtyRows ? 'btn-info' : 'btn-outline-secondary']">
Save Rows Save Rows
</button> </button>
</div> </div>
@ -316,9 +321,15 @@ Rows are identified by row._id, columns by col.id
/** Save all changed rows */ /** Save all changed rows */
saveAllChanges () { saveAllChanges () {
let toChange = _.filter(this.rows, (r) => { let toChange = _.filter(this.rows, (r) => {
return this.isRowChanged(r) let changed = this.isRowChanged(r)
if (!changed && r._editing) {
this.rows[r._id]._editing = false
}
return changed;
}) })
if (toChange.length === 0) return;
this.query({ this.query({
action: 'row.update-many', action: 'row.update-many',
data: toChange data: toChange
@ -349,7 +360,13 @@ Rows are identified by row._id, columns by col.id
this.$set(this.rows, row._id, row) this.$set(this.rows, row._id, row)
if (wasDirty) this.dirtyRows-- if (wasDirty) this.dirtyRows--
},
editAll() {
_.each(this.rows, (row, id) => {
this.$set(this.rows[id], '_editing', true)
})
} }
} },
} }
</script> </script>

Loading…
Cancel
Save