mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Skeleton for AJAXified build table
This commit is contained in:
parent
2f71233d62
commit
a4e45eab13
@ -1,3 +1,53 @@
|
|||||||
|
function loadBuildTable(table, options) {
|
||||||
|
|
||||||
|
var params = options.params || {};
|
||||||
|
|
||||||
|
var filters = loadTableFilters("build");
|
||||||
|
|
||||||
|
for (var key in params) {
|
||||||
|
filters[key] = params[key];
|
||||||
|
}
|
||||||
|
|
||||||
|
table.inventreeTable({
|
||||||
|
method: 'get',
|
||||||
|
formatNoMatches: function() {
|
||||||
|
return "No builds matching query";
|
||||||
|
},
|
||||||
|
url: options.url,
|
||||||
|
queryParams: filters,
|
||||||
|
groupBy: false,
|
||||||
|
original: params,
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
field: 'pk',
|
||||||
|
title: 'ID',
|
||||||
|
visible: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'title',
|
||||||
|
title: 'Build',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'part',
|
||||||
|
title: 'Part',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'quantity',
|
||||||
|
title: 'Quantity',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'status_text',
|
||||||
|
title: 'Status',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'creation_date',
|
||||||
|
title: 'Created',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function updateAllocationTotal(id, count, required) {
|
function updateAllocationTotal(id, count, required) {
|
||||||
|
|
||||||
count = parseFloat(count);
|
count = parseFloat(count);
|
||||||
|
@ -11,22 +11,31 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function defaultFilters() {
|
||||||
|
return {
|
||||||
|
stock: "cascade=1",
|
||||||
|
build: "",
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load table filters for the given table from session storage
|
* Load table filters for the given table from session storage
|
||||||
*
|
*
|
||||||
* @param tableKey - String key for the particular table
|
* @param tableKey - String key for the particular table
|
||||||
* @param defaults - Default filters for this table e.g. 'cascade=1&location=5'
|
* @param defaults - Default filters for this table e.g. 'cascade=1&location=5'
|
||||||
*/
|
*/
|
||||||
function loadTableFilters(tableKey, defaults) {
|
function loadTableFilters(tableKey) {
|
||||||
|
|
||||||
var lookup = "table-filters-" + tableKey.toLowerCase();
|
var lookup = "table-filters-" + tableKey.toLowerCase();
|
||||||
|
|
||||||
|
var defaults = defaultFilters()[tableKey] || '';
|
||||||
|
|
||||||
var filterstring = inventreeLoad(lookup, defaults);
|
var filterstring = inventreeLoad(lookup, defaults);
|
||||||
|
|
||||||
var filters = {};
|
var filters = {};
|
||||||
|
|
||||||
console.log(`Loaded filters for table '${tableKey}' - ${filterstring}`);
|
|
||||||
|
|
||||||
filterstring.split("&").forEach(function(item, index) {
|
filterstring.split("&").forEach(function(item, index) {
|
||||||
item = item.trim();
|
item = item.trim();
|
||||||
|
|
||||||
@ -73,7 +82,7 @@ function saveTableFilters(tableKey, filters) {
|
|||||||
*/
|
*/
|
||||||
function removeTableFilter(tableKey, filterKey) {
|
function removeTableFilter(tableKey, filterKey) {
|
||||||
|
|
||||||
var filters = loadTableFilters(tableKey, '');
|
var filters = loadTableFilters(tableKey);
|
||||||
|
|
||||||
delete filters[filterKey];
|
delete filters[filterKey];
|
||||||
|
|
||||||
@ -86,7 +95,7 @@ function removeTableFilter(tableKey, filterKey) {
|
|||||||
|
|
||||||
function addTableFilter(tableKey, filterKey, filterValue) {
|
function addTableFilter(tableKey, filterKey, filterValue) {
|
||||||
|
|
||||||
var filters = loadTableFilters(tableKey, '');
|
var filters = loadTableFilters(tableKey);
|
||||||
|
|
||||||
filters[filterKey] = filterValue;
|
filters[filterKey] = filterValue;
|
||||||
|
|
||||||
@ -114,7 +123,7 @@ function clearTableFilters(tableKey) {
|
|||||||
*/
|
*/
|
||||||
function getRemainingTableFilters(tableKey) {
|
function getRemainingTableFilters(tableKey) {
|
||||||
|
|
||||||
var filters = loadTableFilters(tableKey, '');
|
var filters = loadTableFilters(tableKey);
|
||||||
|
|
||||||
var remaining = getAvailableTableFilters(tableKey);
|
var remaining = getAvailableTableFilters(tableKey);
|
||||||
|
|
||||||
|
@ -56,20 +56,8 @@ function loadStockTable(table, options) {
|
|||||||
original[key] = params[key];
|
original[key] = params[key];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Record a copy of the original query params
|
|
||||||
// It will be required if the table is refreshed
|
|
||||||
//options.original = original;
|
|
||||||
|
|
||||||
setupFilterList("stock", table, filterListElement);
|
setupFilterList("stock", table, filterListElement);
|
||||||
|
|
||||||
$("#filter-add").click(function() {
|
|
||||||
createStockFilter();
|
|
||||||
});
|
|
||||||
|
|
||||||
$("#filter-clear").click(function() {
|
|
||||||
clearStockFilters();
|
|
||||||
});
|
|
||||||
|
|
||||||
// Override the default values, or add new ones
|
// Override the default values, or add new ones
|
||||||
for (var key in params) {
|
for (var key in params) {
|
||||||
filters[key] = params[key];
|
filters[key] = params[key];
|
||||||
|
@ -23,6 +23,9 @@ InvenTree | Build List
|
|||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
|
<table class='table table-striped table-condensed' id='build-table'>
|
||||||
|
</table>
|
||||||
|
|
||||||
{% include "build/build_list.html" with builds=active title="Active Builds" completed=False collapse_id='active' %}
|
{% include "build/build_list.html" with builds=active title="Active Builds" completed=False collapse_id='active' %}
|
||||||
|
|
||||||
{% include "build/build_list.html" with builds=completed completed=True title="Completed Builds" collapse_id="complete" %}
|
{% include "build/build_list.html" with builds=completed completed=True title="Completed Builds" collapse_id="complete" %}
|
||||||
@ -44,6 +47,10 @@ InvenTree | Build List
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
loadBuildTable($("#build-table"), {
|
||||||
|
url: "{% url 'api-build-list' %}"
|
||||||
|
});
|
||||||
|
|
||||||
$(".build-table").inventreeTable({
|
$(".build-table").inventreeTable({
|
||||||
formatNoMatches: function() { return 'No builds found'; },
|
formatNoMatches: function() { return 'No builds found'; },
|
||||||
columns: [
|
columns: [
|
||||||
|
@ -105,6 +105,7 @@ InvenTree
|
|||||||
<script type='text/javascript' src="{% static 'script/inventree/bom.js' %}"></script>
|
<script type='text/javascript' src="{% static 'script/inventree/bom.js' %}"></script>
|
||||||
<script type='text/javascript' src="{% static 'script/inventree/filters.js' %}"></script>
|
<script type='text/javascript' src="{% static 'script/inventree/filters.js' %}"></script>
|
||||||
<script type='text/javascript' src="{% static 'script/inventree/tables.js' %}"></script>
|
<script type='text/javascript' src="{% static 'script/inventree/tables.js' %}"></script>
|
||||||
|
<script type='text/javascript' src="{% static 'script/inventree/build.js' %}"></script>
|
||||||
<script type='text/javascript' src="{% static 'script/inventree/modals.js' %}"></script>
|
<script type='text/javascript' src="{% static 'script/inventree/modals.js' %}"></script>
|
||||||
<script type='text/javascript' src="{% static 'script/inventree/order.js' %}"></script>
|
<script type='text/javascript' src="{% static 'script/inventree/order.js' %}"></script>
|
||||||
<script type='text/javascript' src="{% static 'script/inventree/notification.js' %}"></script>
|
<script type='text/javascript' src="{% static 'script/inventree/notification.js' %}"></script>
|
||||||
|
Loading…
Reference in New Issue
Block a user