use control-group for add-rows widget, fix paginator overflowing with hundreds of items

pull/35/head
Ondřej Hruška 6 years ago
parent a3df7a724c
commit 23f27e6f34
Signed by: MightyPork
GPG Key ID: 2C5FD5035250423D
  1. 14
      app/Tables/Changeset.php
  2. 63
      resources/assets/js/components/RowsEditor.vue

@ -619,9 +619,19 @@ class Changeset
return $c->cast(null); return $c->cast(null);
})->all(); })->all();
foreach ($this->newColumns as $k => $obj) {
$cols[] = $c = new Column($obj);
$c->markAsNew();
$emptyTpl[$k] = $c->cast(null);
}
$this->newRows = array_filter($this->newRows, function ($r) use ($emptyTpl) { $this->newRows = array_filter($this->newRows, function ($r) use ($emptyTpl) {
$emptyTpl['_id'] = $r['_id']; foreach ($r as $k => $val) {
return $emptyTpl != $r; if ($k[0] == '_') continue;
if ($val != $emptyTpl[$k]) return true;
}
return false;
}); });
} }
} }

@ -11,36 +11,43 @@ Rows are identified by row._id, columns by col.id
<template> <template>
<div> <div>
<div class="col-md-12 d-flex mt-3"> <div class="col-md-12 d-flex flex-wrap">
<div v-if="hasPages" v-html="pager"></div> <div class="mt-3">
<div v-if="hasPages" v-html="pager"></div>
</div>
<div class="flex-grow-1"></div> <div class="flex-grow-1"></div>
<form :action="route" method="POST" v-if="newRows" class="form-inline mr-2"> <div class="d-flex flex-nowrap mt-3">
<input type="hidden" name="_token" :value="csrf"> <form :action="route" method="POST" v-if="newRows" class="form-inline mr-2">
<input type="hidden" name="action" value="rows.add"> <input type="hidden" name="_token" :value="csrf">
<input type="hidden" name="redirect" :value="pageUrl"> <input type="hidden" name="action" value="rows.add">
<input name="count" id="newrow-count" type="number" <input type="hidden" name="redirect" :value="pageUrl">
min=1 step=1 value=1 class="form-control mr-1" style="width: 8em"> <div class="input-group">
<button class="btn btn-outline-success">Add Rows</button> <input name="count" id="newrow-count" type="number"
</form> min=1 step=1 value=1 class="form-control" style="width: 6em">
<div class="input-group-append">
<a :href="loadCsvUrl" class="btn btn-outline-success mr-2" v-if="newRows && loadCsvUrl"> <button class="btn btn-outline-success">Add Rows</button>
<v-icon class="fa-file-excel-o fa-pr" alt="CSV"></v-icon><!-- </div>
-->CSV </div>
</a> </form>
<form :action="route" method="POST" v-if="newRows" class="form-inline mr-2"> <a :href="loadCsvUrl" class="btn btn-outline-success mr-2" v-if="newRows && loadCsvUrl">
<input type="hidden" name="_token" :value="csrf"> <v-icon class="fa-file-excel-o fa-pr" alt="CSV"></v-icon><!--
<input type="hidden" name="action" value="row.remove-empty-new"> -->CSV
<input type="hidden" name="redirect" :value="pageUrl"> </a>
<button class="btn btn-outline-danger">Remove Empty</button>
</form> <form :action="route" method="POST" v-if="newRows" class="form-inline mr-2">
<input type="hidden" name="_token" :value="csrf">
<button @click="saveAllChanges" type="button" <input type="hidden" name="action" value="row.remove-empty-new">
:class="['btn', this.dirtyRows ? 'btn-info' : 'btn-outline-secondary']"> <input type="hidden" name="redirect" :value="pageUrl">
Save Rows <button class="btn btn-outline-danger">Remove Empty</button>
</button> </form>
<button @click="saveAllChanges" type="button"
:class="['btn', this.dirtyRows ? 'btn-info' : 'btn-outline-secondary']">
Save Rows
</button>
</div>
</div> </div>
<div class="col-md-12 mt-3"> <div class="col-md-12 mt-3">

Loading…
Cancel
Save