summaryrefslogtreecommitdiff
path: root/templates/add_requisition.tpl
blob: 3b6051b9e5c431c144c128ed8fc7349950ac0177 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
{strip}
<div class="edit stock">
	<div class="header">
		<h1>{tr}Create Requisition{/tr}</h1>
	</div>

	<div class="body">
		{formfeedback error=$errors}

		{form id="addRequisitionForm" ipackage="stock" ifile="add_requisition.php"}

			<div class="form-group">
				{formlabel label="RQ Number" for="title" mandatory="y"}
				{forminput}
					<input type="text" class="form-control" name="title" id="title"
						value="{$smarty.request.title|escape}" placeholder="RQ-2026-001" />
				{/forminput}
			</div>

			<div class="form-group">
				{formlabel label="Ordered" for="ordered_date"}
				{forminput}
					<input type="text" class="form-control input-small" name="ordered_date" id="ordered_date"
						placeholder="dd/mm/yyyy" maxlength="10"
						value="{$smarty.request.ordered_date|default:$todayFormatted|escape}" />
				{/forminput}
			</div>

			<div class="form-group">
				{formlabel label="Item" 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 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 Requisition{/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>