Add bin types: reusable named dimension presets for bins
Bin types store a name, physical W×H in mm, and optional description. When editing a bin, a type can be selected from a dropdown; this pre-fills and locks the dimension inputs. Custom dimensions remain available when no type is selected. - lib/storage.mjs: bin type CRUD with bt: prefix - server.mjs: /api/bin-types CRUD routes; type_id accepted on bin create/update routes; DELETE protected if any bin references the type; type dims copied onto bin when type_id is set - public/lib/api.mjs: bin type wrappers; rename_bin → update_bin (accepts any fields) - public/templates.html: Types tab in bins section; t-bin-type-row; t-dialog-bin-type; type selector in bin editor dialog - public/app.mjs: all_bin_types state loaded at startup; render_bin_types_list(); open_bin_type_dialog(); type selector in open_bin_editor(); /bins/types routing - public/style.css: bin types list styles Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -61,11 +61,17 @@ export async function upload_pdf(file, display_name, filename) {
|
||||
return data;
|
||||
}
|
||||
|
||||
// Bin types
|
||||
export const get_bin_types = () => req('GET', '/api/bin-types');
|
||||
export const create_bin_type = (body) => req('POST', '/api/bin-types', body);
|
||||
export const update_bin_type = (id, body) => req('PUT', `/api/bin-types/${id}`, body);
|
||||
export const delete_bin_type = (id) => req('DELETE', `/api/bin-types/${id}`);
|
||||
|
||||
// Bins
|
||||
export const get_bins = () => req('GET', '/api/bins');
|
||||
export const create_bin_from_source = (source_id, name) => req('POST', '/api/bins/from-source', { source_id, name });
|
||||
export const get_bin = (id) => req('GET', `/api/bins/${id}`);
|
||||
export const rename_bin = (id, name) => req('PUT', `/api/bins/${id}`, { name });
|
||||
export const update_bin = (id, body) => req('PUT', `/api/bins/${id}`, body);
|
||||
export const update_bin_corners = (id, corners, phys_w, phys_h) => req('PUT', `/api/bins/${id}/corners`, { corners, phys_w, phys_h });
|
||||
export const delete_bin = (id) => req('DELETE', `/api/bins/${id}`);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user