From b9729c49af15aea4886de0d8cc7f9712b2e73bd5 Mon Sep 17 00:00:00 2001 From: Llewellyn van der Merwe Date: Wed, 11 Dec 2019 01:18:55 +0200 Subject: [PATCH] Added some helper script to the new Joomla Module Builder. Consolidated some ajax calls. --- README.md | 4 +- admin/README.txt | 4 +- admin/controllers/ajax.json.php | 43 ++++- admin/models/ajax.php | 60 +++++++ admin/models/forms/admin_view.js | 97 ++++------- admin/models/forms/custom_admin_view.js | 60 ++----- admin/models/forms/dynamic_get.js | 72 +++------ admin/models/forms/field.js | 46 ++---- admin/models/forms/joomla_module.js | 160 +++++++++++++----- admin/models/forms/joomla_plugin.js | 206 +++++++++++++----------- admin/models/forms/layout.js | 48 +++--- admin/models/forms/library.js | 63 +++----- admin/models/forms/site_view.js | 60 ++----- admin/models/forms/template.js | 64 +++----- admin/views/joomla_module/tmpl/edit.php | 13 ++ componentbuilder.xml | 2 +- 16 files changed, 488 insertions(+), 514 deletions(-) diff --git a/README.md b/README.md index b479d82ba..235c2c56e 100644 --- a/README.md +++ b/README.md @@ -144,11 +144,11 @@ TODO + *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com) + *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder) + *First Build*: 30th April, 2015 -+ *Last Build*: 7th December, 2019 ++ *Last Build*: 10th December, 2019 + *Version*: 2.10.8 + *Copyright*: Copyright (C) 2015 - 2019 Vast Development Method. All rights reserved. + *License*: GNU General Public License version 2 or later; see LICENSE.txt -+ *Line count*: **277493** ++ *Line count*: **277467** + *Field count*: **1491** + *File count*: **1766** + *Folder count*: **287** diff --git a/admin/README.txt b/admin/README.txt index b479d82ba..235c2c56e 100644 --- a/admin/README.txt +++ b/admin/README.txt @@ -144,11 +144,11 @@ TODO + *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com) + *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder) + *First Build*: 30th April, 2015 -+ *Last Build*: 7th December, 2019 ++ *Last Build*: 10th December, 2019 + *Version*: 2.10.8 + *Copyright*: Copyright (C) 2015 - 2019 Vast Development Method. All rights reserved. + *License*: GNU General Public License version 2 or later; see LICENSE.txt -+ *Line count*: **277493** ++ *Line count*: **277467** + *Field count*: **1491** + *File count*: **1766** + *Folder count*: **287** diff --git a/admin/controllers/ajax.json.php b/admin/controllers/ajax.json.php index 38bcd82dd..7075f19d0 100644 --- a/admin/controllers/ajax.json.php +++ b/admin/controllers/ajax.json.php @@ -31,6 +31,7 @@ class ComponentbuilderControllerAjax extends JControllerLegacy $this->registerTask('getCronPath', 'ajax'); $this->registerTask('getJCBpackageInfo', 'ajax'); $this->registerTask('getCrowdinDetails', 'ajax'); + $this->registerTask('getModuleCode', 'ajax'); $this->registerTask('getClassCode', 'ajax'); $this->registerTask('getClassCodeIds', 'ajax'); $this->registerTask('getClassHeaderCode', 'ajax'); @@ -304,6 +305,44 @@ class ComponentbuilderControllerAjax extends JControllerLegacy } } break; + case 'getModuleCode': + try + { + $returnRaw = $jinput->get('raw', false, 'BOOLEAN'); + $dataValue = $jinput->get('data', NULL, 'STRING'); + if($dataValue && $user->id != 0) + { + $result = $this->getModel('ajax')->getModuleCode($dataValue); + } + else + { + $result = false; + } + if($callback = $jinput->get('callback', null, 'CMD')) + { + echo $callback . "(".json_encode($result).");"; + } + elseif($returnRaw) + { + echo json_encode($result); + } + else + { + echo "(".json_encode($result).");"; + } + } + catch(Exception $e) + { + if($callback = $jinput->get('callback', null, 'CMD')) + { + echo $callback."(".json_encode($e).");"; + } + else + { + echo "(".json_encode($e).");"; + } + } + break; case 'getClassCode': try { @@ -655,7 +694,7 @@ class ComponentbuilderControllerAjax extends JControllerLegacy try { $returnRaw = $jinput->get('raw', false, 'BOOLEAN'); - $typeValue = $jinput->get('type', NULL, 'INT'); + $typeValue = $jinput->get('type', NULL, 'ALNUM'); if($typeValue && $user->id != 0) { $result = $this->getModel('ajax')->getLinked($typeValue); @@ -693,7 +732,7 @@ class ComponentbuilderControllerAjax extends JControllerLegacy try { $returnRaw = $jinput->get('raw', false, 'BOOLEAN'); - $typeValue = $jinput->get('type', NULL, 'INT'); + $typeValue = $jinput->get('type', NULL, 'ALNUM'); if($typeValue && $user->id != 0) { $result = $this->getModel('ajax')->checkAliasField($typeValue); diff --git a/admin/models/ajax.php b/admin/models/ajax.php index 3acc54869..e12056b33 100644 --- a/admin/models/ajax.php +++ b/admin/models/ajax.php @@ -249,6 +249,66 @@ class ComponentbuilderModelAjax extends JModelList return function_exists('curl_version'); } + // Used in joomla_module + public function getModuleCode($data) + { + // reset the return array + $code = array(); + if (ComponentbuilderHelper::checkJson($data)) + { + // convert the data to object + $data = json_decode($data); + // set class + if (isset($data->class) && is_numeric($data->class) && ((int) $data->class == 2 || (int) $data->class == 1)) + { + $code['class'] = array(); + // add the code + $code['class']['code'] = '// Include the helper functions only once'; + $code['class']['code'] .= PHP_EOL . "JLoader::register('Mod[[[Module]]]Helper', __DIR__ . '/helper.php');"; + // set placement + $code['class']['merge'] = 1; + $code['class']['merge_target'] = 'prepend'; + } + // get data + if (isset($data->get) && ComponentbuilderHelper::checkArray($data->get)) + { + $code['get'] = array(); + // add the code + $code['get']['code'] = '// Include the data functions only once'; + $code['get']['code'] .= PHP_EOL . "JLoader::register('Mod[[[Module]]]Data', __DIR__ . '/data.php');"; + // set placement + $code['get']['merge'] = 1; + $code['get']['merge_target'] = 'prepend'; + } + // get libraries + if (isset($data->lib) && ComponentbuilderHelper::checkArray($data->lib)) + { + $code['lib'] = array(); + // add the code + $code['lib']['code'] = '[[[MOD_LIBRARIES]]]'; + // set placement + $code['lib']['merge'] = 1; + $code['lib']['merge_target'] = '// get the module class sfx (local)'; + } + } + // set the defaults + $code['css'] = array(); + $code['tmpl'] = array(); + // add the code + $code['css']['code'] = '// get the module class sfx (local)'; + $code['css']['code'] .= PHP_EOL . "\$moduleclass_sfx = htmlspecialchars(\$params->get('moduleclass_sfx'), ENT_COMPAT, 'UTF-8');"; + $code['tmpl']['code'] = '// load the default Tmpl'; + $code['tmpl']['code'] .= PHP_EOL . "require JModuleHelper::getLayoutPath('mod_[[[module]]]', \$params->get('layout', 'default'));"; + // set placement + $code['css']['merge'] = 1; + $code['css']['merge_target'] = '// load the default Tmpl'; + $code['tmpl']['merge'] = 1; + $code['tmpl']['merge_target'] = 'append'; + + return $code; + } + + // Used in joomla_plugin public function getClassCode($id, $type) { diff --git a/admin/models/forms/admin_view.js b/admin/models/forms/admin_view.js index 7dfdfea7b..7b4742536 100644 --- a/admin/models/forms/admin_view.js +++ b/admin/models/forms/admin_view.js @@ -819,7 +819,7 @@ jQuery(document).ready(function() }); function checkAliasField() { - checkAliasField_server(1).done(function(result) { + getCodeFrom_server(1, 'type', 'type', 'checkAliasField').done(function(result) { if(result){ // remove the notice jQuery('.note_create_edit_notice_p').remove(); @@ -848,7 +848,7 @@ function checkAliasField_server(type){ } function getAjaxDisplay(type){ - getAjaxDisplay_server(type).done(function(result) { + getCodeFrom_server(1, type, 'type', 'getAjaxDisplay').done(function(result) { if(result){ jQuery('#display_'+type).html(result); } @@ -857,69 +857,25 @@ function getAjaxDisplay(type){ }); } -function getAjaxDisplay_server(type){ - var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.getAjaxDisplay&format=json&raw=true&vdm="+vastDevMod); - if(token.length > 0 && type.length > 0){ - var request = token+'=1&type=' + type; - } - return jQuery.ajax({ - type: 'GET', - url: getUrl, - dataType: 'json', - data: request, - jsonp: false - }); -} - function addData(result,where){ jQuery(result).insertAfter(jQuery(where).closest('.control-group')); } -function getTableColumns_server(tableName){ - var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.tableColumns&format=json&raw=true&vdm="+vastDevMod); - if(token.length > 0 && tableName.length > 0){ - var request = token+'=1&table='+tableName; - } - return jQuery.ajax({ - type: 'GET', - url: getUrl, - dataType: 'json', - data: request, - jsonp: false - }); -} - function getTableColumns(fieldKey, table_, nr_){ // first check if the field is set if(jQuery("#jform_addtables_"+table_+"addtables"+fieldKey+nr_+"_table").length) { // get options var tableName = jQuery("#jform_addtables_"+table_+"addtables"+fieldKey+nr_+"_table option:selected").val(); - getTableColumns_server(tableName).done(function(result) { + getCodeFrom_server(1, tableName, 'table', 'tableColumns').done(function(result) { if(result){ jQuery("textarea#jform_addtables_"+table_+"addtables"+fieldKey+nr_+"_sourcemap").val(result); - } - else - { + } else { jQuery("textarea#jform_addtables_"+table_+"addtables"+fieldKey+nr_+"_sourcemap").val(''); } }); } } -function getDynamicScripts_server(typpe){ - var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.getDynamicScripts&format=json&raw=true&vdm="+vastDevMod); - if(token.length > 0 && typpe.length > 0){ - var request = token+'=1&type='+typpe; - } - return jQuery.ajax({ - type: 'GET', - url: getUrl, - dataType: 'json', - data: request, - jsonp: false - }); -} - function getDynamicScripts(id){ if (1 == id) { // get the current values @@ -932,7 +888,7 @@ function getDynamicScripts(id){ var current_ext = jQuery('textarea#jform_php_import_ext').val(); // set the display method script if(current_import_display.length == 0){ - getDynamicScripts_server('display').done(function(result) { + getCodeFrom_server(1, 'display', 'type', 'getDynamicScripts').done(function(result) { if(result){ jQuery('textarea#jform_php_import_display').val(result); } @@ -940,7 +896,7 @@ function getDynamicScripts(id){ } // set the import method script if(current_import.length == 0){ - getDynamicScripts_server('import').done(function(result) { + getCodeFrom_server(1, 'import', 'type', 'getDynamicScripts').done(function(result) { if(result){ jQuery('textarea#jform_php_import').val(result); } @@ -948,7 +904,7 @@ function getDynamicScripts(id){ } // set the headers method script if(current_headers.length == 0){ - getDynamicScripts_server('headers').done(function(result) { + getCodeFrom_server(1, 'headers', 'type', 'getDynamicScripts').done(function(result) { if(result){ jQuery('textarea#jform_php_import_headers').val(result); } @@ -956,7 +912,7 @@ function getDynamicScripts(id){ } // set the setData method script if(current_setdata.length == 0){ - getDynamicScripts_server('setdata').done(function(result) { + getCodeFrom_server(1, 'setdata', 'type', 'getDynamicScripts').done(function(result) { if(result){ jQuery('textarea#jform_php_import_setdata').val(result); } @@ -964,7 +920,7 @@ function getDynamicScripts(id){ } // set the save method script if(current_save.length == 0){ - getDynamicScripts_server('save').done(function(result) { + getCodeFrom_server(1, 'save', 'type', 'getDynamicScripts').done(function(result) { if(result){ jQuery('textarea#jform_php_import_save').val(result); } @@ -972,7 +928,7 @@ function getDynamicScripts(id){ } // set the view script if(current_view.length == 0){ - getDynamicScripts_server('view').done(function(result) { + getCodeFrom_server(1, 'view', 'type', 'getDynamicScripts').done(function(result) { if(result){ jQuery('textarea#jform_html_import_view').val(result); } @@ -980,7 +936,7 @@ function getDynamicScripts(id){ } // set the import ext script if(current_ext.length == 0){ - getDynamicScripts_server('ext').done(function(result) { + getCodeFrom_server(1, 'ext', 'type', 'getDynamicScripts').done(function(result) { if(result){ jQuery('textarea#jform_php_import_ext').val(result); } @@ -989,6 +945,21 @@ function getDynamicScripts(id){ } } +function getCodeFrom_server(id, type, type_name, callingName){ + var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax." + callingName + "&format=json&raw=true&vdm="+vastDevMod); + if(token.length > 0 && id > 0 && type.length > 0) { + var request = token + '=1&' + type_name + '=' + type + '&id=' + id; + } + return jQuery.ajax({ + type: 'GET', + url: getUrl, + dataType: 'json', + data: request, + jsonp: false + }); +} + + function getEditCustomCodeButtons_server(id){ var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.getEditCustomCodeButtons&format=json&raw=true&vdm="+vastDevMod); if(token.length > 0 && id > 0){ @@ -1080,22 +1051,8 @@ function addButton(type, where, size){ }) } -function getLinked_server(type){ - var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.getLinked&format=json&raw=true&vdm="+vastDevMod); - if(token.length > 0 && type > 0){ - var request = token+'=1&type='+type; - } - return jQuery.ajax({ - type: 'GET', - url: getUrl, - dataType: 'json', - data: request, - jsonp: false - }); -} - function getLinked(){ - getLinked_server(1).done(function(result) { + getCodeFrom_server(1, 'type', 'type', 'getLinked').done(function(result) { if(result){ jQuery('#display_linked_to').html(result); } diff --git a/admin/models/forms/custom_admin_view.js b/admin/models/forms/custom_admin_view.js index cfe2bd858..431dffb1c 100644 --- a/admin/models/forms/custom_admin_view.js +++ b/admin/models/forms/custom_admin_view.js @@ -206,10 +206,10 @@ jQuery(document).ready(function() getEditCustomCodeButtons(); }); -function getLinked_server(type){ - var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.getLinked&format=json&raw=true&vdm="+vastDevMod); - if(token.length > 0 && type > 0){ - var request = token+'=1&type='+type; +function getCodeFrom_server(id, type, type_name, callingName){ + var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax." + callingName + "&format=json&raw=true&vdm="+vastDevMod); + if(token.length > 0 && id > 0 && type.length > 0) { + var request = token + '=1&' + type_name + '=' + type + '&id=' + id; } return jQuery.ajax({ type: 'GET', @@ -220,30 +220,17 @@ function getLinked_server(type){ }); } + function getLinked(){ - getLinked_server(1).done(function(result) { + getCodeFrom_server(1, 'type', 'type', 'getLinked').done(function(result) { if(result){ jQuery('#display_linked_to').html(result); } }); } -function getSnippetDetails_server(snippetId){ - var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.snippetDetails&format=json"); - if(token.length > 0 && snippetId > 0){ - var request = token+'=1&id='+snippetId; - } - return jQuery.ajax({ - type: 'GET', - url: getUrl, - dataType: 'jsonp', - data: request, - jsonp: 'callback' - }); -} - function getSnippetDetails(id){ - getSnippetDetails_server(id).done(function(result) { + getCodeFrom_server(id, '_type', '_type', 'snippetDetails').done(function(result) { if(result.snippet){ var description = ''; if (result.description.length > 0) { @@ -330,22 +317,8 @@ function getLayoutDetails(id){ }) } -function getTemplateDetails_server(id){ - var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.templateDetails&format=json&vdm="+vastDevMod); - if(token.length > 0 && id > 0){ - var request = token+'=1&id='+id; - } - return jQuery.ajax({ - type: 'GET', - url: getUrl, - dataType: 'jsonp', - data: request, - jsonp: 'callback' - }); -} - function getTemplateDetails(id){ - getTemplateDetails_server(id).done(function(result) { + getCodeFrom_server(id, 'type', 'type', 'templateDetails').done(function(result) { if(result){ jQuery('#details').append(result); // make sure the code bocks are active @@ -373,28 +346,15 @@ jQuery(document).ready(function($) getSnippets(); }); -function getSnippets_server(libraries){ - var getUrl = "index.php?option=com_componentbuilder&task=ajax.getSnippets&raw=true&format=json"; - if(token.length > 0 && libraries.length > 0){ - var request = token+'=1&libraries='+JSON.stringify(libraries); - } - return jQuery.ajax({ - type: 'GET', - url: getUrl, - dataType: 'json', - data: request, - jsonp: false - }); -} function getSnippets(){ jQuery("#loading").show(); // clear the selection jQuery('#jform_snippet').find('option').remove().end(); jQuery('#jform_snippet').trigger('liszt:updated'); - // get country value if set + // get libraries value if set var libraries = jQuery("#jform_libraries").val(); if (libraries) { - getSnippets_server(libraries).done(function(result) { + getCodeFrom_server(1, JSON.stringify(libraries), 'libraries', 'getSnippets').done(function(result) { setSnippets(result); jQuery("#loading").hide(); if (typeof snippetButton !== 'undefined') { diff --git a/admin/models/forms/dynamic_get.js b/admin/models/forms/dynamic_get.js index 3cdcd91c3..0dd4495a4 100644 --- a/admin/models/forms/dynamic_get.js +++ b/admin/models/forms/dynamic_get.js @@ -1451,13 +1451,10 @@ function getViewTableColumns(id, asKey, key, rowType, main, table_, nr_){ return true; } } - getViewTableColumns_server(id,asKey,rowType).done(function(result) { - if (result) - { + getViewTableColumns_server(id, asKey, rowType).done(function(result) { + if (result) { loadSelectionData(result, 'view', key, main, table_, nr_); - } - else - { + } else { loadSelectionData(false, 'view', key, main, table_, nr_); } }) @@ -1466,8 +1463,7 @@ function getViewTableColumns(id, asKey, key, rowType, main, table_, nr_){ function getDbTableColumns_server(name,asKey,rowType) { var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.dbTableColumns&format=json&raw=true"); - if (token.length > 0 && name.length > 0 && asKey.length > 0) - { + if (token.length > 0 && name.length > 0 && asKey.length > 0) { var request = token+'=1&as='+asKey+'&type='+rowType+'&name='+name; } return jQuery.ajax({ @@ -1490,12 +1486,9 @@ function getDbTableColumns(name, asKey, key, rowType, main, table_, nr_){ } } getDbTableColumns_server(name,asKey,rowType).done(function(result) { - if (result) - { + if (result) { loadSelectionData(result, 'db', key, main, table_, nr_); - } - else - { + } else { loadSelectionData(false, 'db', key, main, table_, nr_); } }) @@ -1562,10 +1555,25 @@ function updateSubItems(fieldName, fieldNr, table_, nr_) { } } -function getDynamicScripts_server(typpe){ - var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.getDynamicScripts&format=json&raw=true&vdm="+vastDevMod); - if(token.length > 0 && typpe.length > 0){ - var request = token+'=1&type='+typpe; +function getDynamicScripts(id){ + if (1 == id) { + // get the current values + var current_router_parse = jQuery('textarea#jform_php_router_parse').val(); + // set the router parse method script + if(current_router_parse.length == 0){ + getCodeFrom_server(1, 'routerparse', 'type', 'getDynamicScripts').done(function(result) { + if(result){ + jQuery('textarea#jform_php_router_parse').val(result); + } + }); + } + } +} + +function getCodeFrom_server(id, type, type_name, callingName){ + var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax." + callingName + "&format=json&raw=true&vdm="+vastDevMod); + if(token.length > 0 && id > 0 && type.length > 0) { + var request = token + '=1&' + type_name + '=' + type + '&id=' + id; } return jQuery.ajax({ type: 'GET', @@ -1576,20 +1584,6 @@ function getDynamicScripts_server(typpe){ }); } -function getDynamicScripts(id){ - if (1 == id) { - // get the current values - var current_router_parse = jQuery('textarea#jform_php_router_parse').val(); - // set the router parse method script - if(current_router_parse.length == 0){ - getDynamicScripts_server('routerparse').done(function(result) { - if(result){ - jQuery('textarea#jform_php_router_parse').val(result); - } - }); - } - } -} function getEditCustomCodeButtons_server(id){ var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.getEditCustomCodeButtons&format=json&raw=true&vdm="+vastDevMod); @@ -1630,22 +1624,8 @@ function isObject(obj) { return false; } -function getLinked_server(type){ - var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.getLinked&format=json&raw=true&vdm="+vastDevMod); - if(token.length > 0 && type > 0){ - var request = token+'=1&type='+type; - } - return jQuery.ajax({ - type: 'GET', - url: getUrl, - dataType: 'json', - data: request, - jsonp: false - }); -} - function getLinked(){ - getLinked_server(1).done(function(result) { + getCodeFrom_server(1, 'type', 'type', 'getLinked').done(function(result) { if(result){ jQuery('#display_linked_to').html(result); } diff --git a/admin/models/forms/field.js b/admin/models/forms/field.js index eaebe152a..4e913e3b4 100644 --- a/admin/models/forms/field.js +++ b/admin/models/forms/field.js @@ -806,22 +806,8 @@ jQuery(document).ready(function() // the options row id key var rowIdKey = 'properties'; -function getFieldOptions_server(fieldtype){ - var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.fieldOptions&format=json&raw=true&vdm="+vastDevMod); - if(token.length > 0 && fieldtype > 0){ - var request = token+'=1&id='+fieldtype; - } - return jQuery.ajax({ - type: 'GET', - url: getUrl, - dataType: 'json', - data: request, - jsonp: false - }); -} - function getFieldOptions(fieldtype, db){ - getFieldOptions_server(fieldtype).done(function(result) { + getCodeFrom_server(fieldtype, 'type', 'type', 'fieldOptions').done(function(result) { if(result.subform){ // load the list of properties propertiesArray = result.nameListOptions; @@ -1011,7 +997,7 @@ function propertyIsSet(prop, id, targetForm) { function getFieldPropertyDesc_server(fieldtype, property){ var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.getFieldPropertyDesc&format=json&raw=true&vdm="+vastDevMod); - if(token.length > 0 && (fieldtype > 0 || fieldtype.length > 0)&& property.length > 0){ + if(token.length > 0 && (fieldtype > 0 || fieldtype.length > 0) && property.length > 0){ var request = token+'=1&fieldtype='+fieldtype+'&property='+property; } return jQuery.ajax({ @@ -1023,23 +1009,8 @@ function getFieldPropertyDesc_server(fieldtype, property){ }); } - -function getValidationRulesTable_server(){ - var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.getValidationRulesTable&format=json&raw=true&vdm="+vastDevMod); - if(token.length > 0){ - var request = token+'=1&id=1'; - } - return jQuery.ajax({ - type: 'GET', - url: getUrl, - dataType: 'json', - data: request, - jsonp: false - }); -} - function getValidationRulesTable(){ - getValidationRulesTable_server().done(function(result) { + getCodeFrom_server(1,'type','type', 'getValidationRulesTable').done(function(result) { if(result){ jQuery('#display_validation_rules').html(result); } @@ -1093,10 +1064,10 @@ function dbChecker(type){ } } -function getLinked_server(type){ - var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.getLinked&format=json&raw=true&vdm="+vastDevMod); - if(token.length > 0 && type > 0){ - var request = token+'=1&type='+type; +function getCodeFrom_server(id, type, type_name, callingName){ + var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax." + callingName + "&format=json&raw=true&vdm="+vastDevMod); + if(token.length > 0 && id > 0 && type.length > 0) { + var request = token + '=1&' + type_name + '=' + type + '&id=' + id; } return jQuery.ajax({ type: 'GET', @@ -1107,8 +1078,9 @@ function getLinked_server(type){ }); } + function getLinked(){ - getLinked_server(1).done(function(result) { + getCodeFrom_server(1, 'type', 'type', 'getLinked').done(function(result) { if(result){ jQuery('#display_linked_to').html(result); } diff --git a/admin/models/forms/joomla_module.js b/admin/models/forms/joomla_module.js index 0742f5050..d8f1ab1f1 100644 --- a/admin/models/forms/joomla_module.js +++ b/admin/models/forms/joomla_module.js @@ -532,18 +532,50 @@ function isSet(val) } -jQuery(document).ready(function() -{ +jQuery(document).ready(function() { // get the linked details getLinked(); // check and load all the customcode edit buttons setTimeout(getEditCustomCodeButtons, 300); }); + +function setModuleCode() { + var selected_get = jQuery("#jform_add_class_helper option:selected").val(); + var custom_gets = jQuery("#jform_custom_get").val(); + var libraries = jQuery("#jform_libraries").val(); + var values = {'class': selected_get, 'get': custom_gets, 'lib': libraries}; + var editor_id = 'jform_mod_code'; + getCodeFrom_server(1, JSON.stringify(values), 'data', 'getModuleCode').done(function(result) { + if(result.tmpl){ + addCodeToEditor(result.tmpl.code, editor_id, result.tmpl.merge, result.tmpl.merge_target); + } + if(result.css){ + addCodeToEditor(result.css.code, editor_id, result.css.merge, result.css.merge_target); + } + if(result.class){ + addCodeToEditor(result.class.code, editor_id, result.class.merge, result.class.merge_target); + } + if(result.get){ + addCodeToEditor(result.get.code, editor_id, result.get.merge, result.get.merge_target); + } + if(result.lib){ + addCodeToEditor(result.lib.code, editor_id, result.lib.merge, result.lib.merge_target); + } + }); +} -function getLinked_server(type){ - var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.getLinked&format=json&raw=true&vdm="+vastDevMod); - if(token.length > 0 && type > 0){ - var request = token+'=1&type='+type; +function getLinked(){ + getCodeFrom_server(1, 'type', 'type', 'getLinked').done(function(result) { + if(result){ + jQuery('#display_linked_to').html(result); + } + }); +} + +function getCodeFrom_server(id, type, type_name, callingName){ + var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax." + callingName + "&format=json&raw=true&vdm="+vastDevMod); + if(token.length > 0 && id > 0 && type.length > 0) { + var request = token + '=1&' + type_name + '=' + type + '&id=' + id; } return jQuery.ajax({ type: 'GET', @@ -554,13 +586,86 @@ function getLinked_server(type){ }); } -function getLinked(){ - getLinked_server(1).done(function(result) { - if(result){ - jQuery('#display_linked_to').html(result); + +function addCodeToEditor(code_string, editor_id, merge, merge_target){ + if (Joomla.editors.instances.hasOwnProperty(editor_id)) { + var old_code_string = Joomla.editors.instances[editor_id].getValue(); + if (merge && old_code_string.length > 0) { + // make sure not to load the same string twice + if (old_code_string.indexOf(code_string) == -1) { + if ('prepend' === merge_target) { + var _string = code_string + "\n\n" + old_code_string; + } else if (merge_target && 'append' !== merge_target) { + var old_code_array = old_code_string.split(merge_target); + if (old_code_array.length > 1) { + var _string = old_code_array.shift() + "\n\n" + code_string + "\n\n" + merge_target + old_code_array.join(merge_target); + } else { + var _string = code_string + "\n\n" + merge_target + old_code_array.join(''); + } + } else { + var _string = old_code_string + "\n\n" + code_string; + } + Joomla.editors.instances[editor_id].setValue(_string.trim()); + return true; + } + } else { + Joomla.editors.instances[editor_id].setValue(code_string.trim()); + return true; } - }); + } else { + var old_code_string = jQuery('textarea#'+editor_id).val(); + if (merge && old_code_string.length > 0) { + // make sure not to load the same string twice + if (old_code_string.indexOf(code_string) == -1) { + if ('prepend' === merge_target) { + var _string = code_string + "\n\n" + old_code_string; + } else if (merge_target && 'append' !== merge_target) { + var old_code_array = old_code_string.split(merge_target); + if (old_code_array.length > 1) { + var _string = old_code_array.shift() + "\n\n" + code_string + "\n\n" + merge_target + old_code_array.join(merge_target); + } else { + var _string = code_string + "\n\n" + merge_target + old_code_array.join(''); + } + } else { + var _string = old_code_string + "\n\n" + code_string; + } + jQuery('textarea#'+editor_id).val(_string.trim()); + return true; + } + } else { + jQuery('textarea#'+editor_id).val(code_string.trim()); + return true; + } + } + return false; } + + +function removeCodeFromEditor(code_string, editor_id){ + if (Joomla.editors.instances.hasOwnProperty(editor_id)) { + var old_code_string = Joomla.editors.instances[editor_id].getValue(); + if (old_code_string.length > 0) { + // make sure string is found + if (old_code_string.indexOf(code_string) !== -1) { + // remove the code + Joomla.editors.instances[editor_id].setValue(old_code_string.replace(code_string+"\n\n",'').replace("\n\n"+code_string,'').replace(code_string,'')); + return true; + } + } + } else { + var old_code_string = jQuery('textarea#'+editor_id).val(); + if (old_code_string.length > 0) { + // make sure string is found + if (old_code_string.indexOf(code_string) !== -1) { + // remove the code + jQuery('textarea#'+editor_id).val(old_code_string.replace(code_string+"\n\n",'').replace("\n\n"+code_string,'').replace(code_string,'')); + return true; + } + } + } + return false; +} + function getEditCustomCodeButtons_server(id){ var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.getEditCustomCodeButtons&format=json&raw=true&vdm="+vastDevMod); @@ -601,22 +706,8 @@ function isObject(obj) { return false; } -function getSnippetDetails_server(snippetId){ - var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.snippetDetails&format=json"); - if(token.length > 0 && snippetId > 0){ - var request = token+'=1&id='+snippetId; - } - return jQuery.ajax({ - type: 'GET', - url: getUrl, - dataType: 'jsonp', - data: request, - jsonp: 'callback' - }); -} - function getSnippetDetails(id){ - getSnippetDetails_server(id).done(function(result) { + getCodeFrom_server(id, '_type', '_type', 'snippetDetails').done(function(result) { if(result.snippet){ var description = ''; if (result.description.length > 0) { @@ -667,28 +758,15 @@ jQuery(document).ready(function($) getSnippets(); }); -function getSnippets_server(libraries){ - var getUrl = "index.php?option=com_componentbuilder&task=ajax.getSnippets&raw=true&format=json"; - if(token.length > 0 && libraries.length > 0){ - var request = token+'=1&libraries='+JSON.stringify(libraries); - } - return jQuery.ajax({ - type: 'GET', - url: getUrl, - dataType: 'json', - data: request, - jsonp: false - }); -} function getSnippets(){ jQuery("#loading").show(); // clear the selection jQuery('#jform_snippet').find('option').remove().end(); jQuery('#jform_snippet').trigger('liszt:updated'); - // get country value if set + // get libraries value if set var libraries = jQuery("#jform_libraries").val(); if (libraries) { - getSnippets_server(libraries).done(function(result) { + getCodeFrom_server(1, JSON.stringify(libraries), 'libraries', 'getSnippets').done(function(result) { setSnippets(result); jQuery("#loading").hide(); if (typeof snippetButton !== 'undefined') { diff --git a/admin/models/forms/joomla_plugin.js b/admin/models/forms/joomla_plugin.js index 5fe6cbff5..b02d00119 100644 --- a/admin/models/forms/joomla_plugin.js +++ b/admin/models/forms/joomla_plugin.js @@ -685,6 +685,21 @@ jQuery(document).ready(function() rowWatcher(); }); +function getCodeFrom_server(id, type, type_name, callingName){ + var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax." + callingName + "&format=json&raw=true&vdm="+vastDevMod); + if(token.length > 0 && id > 0 && type.length > 0) { + var request = token + '=1&' + type_name + '=' + type + '&id=' + id; + } + return jQuery.ajax({ + type: 'GET', + url: getUrl, + dataType: 'json', + data: request, + jsonp: false + }); +} + + // set selection the options selectionMemory = {'property':{},'method':{}}; selectionActiveArray = {'property':{},'method':{}}; @@ -702,20 +717,6 @@ function buildSelectionMemory(type) { } } -function getClassStuff_server(id, type, callingName){ - var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax."+callingName+"&format=json&raw=true"); - if(token.length > 0 && id > 0 && type.length > 0){ - var request = token+'=1&type=' + type + '&id=' + id; - } - return jQuery.ajax({ - type: 'GET', - url: getUrl, - dataType: 'json', - data: request, - jsonp: false - }); -} - function getClassHeaderCode(){ // now get the values var value = jQuery("#jform_class_extends option:selected").val(); @@ -725,13 +726,13 @@ function getClassHeaderCode(){ var _result = jQuery.jStorage.get('extends_header_'+value, null); if (_result) { // now set the code - addCodeToEditor(_result, "jform_head", false); + addCodeToEditor(_result, "jform_head", false, null); } else { // now get the code - getClassStuff_server(value, 'extends', 'getClassHeaderCode').done(function(result) { + getCodeFrom_server(value, 'extends', 'type', 'getClassHeaderCode').done(function(result) { if(result){ // now set the code - addCodeToEditor(result, "jform_head", false); + addCodeToEditor(result, "jform_head", false, null); // add result to local memory jQuery.jStorage.set('extends_header_'+value, result, {TTL: expire}); } @@ -744,7 +745,7 @@ function getClassCodeIds(type, target_field, reset_all){ // now get the value var value = jQuery('#'+target_field).val(); // now get the code - getClassStuff_server(value, type, 'getClassCodeIds').done(function(result) { + getCodeFrom_server(value, type, 'type', 'getClassCodeIds').done(function(result) { if(result){ // reset the selection selectionActiveArray[type] = {}; @@ -834,15 +835,15 @@ function getClassCode(field, type){ var _result = jQuery.jStorage.get('code_4_'+type+'_'+old_value, null); if (_result) { // now remove the code - if (removeCodeFromEditor(_result)) { + if (removeCodeFromEditor(_result, 'jform_main_class_code')) { selectionMemory[type][id] = 0; } } else { // now get the code - getClassStuff_server(old_value, type, 'getClassCode').done(function(result) { + getCodeFrom_server(old_value, type, 'type', 'getClassCode').done(function(result) { if(result){ // now remove the code - if (removeCodeFromEditor(result)) { + if (removeCodeFromEditor(result, 'jform_main_class_code')) { selectionMemory[type][id] = 0; } // add result to local memory @@ -862,19 +863,25 @@ function getClassCode(field, type){ selectedIdRemoved[type] = id; // do a dynamic update (to remove what was already used) selectionDynamicUpdate(type); + // set the add action + if (type === 'property') { + var _action_add = 'prepend'; + } else { + var _action_add = 'append'; + } // we first check local memory var _result = jQuery.jStorage.get('code_4_'+type+'_'+value, null); if (_result) { // now set the code - if (addCodeToEditor(_result, "jform_main_class_code", true)) { + if (addCodeToEditor(_result, "jform_main_class_code", true, _action_add)) { selectionMemory[type][id] = value; } } else { // now get the code - getClassStuff_server(value, type, 'getClassCode').done(function(result) { + getCodeFrom_server(value, type, 'type', 'getClassCode').done(function(result) { if(result){ // now set the code - if (addCodeToEditor(result, "jform_main_class_code", true)) { + if (addCodeToEditor(result, "jform_main_class_code", true, _action_add)) { selectionMemory[type][id] = value; } // add result to local memory @@ -885,60 +892,6 @@ function getClassCode(field, type){ } } -function addCodeToEditor(code_string, editor_id, merge){ - if (Joomla.editors.instances.hasOwnProperty(editor_id)) { - var old_code_string = Joomla.editors.instances[editor_id].getValue(); - if (merge && old_code_string.length > 0) { - // make sure not to load the same string twice - if (old_code_string.indexOf(code_string) == -1) { - Joomla.editors.instances[editor_id].setValue(old_code_string + "\n\n" + code_string); - return true; - } - } else { - Joomla.editors.instances[editor_id].setValue(code_string); - return true; - } - } else { - var old_code_string = jQuery('textarea#'+editor_id).val(); - if (merge && old_code_string.length > 0) { - // make sure not to load the same string twice - if (old_code_string.indexOf(code_string) == -1) { - jQuery('textarea#'+editor_id).val(old_code_string + "\n\n" + code_string); - return true; - } - } else { - jQuery('textarea#'+editor_id).val(code_string); - return true; - } - } - return false; -} - -function removeCodeFromEditor(code_string){ - if (Joomla.editors.instances.hasOwnProperty("jform_main_class_code")) { - var old_code_string = Joomla.editors.instances['jform_main_class_code'].getValue(); - if (old_code_string.length > 0) { - // make sure not to load the same string twice - if (old_code_string.indexOf(code_string) !== -1) { - // remove the code - Joomla.editors.instances['jform_main_class_code'].setValue(old_code_string.replace(code_string+"\n\n",'').replace("\n\n"+code_string,'').replace(code_string,'')); - return true; - } - } - } else { - var old_code_string = jQuery('textarea#jform_main_class_code').val(); - if (old_code_string.length > 0) { - // make sure not to load the same string twice - if (old_code_string.indexOf(code_string) !== -1) { - // remove the code - jQuery('textarea#jform_main_class_code').val(old_code_string.replace(code_string+"\n\n",'').replace("\n\n"+code_string,'').replace(code_string,'')); - return true; - } - } - } - return false; -} - function selectionDynamicUpdate(type) { selectionAvailable = {}; selectionSelectedArray = {}; @@ -1001,14 +954,14 @@ function rowWatcher() { var _result = jQuery.jStorage.get('code_4_'+type_call+'_'+valid_value, null); if (_result) { // now remove the code - if (removeCodeFromEditor(_result)) { + if (removeCodeFromEditor(_result, 'jform_main_class_code')) { selectionMemory[type_call][valid_call] = 0; } } else { // now get the code - getClassStuff_server(valid_value, type_call, 'getClassCode').done(function(result) { + getCodeFrom_server(valid_value, type_call, 'type', 'getClassCode').done(function(result) { if(result){ - if (removeCodeFromEditor(result)) { + if (removeCodeFromEditor(result, 'jform_main_class_code')) { selectionMemory[type_call][valid_call] = 0;; } // add result to local memory @@ -1052,23 +1005,90 @@ function propertyIsSet(prop, id, type) { } return false; } + -function getLinked_server(type){ - var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.getLinked&format=json&raw=true&vdm="+vastDevMod); - if(token.length > 0 && type > 0){ - var request = token+'=1&type='+type; +function addCodeToEditor(code_string, editor_id, merge, merge_target){ + if (Joomla.editors.instances.hasOwnProperty(editor_id)) { + var old_code_string = Joomla.editors.instances[editor_id].getValue(); + if (merge && old_code_string.length > 0) { + // make sure not to load the same string twice + if (old_code_string.indexOf(code_string) == -1) { + if ('prepend' === merge_target) { + var _string = code_string + "\n\n" + old_code_string; + } else if (merge_target && 'append' !== merge_target) { + var old_code_array = old_code_string.split(merge_target); + if (old_code_array.length > 1) { + var _string = old_code_array.shift() + "\n\n" + code_string + "\n\n" + merge_target + old_code_array.join(merge_target); + } else { + var _string = code_string + "\n\n" + merge_target + old_code_array.join(''); + } + } else { + var _string = old_code_string + "\n\n" + code_string; + } + Joomla.editors.instances[editor_id].setValue(_string.trim()); + return true; + } + } else { + Joomla.editors.instances[editor_id].setValue(code_string.trim()); + return true; + } + } else { + var old_code_string = jQuery('textarea#'+editor_id).val(); + if (merge && old_code_string.length > 0) { + // make sure not to load the same string twice + if (old_code_string.indexOf(code_string) == -1) { + if ('prepend' === merge_target) { + var _string = code_string + "\n\n" + old_code_string; + } else if (merge_target && 'append' !== merge_target) { + var old_code_array = old_code_string.split(merge_target); + if (old_code_array.length > 1) { + var _string = old_code_array.shift() + "\n\n" + code_string + "\n\n" + merge_target + old_code_array.join(merge_target); + } else { + var _string = code_string + "\n\n" + merge_target + old_code_array.join(''); + } + } else { + var _string = old_code_string + "\n\n" + code_string; + } + jQuery('textarea#'+editor_id).val(_string.trim()); + return true; + } + } else { + jQuery('textarea#'+editor_id).val(code_string.trim()); + return true; + } } - return jQuery.ajax({ - type: 'GET', - url: getUrl, - dataType: 'json', - data: request, - jsonp: false - }); + return false; } + +function removeCodeFromEditor(code_string, editor_id){ + if (Joomla.editors.instances.hasOwnProperty(editor_id)) { + var old_code_string = Joomla.editors.instances[editor_id].getValue(); + if (old_code_string.length > 0) { + // make sure string is found + if (old_code_string.indexOf(code_string) !== -1) { + // remove the code + Joomla.editors.instances[editor_id].setValue(old_code_string.replace(code_string+"\n\n",'').replace("\n\n"+code_string,'').replace(code_string,'')); + return true; + } + } + } else { + var old_code_string = jQuery('textarea#'+editor_id).val(); + if (old_code_string.length > 0) { + // make sure string is found + if (old_code_string.indexOf(code_string) !== -1) { + // remove the code + jQuery('textarea#'+editor_id).val(old_code_string.replace(code_string+"\n\n",'').replace("\n\n"+code_string,'').replace(code_string,'')); + return true; + } + } + } + return false; +} + + function getLinked(){ - getLinked_server(1).done(function(result) { + getCodeFrom_server(1, 'type', 'type', 'getLinked').done(function(result) { if(result){ jQuery('#display_linked_to').html(result); } diff --git a/admin/models/forms/layout.js b/admin/models/forms/layout.js index bdb830410..b09a31a37 100644 --- a/admin/models/forms/layout.js +++ b/admin/models/forms/layout.js @@ -45,6 +45,21 @@ jQuery(document).ready(function($) getEditCustomCodeButtons(); }); +function getCodeFrom_server(id, type, type_name, callingName){ + var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax." + callingName + "&format=json&raw=true&vdm="+vastDevMod); + if(token.length > 0 && id > 0 && type.length > 0) { + var request = token + '=1&' + type_name + '=' + type + '&id=' + id; + } + return jQuery.ajax({ + type: 'GET', + url: getUrl, + dataType: 'json', + data: request, + jsonp: false + }); +} + + function getEditCustomCodeButtons_server(id){ var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.getEditCustomCodeButtons&format=json&raw=true&vdm="+vastDevMod); if(token.length > 0 && id > 0){ @@ -84,22 +99,8 @@ function isObject(obj) { return false; } -function getSnippetDetails_server(snippetId){ - var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.snippetDetails&format=json"); - if(token.length > 0 && snippetId > 0){ - var request = token+'=1&id='+snippetId; - } - return jQuery.ajax({ - type: 'GET', - url: getUrl, - dataType: 'jsonp', - data: request, - jsonp: 'callback' - }); -} - function getSnippetDetails(id){ - getSnippetDetails_server(id).done(function(result) { + getCodeFrom_server(id, '_type', '_type', 'snippetDetails').done(function(result) { if(result.snippet){ var description = ''; if (result.description.length > 0) { @@ -203,28 +204,15 @@ jQuery(document).ready(function($) getSnippets(); }); -function getSnippets_server(libraries){ - var getUrl = "index.php?option=com_componentbuilder&task=ajax.getSnippets&raw=true&format=json"; - if(token.length > 0 && libraries.length > 0){ - var request = token+'=1&libraries='+JSON.stringify(libraries); - } - return jQuery.ajax({ - type: 'GET', - url: getUrl, - dataType: 'json', - data: request, - jsonp: false - }); -} function getSnippets(){ jQuery("#loading").show(); // clear the selection jQuery('#jform_snippet').find('option').remove().end(); jQuery('#jform_snippet').trigger('liszt:updated'); - // get country value if set + // get libraries value if set var libraries = jQuery("#jform_libraries").val(); if (libraries) { - getSnippets_server(libraries).done(function(result) { + getCodeFrom_server(1, JSON.stringify(libraries), 'libraries', 'getSnippets').done(function(result) { setSnippets(result); jQuery("#loading").hide(); if (typeof snippetButton !== 'undefined') { diff --git a/admin/models/forms/library.js b/admin/models/forms/library.js index 67406e2cd..7ddc51e9c 100644 --- a/admin/models/forms/library.js +++ b/admin/models/forms/library.js @@ -868,7 +868,7 @@ function addData(result,where){ } function getAjaxDisplay(type){ - getAjaxDisplay_server(type).done(function(result) { + getCodeFrom_server(1, type, 'type', 'getAjaxDisplay').done(function(result) { if (result) { jQuery('#display_'+type).html(result); } @@ -877,39 +877,11 @@ function getAjaxDisplay(type){ }); } -function getAjaxDisplay_server(type){ - var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.getAjaxDisplay&format=json&raw=true&vdm="+vastDevMod); - if (token.length > 0 && type.length > 0) { - var request = token+'=1&type=' + type; - } - return jQuery.ajax({ - type: 'GET', - url: getUrl, - dataType: 'json', - data: request, - jsonp: false - }); -} - -function getFieldSelectOptions_server(fieldId){ - var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.fieldSelectOptions&format=json&raw=true"); - if (token.length > 0 && fieldId > 0) { - var request = token+'=1&id='+fieldId; - } - return jQuery.ajax({ - type: 'GET', - url: getUrl, - dataType: 'json', - data: request, - jsonp: false - }); -} - function getFieldSelectOptions(fieldKey){ // first check if the field is set if(jQuery("#jform_addconditions__addconditions"+fieldKey+"__option_field").length) { var fieldId = jQuery("#jform_addconditions__addconditions"+fieldKey+"__option_field option:selected").val(); - getFieldSelectOptions_server(fieldId).done(function(result) { + getCodeFrom_server(fieldId, 'type', 'type', 'fieldSelectOptions').done(function(result) { if(result) { jQuery('textarea#jform_addconditions__addconditions'+fieldKey+'__field_options').val(result); } else { @@ -919,6 +891,21 @@ function getFieldSelectOptions(fieldKey){ } } +function getCodeFrom_server(id, type, type_name, callingName){ + var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax." + callingName + "&format=json&raw=true&vdm="+vastDevMod); + if(token.length > 0 && id > 0 && type.length > 0) { + var request = token + '=1&' + type_name + '=' + type + '&id=' + id; + } + return jQuery.ajax({ + type: 'GET', + url: getUrl, + dataType: 'json', + data: request, + jsonp: false + }); +} + + function getEditCustomCodeButtons_server(id){ var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.getEditCustomCodeButtons&format=json&raw=true&vdm="+vastDevMod); if(token.length > 0 && id > 0){ @@ -1010,22 +997,8 @@ function addButton(type, where, size){ }) } -function getLinked_server(type){ - var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.getLinked&format=json&raw=true&vdm="+vastDevMod); - if(token.length > 0 && type > 0){ - var request = token+'=1&type='+type; - } - return jQuery.ajax({ - type: 'GET', - url: getUrl, - dataType: 'json', - data: request, - jsonp: false - }); -} - function getLinked(){ - getLinked_server(1).done(function(result) { + getCodeFrom_server(1, 'type', 'type', 'getLinked').done(function(result) { if(result){ jQuery('#display_linked_to').html(result); } diff --git a/admin/models/forms/site_view.js b/admin/models/forms/site_view.js index e3c732922..5c7f90c22 100644 --- a/admin/models/forms/site_view.js +++ b/admin/models/forms/site_view.js @@ -247,10 +247,10 @@ jQuery(document).ready(function() getEditCustomCodeButtons(); }); -function getLinked_server(type){ - var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.getLinked&format=json&raw=true&vdm="+vastDevMod); - if(token.length > 0 && type > 0){ - var request = token+'=1&type='+type; +function getCodeFrom_server(id, type, type_name, callingName){ + var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax." + callingName + "&format=json&raw=true&vdm="+vastDevMod); + if(token.length > 0 && id > 0 && type.length > 0) { + var request = token + '=1&' + type_name + '=' + type + '&id=' + id; } return jQuery.ajax({ type: 'GET', @@ -261,30 +261,17 @@ function getLinked_server(type){ }); } + function getLinked(){ - getLinked_server(1).done(function(result) { + getCodeFrom_server(1, 'type', 'type', 'getLinked').done(function(result) { if(result){ jQuery('#display_linked_to').html(result); } }); } -function getSnippetDetails_server(snippetId){ - var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.snippetDetails&format=json"); - if(token.length > 0 && snippetId > 0){ - var request = token+'=1&id='+snippetId; - } - return jQuery.ajax({ - type: 'GET', - url: getUrl, - dataType: 'jsonp', - data: request, - jsonp: 'callback' - }); -} - function getSnippetDetails(id){ - getSnippetDetails_server(id).done(function(result) { + getCodeFrom_server(id, '_type', '_type', 'snippetDetails').done(function(result) { if(result.snippet){ var description = ''; if (result.description.length > 0) { @@ -371,22 +358,8 @@ function getLayoutDetails(id){ }) } -function getTemplateDetails_server(id){ - var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.templateDetails&format=json&vdm="+vastDevMod); - if(token.length > 0 && id > 0){ - var request = token+'=1&id='+id; - } - return jQuery.ajax({ - type: 'GET', - url: getUrl, - dataType: 'jsonp', - data: request, - jsonp: 'callback' - }); -} - function getTemplateDetails(id){ - getTemplateDetails_server(id).done(function(result) { + getCodeFrom_server(id, 'type', 'type', 'templateDetails').done(function(result) { if(result){ jQuery('#details').append(result); // make sure the code bocks are active @@ -414,28 +387,15 @@ jQuery(document).ready(function($) getSnippets(); }); -function getSnippets_server(libraries){ - var getUrl = "index.php?option=com_componentbuilder&task=ajax.getSnippets&raw=true&format=json"; - if(token.length > 0 && libraries.length > 0){ - var request = token+'=1&libraries='+JSON.stringify(libraries); - } - return jQuery.ajax({ - type: 'GET', - url: getUrl, - dataType: 'json', - data: request, - jsonp: false - }); -} function getSnippets(){ jQuery("#loading").show(); // clear the selection jQuery('#jform_snippet').find('option').remove().end(); jQuery('#jform_snippet').trigger('liszt:updated'); - // get country value if set + // get libraries value if set var libraries = jQuery("#jform_libraries").val(); if (libraries) { - getSnippets_server(libraries).done(function(result) { + getCodeFrom_server(1, JSON.stringify(libraries), 'libraries', 'getSnippets').done(function(result) { setSnippets(result); jQuery("#loading").hide(); if (typeof snippetButton !== 'undefined') { diff --git a/admin/models/forms/template.js b/admin/models/forms/template.js index 44557d815..01afa3f7f 100644 --- a/admin/models/forms/template.js +++ b/admin/models/forms/template.js @@ -45,6 +45,21 @@ jQuery(document).ready(function($) getEditCustomCodeButtons(); }); +function getCodeFrom_server(id, type, type_name, callingName){ + var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax." + callingName + "&format=json&raw=true&vdm="+vastDevMod); + if(token.length > 0 && id > 0 && type.length > 0) { + var request = token + '=1&' + type_name + '=' + type + '&id=' + id; + } + return jQuery.ajax({ + type: 'GET', + url: getUrl, + dataType: 'json', + data: request, + jsonp: false + }); +} + + function getEditCustomCodeButtons_server(id){ var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.getEditCustomCodeButtons&format=json&raw=true&vdm="+vastDevMod); if(token.length > 0 && id > 0){ @@ -84,22 +99,8 @@ function isObject(obj) { return false; } -function getSnippetDetails_server(snippetId){ - var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.snippetDetails&format=json"); - if(token.length > 0 && snippetId > 0){ - var request = token+'=1&id='+snippetId; - } - return jQuery.ajax({ - type: 'GET', - url: getUrl, - dataType: 'jsonp', - data: request, - jsonp: 'callback' - }); -} - function getSnippetDetails(id){ - getSnippetDetails_server(id).done(function(result) { + getCodeFrom_server(id, '_type', '_type', 'snippetDetails').done(function(result) { if(result.snippet){ var description = ''; if (result.description.length > 0) { @@ -186,22 +187,8 @@ function getLayoutDetails(id){ }) } -function getTemplateDetails_server(id){ - var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.templateDetails&format=json&vdm="+vastDevMod); - if(token.length > 0 && id > 0){ - var request = token+'=1&id='+id; - } - return jQuery.ajax({ - type: 'GET', - url: getUrl, - dataType: 'jsonp', - data: request, - jsonp: 'callback' - }); -} - function getTemplateDetails(id){ - getTemplateDetails_server(id).done(function(result) { + getCodeFrom_server(id, 'type', 'type', 'templateDetails').done(function(result) { if(result){ jQuery('#details').append(result); // make sure the code bocks are active @@ -229,28 +216,15 @@ jQuery(document).ready(function($) getSnippets(); }); -function getSnippets_server(libraries){ - var getUrl = "index.php?option=com_componentbuilder&task=ajax.getSnippets&raw=true&format=json"; - if(token.length > 0 && libraries.length > 0){ - var request = token+'=1&libraries='+JSON.stringify(libraries); - } - return jQuery.ajax({ - type: 'GET', - url: getUrl, - dataType: 'json', - data: request, - jsonp: false - }); -} function getSnippets(){ jQuery("#loading").show(); // clear the selection jQuery('#jform_snippet').find('option').remove().end(); jQuery('#jform_snippet').trigger('liszt:updated'); - // get country value if set + // get libraries value if set var libraries = jQuery("#jform_libraries").val(); if (libraries) { - getSnippets_server(libraries).done(function(result) { + getCodeFrom_server(1, JSON.stringify(libraries), 'libraries', 'getSnippets').done(function(result) { setSnippets(result); jQuery("#loading").hide(); if (typeof snippetButton !== 'undefined') { diff --git a/admin/views/joomla_module/tmpl/edit.php b/admin/views/joomla_module/tmpl/edit.php index 37453c895..1d62b273b 100644 --- a/admin/views/joomla_module/tmpl/edit.php +++ b/admin/views/joomla_module/tmpl/edit.php @@ -579,9 +579,22 @@ jQuery(function() { jQuery(this).selText().addClass("selected"); }); }); +jQuery('#adminForm').on('change', '#jform_custom_get',function (e) { + e.preventDefault(); + // load the dynamic get include with the needed initiation + setModuleCode(); +}); +jQuery('#adminForm').on('change', '#jform_add_class_helper',function (e) { + e.preventDefault(); + // load the dynamic helper include with the needed initiation + setModuleCode(); +}); jQuery('#adminForm').on('change', '#jform_libraries',function (e) { e.preventDefault(); + // get the snippets of the selected libraries getSnippets(); + // load the dynamic media placeholders if needed + setModuleCode(); }); jQuery.fn.selText = function() { diff --git a/componentbuilder.xml b/componentbuilder.xml index ab02b7519..ae5c8e0da 100644 --- a/componentbuilder.xml +++ b/componentbuilder.xml @@ -1,7 +1,7 @@ COM_COMPONENTBUILDER - 7th December, 2019 + 10th December, 2019 Llewellyn van der Merwe llewellyn@joomlacomponentbuilder.com http://www.joomlacomponentbuilder.com