1<script type="text/x-jquery-tmpl" id="mapElementFormTpl">
2	<?= (new CDiv(new CTag('h4', true, _('Map element'))))
3			->addClass(ZBX_STYLE_DASHBRD_WIDGET_HEAD)
4			->addClass(ZBX_STYLE_CURSOR_MOVE)
5			->setId('formDragHandler')
6			->toString()
7	?>
8	<?= (new CForm())
9			->cleanItems()
10			->setName('selementForm')
11			->setId('selementForm')
12			->addVar('elementid', '')
13			->addItem(
14				(new CFormList())
15					->addRow(_('Type'),
16						(new CComboBox('elementtype', null, null, [
17							SYSMAP_ELEMENT_TYPE_HOST => _('Host'),
18							SYSMAP_ELEMENT_TYPE_MAP => _('Map'),
19							SYSMAP_ELEMENT_TYPE_TRIGGER => _('Trigger'),
20							SYSMAP_ELEMENT_TYPE_HOST_GROUP => _('Host group'),
21							SYSMAP_ELEMENT_TYPE_IMAGE => _('Image')
22						]))->setId('elementType')
23					)
24					->addRow(_('Show'),
25						(new CRadioButtonList('elementsubtype', SYSMAP_ELEMENT_SUBTYPE_HOST_GROUP))
26							->addValue(_('Host group'), SYSMAP_ELEMENT_SUBTYPE_HOST_GROUP, 'subtypeHostGroup')
27							->addValue(_('Host group elements'), SYSMAP_ELEMENT_SUBTYPE_HOST_GROUP_ELEMENTS,
28								'subtypeHostGroupElements'
29							)
30							->setModern(true),
31						'subtypeRow'
32					)
33					->addRow(_('Area type'),
34						(new CRadioButtonList('areatype', SYSMAP_ELEMENT_AREA_TYPE_FIT))
35							->addValue(_('Fit to map'), SYSMAP_ELEMENT_AREA_TYPE_FIT, 'areaTypeAuto')
36							->addValue(_('Custom size'), SYSMAP_ELEMENT_AREA_TYPE_CUSTOM, 'areaTypeCustom')
37							->setModern(true),
38						'areaTypeRow'
39					)
40					->addRow(new CLabel(_('Area size'), 'areaSizeWidth'), [
41						_('Width'),
42						(new CDiv())->addClass(ZBX_STYLE_FORM_INPUT_MARGIN),
43						(new CTextBox('width'))
44							->setWidth(ZBX_TEXTAREA_TINY_WIDTH)
45							->setId('areaSizeWidth'),
46						(new CDiv())->addClass(ZBX_STYLE_FORM_INPUT_MARGIN),
47						_('Height'),
48						(new CDiv())->addClass(ZBX_STYLE_FORM_INPUT_MARGIN),
49						(new CTextBox('height'))
50							->setWidth(ZBX_TEXTAREA_TINY_WIDTH)
51							->setId('areaSizeHeight')
52					], 'areaSizeRow')
53					->addRow(_('Placing algorithm'),
54						(new CRadioButtonList(null, SYSMAP_ELEMENT_AREA_VIEWTYPE_GRID))
55							->addValue(_('Grid'), SYSMAP_ELEMENT_AREA_VIEWTYPE_GRID)
56							->setModern(true),
57						'areaPlacingRow'
58					)
59					->addRow(_('Label'),
60						(new CTextArea('label'))
61							->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH)
62							->setRows(2)
63							->setId('elementLabel')
64					)
65					->addRow(_('Label location'),
66						new CComboBox('label_location', null, null, [
67							MAP_LABEL_LOC_DEFAULT => _('Default'),
68							MAP_LABEL_LOC_BOTTOM => _('Bottom'),
69							MAP_LABEL_LOC_LEFT => _('Left'),
70							MAP_LABEL_LOC_RIGHT => _('Right'),
71							MAP_LABEL_LOC_TOP => _('Top')
72						])
73					)
74					->addRow(_('Host group'),
75						(new CMultiSelect([
76							'name' => 'elementNameHostGroup',
77							'objectName' => 'hostGroup'
78						]))->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH),
79						'hostGroupSelectRow'
80					)
81					->addRow(_('Host'),
82						(new CMultiSelect([
83							'name' => 'elementNameHost',
84							'objectName' => 'hosts'
85						]))->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH),
86						'hostSelectRow'
87					)
88					->addRow(_('Trigger'), [
89						new CVar('elementExpressionTrigger', ''),
90						(new CTextBox('elementName'))
91							->setReadonly(true)
92							->setId('elementNameTrigger')
93							->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH),
94						(new CDiv())->addClass(ZBX_STYLE_FORM_INPUT_MARGIN),
95						(new CButton(null, _('Select')))
96							->addClass(ZBX_STYLE_BTN_GREY)
97							->onClick('PopUp("popup.php?dstfrm=selementForm&dstfld1=elementid'.
98								'&dstfld2=elementNameTrigger&dstfld3=elementExpressionTrigger&srctbl=triggers'.
99								'&srcfld1=triggerid&srcfld2=description&srcfld3=expression&with_triggers=1'.
100								'&real_hosts=1&noempty=1")')
101					], 'triggerSelectRow')
102					->addRow(_('Map'), [
103						(new CTextBox('elementName'))
104							->setReadonly(true)
105							->setId('elementNameMap')
106							->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH),
107						(new CDiv())->addClass(ZBX_STYLE_FORM_INPUT_MARGIN),
108						(new CButton(null, _('Select')))
109							->addClass(ZBX_STYLE_BTN_GREY)
110							->onClick('PopUp("popup.php?srctbl=sysmaps&srcfld1=sysmapid&srcfld2=name'.
111								'&dstfrm=selementForm&dstfld1=elementid&dstfld2=elementNameMap'.
112								'&excludeids[]=#{sysmapid}")'
113							)
114					], 'mapSelectRow')
115					->addRow(_('Application'), [
116						(new CTextBox('application'))
117							->setId('application')
118							->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH),
119						(new CDiv())->addClass(ZBX_STYLE_FORM_INPUT_MARGIN),
120						(new CButton(null, _('Select')))
121							->setId('application-select')
122							->addClass(ZBX_STYLE_BTN_GREY)
123					], 'application-select-row')
124					->addRow(_('Automatic icon selection'),
125						new CCheckBox('use_iconmap'),
126						'useIconMapRow'
127					)
128					->addRow(_('Icons'),
129						(new CDiv(
130							(new CTable())
131								->addRow([new CLabel(_('Default'), 'iconid_off'), new CComboBox('iconid_off')])
132								->addRow(
133									(new CRow([new CLabel(_('Problem'), 'iconid_on'), new CComboBox('iconid_on')]))
134										->setId('iconProblemRow')
135								)
136								->addRow(
137									(new CRow([
138										new CLabel(_('Maintenance'), 'iconid_maintenance'),
139										new CComboBox('iconid_maintenance')
140									]))->setId('iconMainetnanceRow')
141								)
142								->addRow(
143									(new CRow([
144										new CLabel(_('Disabled'), 'iconid_disabled'),
145										new CComboBox('iconid_disabled')
146									]))->setId('iconDisabledRow')
147								)
148								->setAttribute('style', 'width: 100%;')
149						))
150							->addClass(ZBX_STYLE_TABLE_FORMS_SEPARATOR)
151							->setAttribute('style', 'min-width: '.ZBX_TEXTAREA_BIG_WIDTH.'px;')
152					)
153					->addRow(new CLabel(_('Coordinates'), 'x'), [
154						_('X'),
155						(new CDiv())->addClass(ZBX_STYLE_FORM_INPUT_MARGIN),
156						(new CTextBox('x'))->setWidth(ZBX_TEXTAREA_NUMERIC_STANDARD_WIDTH),
157						(new CDiv())->addClass(ZBX_STYLE_FORM_INPUT_MARGIN),
158						_('Y'),
159						(new CDiv())->addClass(ZBX_STYLE_FORM_INPUT_MARGIN),
160						(new CTextBox('y'))->setWidth(ZBX_TEXTAREA_NUMERIC_STANDARD_WIDTH)
161					], 'areaSizeRow')
162					->addRow(_('URLs'),
163						(new CDiv([
164							(new CTable())
165								->setHeader([_('Name'), _('URL'), _('Action')])
166								->setId('urlContainer')
167								->setAttribute('style', 'width: 100%;'),
168							(new CButton(null, _('Add')))
169								->addClass(ZBX_STYLE_BTN_LINK)
170								->setId('newSelementUrl')
171						]))
172							->addClass(ZBX_STYLE_TABLE_FORMS_SEPARATOR)
173							->setAttribute('style', 'min-width: '.ZBX_TEXTAREA_BIG_WIDTH.'px;')
174					)
175					->addItem([
176						(new CDiv())->addClass(ZBX_STYLE_TABLE_FORMS_TD_LEFT),
177						(new CDiv([
178							(new CButton(null, _('Apply')))
179								->addClass('element-edit-control')
180								->setId('elementApply'),
181							(new CButton(null, _('Remove')))
182								->addClass('element-edit-control')
183								->addClass(ZBX_STYLE_BTN_ALT)
184								->setId('elementRemove'),
185							(new CButton(null, _('Close')))
186								->addClass(ZBX_STYLE_BTN_ALT)
187								->setId('elementClose')
188						]))
189							->addClass(ZBX_STYLE_TABLE_FORMS_TD_RIGHT)
190							->addClass(ZBX_STYLE_TFOOT_BUTTONS)
191					])
192			)
193			->toString()
194	?>
195</script>
196
197<script type="text/x-jquery-tmpl" id="mapMassFormTpl">
198	<?= (new CDiv(new CTag('h4', true, _('Mass update elements'))))
199			->addClass(ZBX_STYLE_DASHBRD_WIDGET_HEAD)
200			->addClass(ZBX_STYLE_CURSOR_MOVE)
201			->setId('massDragHandler')
202			->toString()
203	?>
204	<?= (new CForm())
205			->cleanItems()
206			->setId('massForm')
207			->addItem(
208				(new CFormList())
209					->addRow(_('Selected elements'),
210						(new CDiv(
211							(new CTable())
212								->setHeader([_('Type'), _('Name')])
213								->setAttribute('style', 'width: 100%;')
214								->setId('massList')
215						))
216							->addClass(ZBX_STYLE_TABLE_FORMS_SEPARATOR)
217							->setAttribute('style', 'min-width: '.ZBX_TEXTAREA_BIG_WIDTH.'px;')
218					)
219					->addRow(
220						new CLabel([(new CCheckBox('chkbox_label'))->setId('chkboxLabel'), _('Label')], 'chkboxLabel'),
221						(new CTextArea('label'))
222							->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH)
223							->setRows(2)
224							->setId('massLabel')
225					)
226					->addRow(
227						new CLabel([
228							(new CCheckBox('chkbox_label_location'))->setId('chkboxLabelLocation'),
229							_('Label location')
230						], 'chkboxLabelLocation'),
231						(new CComboBox('label_location', null, null, [
232							MAP_LABEL_LOC_DEFAULT => _('Default'),
233							MAP_LABEL_LOC_BOTTOM => _('Bottom'),
234							MAP_LABEL_LOC_LEFT => _('Left'),
235							MAP_LABEL_LOC_RIGHT => _('Right'),
236							MAP_LABEL_LOC_TOP => _('Top')
237						]))->setId('massLabelLocation')
238					)
239					->addRow(
240						new CLabel([
241							(new CCheckBox('chkbox_use_iconmap'))
242								->setEnabled($data['sysmap']['iconmapid'] !== '0')
243								->setId('chkboxMassUseIconmap'),
244							_('Automatic icon selection')
245						], 'chkboxMassUseIconmap'),
246						(new CCheckBox('use_iconmap'))->setId('massUseIconmap')
247					)
248					->addRow(
249						new CLabel([
250							(new CCheckBox('chkbox_iconid_off'))->setId('chkboxMassIconidOff'),
251							_('Icon (default)')
252						], 'chkboxMassIconidOff'),
253						(new CComboBox('iconid_off'))->setId('massIconidOff')
254					)
255					->addRow(
256						new CLabel([
257							(new CCheckBox('chkbox_iconid_on'))->setId('chkboxMassIconidOn'),
258							_('Icon (problem)')
259						], 'chkboxMassIconidOn'),
260						(new CComboBox('iconid_on'))->setId('massIconidOn')
261					)
262					->addRow(
263						new CLabel([
264							(new CCheckBox('chkbox_iconid_maintenance'))->setId('chkboxMassIconidMaintenance'),
265							_('Icon (maintenance)')
266						], 'chkboxMassIconidMaintenance'),
267						(new CComboBox('iconid_maintenance'))->setId('massIconidMaintenance')
268					)
269					->addRow(
270						new CLabel([
271							(new CCheckBox('chkbox_iconid_disabled'))->setId('chkboxMassIconidDisabled'),
272							_('Icon (disabled)')
273						], 'chkboxMassIconidDisabled'),
274						(new CComboBox('iconid_disabled'))->setId('massIconidDisabled')
275					)
276					->addItem([
277						(new CDiv())->addClass(ZBX_STYLE_TABLE_FORMS_TD_LEFT),
278						(new CDiv([
279							(new CButton(null, _('Apply')))
280								->addClass('element-edit-control')
281								->setId('massApply'),
282							(new CButton(null, _('Remove')))
283								->addClass('element-edit-control')
284								->addClass(ZBX_STYLE_BTN_ALT)
285								->setId('massRemove'),
286							(new CButton(null, _('Close')))
287								->addClass(ZBX_STYLE_BTN_ALT)
288								->setId('massClose')
289						]))
290							->addClass(ZBX_STYLE_TABLE_FORMS_TD_RIGHT)
291							->addClass(ZBX_STYLE_TFOOT_BUTTONS)
292					])
293			)
294			->toString()
295	?>
296</script>
297
298<script type="text/x-jquery-tmpl" id="mapMassFormListRow">
299	<?= (new CRow(['#{elementType}', '#{elementName}']))->toString() ?>
300</script>
301
302<script type="text/x-jquery-tmpl" id="linkFormTpl">
303	<?= (new CFormList())
304		->addRow(_('Links'),
305			(new CDiv(
306				(new CTable())
307					->setHeader([_('Element name'), _('Link indicators'), _('Action')])
308					->setAttribute('style', 'width: 100%;')
309					->setId('element-links')
310			))
311				->addClass(ZBX_STYLE_TABLE_FORMS_SEPARATOR)
312				->setAttribute('style', 'min-width: '.ZBX_TEXTAREA_BIG_WIDTH.'px;'),
313			null, 'element-links'
314		)
315		->addRow(_('Links'),
316			(new CDiv(
317				(new CTable())
318					->setHeader([_('From'), _('To'), _('Link indicators'), _('Action')])
319					->setAttribute('style', 'width: 100%;')
320					->setId('mass-element-links')
321			))
322				->addClass(ZBX_STYLE_TABLE_FORMS_SEPARATOR)
323				->setAttribute('style', 'min-width: '.ZBX_TEXTAREA_BIG_WIDTH.'px;'),
324			null, 'element-links'
325		)
326		->setId('mapLinksContainer')
327		->toString()
328	?>
329	<?= (new CForm())
330			->cleanItems()
331			->setId('linkForm')
332			->addVar('selementid1', '')
333			->addItem(
334				(new CFormList())
335					->addRow(_('Label'),
336						(new CTextArea('label'))
337							->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH)
338							->setRows(2)
339							->setId('linklabel')
340					)
341					->addRow(_('Connect to'), (new CComboBox('selementid2')), 'link-connect-to')
342					->addRow(_('Type (OK)'),
343						(new CComboBox('drawtype', null, null, [
344							GRAPH_ITEM_DRAWTYPE_LINE => _('Line'),
345							GRAPH_ITEM_DRAWTYPE_BOLD_LINE => _('Bold line'),
346							GRAPH_ITEM_DRAWTYPE_DOT => _('Dot'),
347							GRAPH_ITEM_DRAWTYPE_DASHED_LINE => _('Dashed line')
348						]))
349					)
350					->addRow(_('Colour (OK)'),
351						new CColor('color', '#{color}', false)
352					)
353					->addRow(_('Link indicators'),
354						(new CDiv([
355							(new CTable())
356								->setHeader([_('Trigger'), _('Type'), _('Colour'), _('Action')])
357								->setAttribute('style', 'width: 100%;')
358								->setId('linkTriggerscontainer'),
359							(new CButton(null, _('Add')))
360								->addClass(ZBX_STYLE_BTN_LINK)
361								->onClick('PopUp("popup.php?srctbl=triggers&srcfld1=triggerid&real_hosts=1'.
362									'&reference=linktrigger&multiselect=1&with_triggers=1&noempty=1");'
363								)
364						]))
365							->addClass(ZBX_STYLE_TABLE_FORMS_SEPARATOR)
366							->setAttribute('style', 'min-width: '.ZBX_TEXTAREA_BIG_WIDTH.'px;')
367					)
368					->addItem([
369						(new CDiv())->addClass(ZBX_STYLE_TABLE_FORMS_TD_LEFT),
370						(new CDiv([
371							(new CButton(null, _('Apply')))->setId('formLinkApply'),
372							(new CButton(null, _('Remove')))
373								->addClass(ZBX_STYLE_BTN_ALT)
374								->setId('formLinkRemove'),
375							(new CButton(null, _('Close')))
376								->addClass(ZBX_STYLE_BTN_ALT)
377								->setId('formLinkClose')
378						]))
379							->addClass(ZBX_STYLE_TABLE_FORMS_TD_RIGHT)
380							->addClass(ZBX_STYLE_TFOOT_BUTTONS)
381					])
382			)
383			->toString()
384	?>
385</script>
386
387<script type="text/x-jquery-tmpl" id="elementLinkTableRowTpl">
388	<?= (new CRow([
389			'#{toElementName}',
390			(new CCol())->addClass('element-urls'),
391			(new CCol(
392				(new CButton(null, _('Edit')))
393					->addClass(ZBX_STYLE_BTN_LINK)
394					->addClass('openlink')
395					->setAttribute('data-linkid', '#{linkid}')
396			))->addClass(ZBX_STYLE_NOWRAP)
397		]))->toString()
398	?>
399</script>
400
401<script type="text/x-jquery-tmpl" id="massElementLinkTableRowTpl">
402	<?= (new CRow([
403			'#{fromElementName}',
404			'#{toElementName}',
405			(new CCol())->addClass('element-urls'),
406			(new CCol(
407				(new CButton(null, _('Edit')))
408					->addClass(ZBX_STYLE_BTN_LINK)
409					->addClass('openlink')
410					->setAttribute('data-linkid', '#{linkid}')
411			))->addClass(ZBX_STYLE_NOWRAP)
412		]))->toString()
413	?>
414</script>
415
416<script type="text/x-jquery-tmpl" id="linkTriggerRow">
417	<?= (new CRow([
418			'#{desc_exp}',
419			[
420				new CVar('linktrigger_#{linktriggerid}_desc_exp', '#{desc_exp}'),
421				new CVar('linktrigger_#{linktriggerid}_triggerid', '#{triggerid}'),
422				new CVar('linktrigger_#{linktriggerid}_linktriggerid', '#{linktriggerid}'),
423				(new CComboBox('linktrigger_#{linktriggerid}_drawtype', null, null, [
424					GRAPH_ITEM_DRAWTYPE_LINE => _('Line'),
425					GRAPH_ITEM_DRAWTYPE_BOLD_LINE => _('Bold line'),
426					GRAPH_ITEM_DRAWTYPE_DOT => _('Dot'),
427					GRAPH_ITEM_DRAWTYPE_DASHED_LINE => _('Dashed line')
428				]))
429			],
430			new CColor('linktrigger_#{linktriggerid}_color', '#{color}', false),
431			(new CCol(
432				(new CButton(null, _('Remove')))
433					->addClass(ZBX_STYLE_BTN_LINK)
434					->addClass('triggerRemove')
435					->setAttribute('data-linktriggerid', '#{linktriggerid}')
436			))->addClass(ZBX_STYLE_NOWRAP)
437		]))
438			->setId('linktrigger_#{linktriggerid}')
439			->toString()
440	?>
441</script>
442
443<script type="text/x-jquery-tmpl" id="selementFormUrls">
444	<?= (new CRow([
445			(new CTextBox('url_#{selementurlid}_name', '#{name}'))->setWidth(ZBX_TEXTAREA_SMALL_WIDTH),
446			(new CTextBox('url_#{selementurlid}_url', '#{url}'))->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH),
447			(new CCol(
448				(new CButton(null, _('Remove')))
449					->addClass(ZBX_STYLE_BTN_LINK)
450					->onClick('jQuery("#urlrow_#{selementurlid}").remove();')
451			))->addClass(ZBX_STYLE_NOWRAP)
452		]))
453			->setId('urlrow_#{selementurlid}')
454			->toString()
455	?>
456</script>
457
458<script type="text/javascript">
459	/**
460	 * @see init.js add.popup event
461	 */
462	function addPopupValues(data) {
463		if (data.object === 'name') {
464			jQuery('#application').val(data.values[0].name);
465		}
466		else if (data.object === 'linktrigger') {
467			ZABBIX.apps.map.object.linkForm.addNewTriggers(data.values);
468		}
469	}
470</script>
471