changeType = function() { const type = event.target.value; const $form = $(event.target).closest('form'); $form.find('[name^=options]').closest('.form-group').toggleClass('hidden', type != 'option'); $form.find('#sql').closest('.form-group').toggleClass('hidden', type != 'sql'); $form.find('[name=keyField]').closest('.form-group').toggleClass('hidden', type != 'sql'); $form.find('[name=module]').closest('.form-group').toggleClass('hidden', type != 'system'); $form.find('[name=lang]').closest('.form-group').toggleClass('hidden', type != 'lang'); }; changeSql = function() { const $sql = $(event.target); if($sql.val() == '') return false; $.post($.createLink('workflowdatasource', 'ajaxCheckSql'), {sql: $sql.val()}, function(response) { const $keyPicker = $('[name=keyField]').zui('picker'); const $valuePicker = $('[name=valueField]').zui('picker'); $keyPicker.$.setValue(''); $valuePicker.$.setValue(''); response = JSON.parse(response); if(response.result == 'success') { $keyPicker.render({items: response.options}); $valuePicker.render({items: response.options}); } if(response.result == 'fail') { $keyPicker.render({items: []}); $valuePicker.render({items: []}); const $tip = $('
').text(response.message); $sql.addClass('has-error').after($tip); } }); }; changeModule = function() { const module = event.target.value; if(module == '') return false; const $form = $(event.target).closest('form'); const $methodPicker = $form.find('[name=method]').zui('picker'); const $methodDesc = $form.find('#methodDesc'); $methodPicker.$.setValue(''); $methodPicker.render({items: []}); $methodDesc.val(''); $form.find('#paramsDIV').empty(); $.getJSON($.createLink('workflowdatasource', 'ajaxGetModuleMethods', 'module=' + module), function(methods) { $methodPicker.render({items: methods}); }); }; changeMethod = function() { const $form = $(event.target).closest('form'); const module = $form.find('[name=module]').val(); const method = event.target.value; if(module == '' || method == '') return false; $.get($.createLink('workflowdatasource', 'ajaxGetMethodComment', 'module=' + module + '&method=' + method), function(methodDesc) { $form.find('#methodDesc').val(methodDesc).attr('title', methodDesc); }); var link = $.createLink('workflowdatasource', 'ajaxGetMethodParams', 'module=' + module + '&method=' + method); $('#paramsDIV').load(link); }; addOption = function(target) { const $inputGroup = $(event.target).closest('.input-group'); $inputGroup.after($inputGroup.clone()); $inputGroup.next().find('input').val(''); }; delOption = function(target) { const $inputGroup = $(event.target).closest('.input-group'); if($inputGroup.siblings('.input-group').length > 0) { $inputGroup.remove(); } else { $inputGroup.find('input').val(''); } }; onRenderCell = function(result, {row, col}) { if(result) { if(col.name == 'datasource') { if(row.data.type == 'option' && result[0]) return [Object.values(JSON.parse(result[0])).join()]; if(row.data.type == 'category') return ['treeModel->getOptionMenu(0, "datasource_' + row.data.id + '")']; if(row.data.type == 'system' && result[0]) { const datasource = JSON.parse(result[0]); const params = datasource.params.map(function(param) {return param.name + ' = "' + param.value + '"'}); return [datasource.module + 'Model->' + datasource.method + '(' + params.join(', ') + ')']; } } if(col.name == 'buildin') return [{html: row.data.buildin == 1 ? '' : ''}]; } return result; }