summaryrefslogtreecommitdiff
path: root/templates/add_prebuild.tpl
diff options
context:
space:
mode:
Diffstat (limited to 'templates/add_prebuild.tpl')
-rw-r--r--templates/add_prebuild.tpl119
1 files changed, 119 insertions, 0 deletions
diff --git a/templates/add_prebuild.tpl b/templates/add_prebuild.tpl
new file mode 100644
index 0000000..2f1755b
--- /dev/null
+++ b/templates/add_prebuild.tpl
@@ -0,0 +1,119 @@
+{strip}
+<div class="edit stock">
+ <div class="header">
+ <h1>{tr}Create Prebuild{/tr}</h1>
+ </div>
+
+ <div class="body">
+ {formfeedback error=$errors}
+
+ {form id="addPrebuildForm" ipackage="stock" ifile="add_prebuild.php"}
+
+ <div class="form-group">
+ {formlabel label="Build Ref" for="title" mandatory="y"}
+ {forminput}
+ <input type="text" class="form-control" name="title" id="title"
+ value="{$smarty.request.title|escape}" placeholder="BUILD-2026-001" />
+ {/forminput}
+ </div>
+
+ <div class="form-group">
+ {formlabel label="Assembly" for="assembly_search" mandatory="y"}
+ {forminput}
+ <input type="hidden" name="assembly_content_id" id="assembly_content_id"
+ value="{$preselect|default:''|escape}" />
+ <div style="position:relative">
+ <input type="text" class="form-control" id="assembly_search"
+ autocomplete="off"
+ value="{$preselectTitle|escape}"
+ placeholder="Type to search…" />
+ <ul id="assembly_dropdown" class="dropdown-menu"
+ style="display:none;position:absolute;width:100%;z-index:1000;max-height:220px;overflow-y:auto"></ul>
+ </div>
+ {/forminput}
+ </div>
+
+ <div class="form-group">
+ {formlabel label="Qty" for="kit_count"}
+ {forminput}
+ <input type="number" class="form-control input-sm" name="kit_count"
+ id="kit_count" min="1" step="1" style="width:6em"
+ value="{$kitCount|escape}" />
+ {/forminput}
+ </div>
+
+ <div class="form-group">
+ {formlabel label="Against RQ" for="rq_ref"}
+ {forminput}
+ <input type="text" class="form-control" name="rq_ref" id="rq_ref"
+ value="{$smarty.request.rq_ref|escape}"
+ placeholder="RQ number if building against a requisition" />
+ {/forminput}
+ </div>
+
+ <div class="form-group submit">
+ <input type="submit" class="btn btn-default" name="fCancel" value="{tr}Cancel{/tr}" />
+ <input type="submit" class="btn btn-primary" name="fCreate" value="{tr}Create Prebuild{/tr}" />
+ </div>
+
+ {/form}
+ </div>
+</div>
+{/strip}
+<script>
+(function($) {
+ var items = {$itemListJson};
+ var $input = $('#assembly_search');
+ var $hidden = $('#assembly_content_id');
+ var $dd = $('#assembly_dropdown');
+
+ $input.on('input', function() {
+ var q = this.value.toLowerCase().trim();
+ $dd.hide().empty();
+ $hidden.val('');
+ if (!q) return;
+ var matched = items.filter(function(i) {
+ return i.text.toLowerCase().indexOf(q) !== -1 || (i.klid && i.klid.toLowerCase().indexOf(q) !== -1);
+ });
+ if (!matched.length) return;
+ matched.forEach(function(i) {
+ var label = i.text + (i.klid ? ' (' + i.klid + ')' : '');
+ $dd.append($('<li>').append(
+ $('<a>').attr('href', '#').data('id', i.id).data('text', i.text).text(label)
+ ));
+ });
+ $dd.show();
+ });
+
+ $(document).on('mousedown', '#assembly_dropdown a', function(e) {
+ e.preventDefault();
+ $input.val($(this).data('text'));
+ $hidden.val($(this).data('id'));
+ $dd.hide().empty();
+ });
+
+ $input.on('blur', function() {
+ setTimeout(function() { $dd.hide(); }, 150);
+ });
+
+ $input.on('keydown', function(e) {
+ if (!$dd.is(':visible')) return;
+ var $links = $dd.find('a');
+ var idx = $links.index($dd.find('li.active a'));
+ if (e.key === 'ArrowDown') {
+ e.preventDefault();
+ $links.parent().removeClass('active');
+ $links.eq(idx + 1 < $links.length ? idx + 1 : 0).parent().addClass('active');
+ } else if (e.key === 'ArrowUp') {
+ e.preventDefault();
+ $links.parent().removeClass('active');
+ $links.eq(idx > 0 ? idx - 1 : $links.length - 1).parent().addClass('active');
+ } else if (e.key === 'Enter') {
+ var $active = $dd.find('li.active a');
+ if ($active.length) { e.preventDefault(); $active.trigger('mousedown'); }
+ } else if (e.key === 'Escape') {
+ $dd.hide();
+ }
+ });
+}(jQuery));
+</script>