diff --git a/module/doc/js/setdocbasic.ui.js b/module/doc/js/setdocbasic.ui.js new file mode 100644 index 0000000000..ce962e778e --- /dev/null +++ b/module/doc/js/setdocbasic.ui.js @@ -0,0 +1,28 @@ +window.loadExecutions = function(e) +{ + const officeTypes = $('#setDocBasicForm').data('officeTypes'); + const docType = $('#setDocBasicForm').data('docType'); + const projectElement = officeTypes.includes(docType) ? '.projectBox input[name="project"]': '#setDocBasicForm input[name="project"]'; + const executionElement = officeTypes.includes(docType) ? '.executionBox input[name="execution"]': '#setDocBasicForm input[name="execution"]'; + const projectID = $(projectElement).val(); + if($(executionElement)) + { + const executionID = $(executionElement).val(); + const link = $.createLink('project', 'ajaxGetExecutions', "projectID=" + projectID + "&mode=multiple,leaf,noprefix"); + $.getJSON(link, function(data) + { + let $picker = $(executionElement).zui('picker'); + $picker.render({items: data.items, disabled: !data.multiple}); + $picker.$.setValue(executionID); + }); + } + + const link = $.createLink('doc', 'ajaxGetModules', 'objectType=project&objectID=' + projectID + '&type=doc'); + $.getJSON(link, function(data) + { + const moduleElement = officeTypes.includes(docType) ? '.moduleBox input[name="module"]': '#setDocBasicForm input[name="module"]'; + const $picker = $(moduleElement).zui('picker'); + $picker.render({items: data}); + $picker.$.setValue(''); + }); +} diff --git a/module/doc/ui/setdocbasic.html.php b/module/doc/ui/setdocbasic.html.php index 061bc93e50..fb0dd59c7d 100644 --- a/module/doc/ui/setdocbasic.html.php +++ b/module/doc/ui/setdocbasic.html.php @@ -13,6 +13,8 @@ namespace zin; formPanel ( setID('setDocBasicForm'), + setData('officeTypes', $this->config->doc->officeTypes), + setData('docType', isset($doc) ? $doc->users : 'undefined'), set::title($title), set::submitBtnText($isDraft ? $lang->doc->saveDraft : (empty($docID) ? $lang->doc->release : $lang->save)), on::change('[name=space],[name=product],[name=execution]')->call('loadObjectModules', jsRaw('event')),