Component-Builder/admin/models/forms/custom_admin_view.js
Llewellyn van der Merwe f15b67cff1
Added notice of language (tanslations) added or not added with details to compiler
Resolved gh-146 compiler error on joined db in dinamic get thanks to @mwweb & @ro-ot
Resolved gh-147 by adding the sort of fields back into the save method
Resolved gh-144 to ensure that the published tab (fields overwriting and adding) option is available again.
Resolved gh-145 by moving the subforms to their own tab in dynamic get view
Converted all repeatable fields to subform fields in Joomla component view
Moved 9 subforms and other fields to their own table and view (decopuling them fom Joomla component view), that means we added 9 more views and tables to JCB
Added all the ajax for buttons and display views to Joomla component view
Added tmp scripts all across the new areas with subforms to ensure all repeatable fields are converted. Will be removed in v2.7.0
Added synced copy, change state and delete in Joomla components view in relation to all tables linked to it (same as with admin views)
2017-10-26 18:43:51 +02:00

494 lines
15 KiB
JavaScript

/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
__ __ _ _____ _ _ __ __ _ _ _
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
| |
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 32 of this MVC
@build 25th October, 2017
@created 13th August, 2015
@package Component Builder
@subpackage custom_admin_view.js
@author Llewellyn van der Merwe <http://vdm.bz/component-builder>
@copyright Copyright (C) 2015. All Rights Reserved
@license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
Builds Complex Joomla Components
/-----------------------------------------------------------------------------------------------------------------------------*/
// Some Global Values
jform_vvvvvyavxw_required = false;
jform_vvvvvybvxx_required = false;
jform_vvvvvycvxy_required = false;
jform_vvvvvydvxz_required = false;
jform_vvvvvyevya_required = false;
jform_vvvvvyfvyb_required = false;
jform_vvvvvygvyc_required = false;
jform_vvvvvygvyd_required = false;
jform_vvvvvyhvye_required = false;
// Initial Script
jQuery(document).ready(function()
{
var add_php_view_vvvvvya = jQuery("#jform_add_php_view input[type='radio']:checked").val();
vvvvvya(add_php_view_vvvvvya);
var add_php_jview_display_vvvvvyb = jQuery("#jform_add_php_jview_display input[type='radio']:checked").val();
vvvvvyb(add_php_jview_display_vvvvvyb);
var add_php_jview_vvvvvyc = jQuery("#jform_add_php_jview input[type='radio']:checked").val();
vvvvvyc(add_php_jview_vvvvvyc);
var add_php_document_vvvvvyd = jQuery("#jform_add_php_document input[type='radio']:checked").val();
vvvvvyd(add_php_document_vvvvvyd);
var add_css_document_vvvvvye = jQuery("#jform_add_css_document input[type='radio']:checked").val();
vvvvvye(add_css_document_vvvvvye);
var add_js_document_vvvvvyf = jQuery("#jform_add_js_document input[type='radio']:checked").val();
vvvvvyf(add_js_document_vvvvvyf);
var add_custom_button_vvvvvyg = jQuery("#jform_add_custom_button input[type='radio']:checked").val();
vvvvvyg(add_custom_button_vvvvvyg);
var add_css_vvvvvyh = jQuery("#jform_add_css input[type='radio']:checked").val();
vvvvvyh(add_css_vvvvvyh);
});
// the vvvvvya function
function vvvvvya(add_php_view_vvvvvya)
{
// set the function logic
if (add_php_view_vvvvvya == 1)
{
jQuery('#jform_php_view').closest('.control-group').show();
if (jform_vvvvvyavxw_required)
{
updateFieldRequired('php_view',0);
jQuery('#jform_php_view').prop('required','required');
jQuery('#jform_php_view').attr('aria-required',true);
jQuery('#jform_php_view').addClass('required');
jform_vvvvvyavxw_required = false;
}
}
else
{
jQuery('#jform_php_view').closest('.control-group').hide();
if (!jform_vvvvvyavxw_required)
{
updateFieldRequired('php_view',1);
jQuery('#jform_php_view').removeAttr('required');
jQuery('#jform_php_view').removeAttr('aria-required');
jQuery('#jform_php_view').removeClass('required');
jform_vvvvvyavxw_required = true;
}
}
}
// the vvvvvyb function
function vvvvvyb(add_php_jview_display_vvvvvyb)
{
// set the function logic
if (add_php_jview_display_vvvvvyb == 1)
{
jQuery('#jform_php_jview_display').closest('.control-group').show();
if (jform_vvvvvybvxx_required)
{
updateFieldRequired('php_jview_display',0);
jQuery('#jform_php_jview_display').prop('required','required');
jQuery('#jform_php_jview_display').attr('aria-required',true);
jQuery('#jform_php_jview_display').addClass('required');
jform_vvvvvybvxx_required = false;
}
}
else
{
jQuery('#jform_php_jview_display').closest('.control-group').hide();
if (!jform_vvvvvybvxx_required)
{
updateFieldRequired('php_jview_display',1);
jQuery('#jform_php_jview_display').removeAttr('required');
jQuery('#jform_php_jview_display').removeAttr('aria-required');
jQuery('#jform_php_jview_display').removeClass('required');
jform_vvvvvybvxx_required = true;
}
}
}
// the vvvvvyc function
function vvvvvyc(add_php_jview_vvvvvyc)
{
// set the function logic
if (add_php_jview_vvvvvyc == 1)
{
jQuery('#jform_php_jview').closest('.control-group').show();
if (jform_vvvvvycvxy_required)
{
updateFieldRequired('php_jview',0);
jQuery('#jform_php_jview').prop('required','required');
jQuery('#jform_php_jview').attr('aria-required',true);
jQuery('#jform_php_jview').addClass('required');
jform_vvvvvycvxy_required = false;
}
}
else
{
jQuery('#jform_php_jview').closest('.control-group').hide();
if (!jform_vvvvvycvxy_required)
{
updateFieldRequired('php_jview',1);
jQuery('#jform_php_jview').removeAttr('required');
jQuery('#jform_php_jview').removeAttr('aria-required');
jQuery('#jform_php_jview').removeClass('required');
jform_vvvvvycvxy_required = true;
}
}
}
// the vvvvvyd function
function vvvvvyd(add_php_document_vvvvvyd)
{
// set the function logic
if (add_php_document_vvvvvyd == 1)
{
jQuery('#jform_php_document').closest('.control-group').show();
if (jform_vvvvvydvxz_required)
{
updateFieldRequired('php_document',0);
jQuery('#jform_php_document').prop('required','required');
jQuery('#jform_php_document').attr('aria-required',true);
jQuery('#jform_php_document').addClass('required');
jform_vvvvvydvxz_required = false;
}
}
else
{
jQuery('#jform_php_document').closest('.control-group').hide();
if (!jform_vvvvvydvxz_required)
{
updateFieldRequired('php_document',1);
jQuery('#jform_php_document').removeAttr('required');
jQuery('#jform_php_document').removeAttr('aria-required');
jQuery('#jform_php_document').removeClass('required');
jform_vvvvvydvxz_required = true;
}
}
}
// the vvvvvye function
function vvvvvye(add_css_document_vvvvvye)
{
// set the function logic
if (add_css_document_vvvvvye == 1)
{
jQuery('#jform_css_document').closest('.control-group').show();
if (jform_vvvvvyevya_required)
{
updateFieldRequired('css_document',0);
jQuery('#jform_css_document').prop('required','required');
jQuery('#jform_css_document').attr('aria-required',true);
jQuery('#jform_css_document').addClass('required');
jform_vvvvvyevya_required = false;
}
}
else
{
jQuery('#jform_css_document').closest('.control-group').hide();
if (!jform_vvvvvyevya_required)
{
updateFieldRequired('css_document',1);
jQuery('#jform_css_document').removeAttr('required');
jQuery('#jform_css_document').removeAttr('aria-required');
jQuery('#jform_css_document').removeClass('required');
jform_vvvvvyevya_required = true;
}
}
}
// the vvvvvyf function
function vvvvvyf(add_js_document_vvvvvyf)
{
// set the function logic
if (add_js_document_vvvvvyf == 1)
{
jQuery('#jform_js_document').closest('.control-group').show();
if (jform_vvvvvyfvyb_required)
{
updateFieldRequired('js_document',0);
jQuery('#jform_js_document').prop('required','required');
jQuery('#jform_js_document').attr('aria-required',true);
jQuery('#jform_js_document').addClass('required');
jform_vvvvvyfvyb_required = false;
}
}
else
{
jQuery('#jform_js_document').closest('.control-group').hide();
if (!jform_vvvvvyfvyb_required)
{
updateFieldRequired('js_document',1);
jQuery('#jform_js_document').removeAttr('required');
jQuery('#jform_js_document').removeAttr('aria-required');
jQuery('#jform_js_document').removeClass('required');
jform_vvvvvyfvyb_required = true;
}
}
}
// the vvvvvyg function
function vvvvvyg(add_custom_button_vvvvvyg)
{
// set the function logic
if (add_custom_button_vvvvvyg == 1)
{
jQuery('#jform_custom_button-lbl').closest('.control-group').show();
jQuery('#jform_php_controller').closest('.control-group').show();
if (jform_vvvvvygvyc_required)
{
updateFieldRequired('php_controller',0);
jQuery('#jform_php_controller').prop('required','required');
jQuery('#jform_php_controller').attr('aria-required',true);
jQuery('#jform_php_controller').addClass('required');
jform_vvvvvygvyc_required = false;
}
jQuery('#jform_php_model').closest('.control-group').show();
if (jform_vvvvvygvyd_required)
{
updateFieldRequired('php_model',0);
jQuery('#jform_php_model').prop('required','required');
jQuery('#jform_php_model').attr('aria-required',true);
jQuery('#jform_php_model').addClass('required');
jform_vvvvvygvyd_required = false;
}
}
else
{
jQuery('#jform_custom_button-lbl').closest('.control-group').hide();
jQuery('#jform_php_controller').closest('.control-group').hide();
if (!jform_vvvvvygvyc_required)
{
updateFieldRequired('php_controller',1);
jQuery('#jform_php_controller').removeAttr('required');
jQuery('#jform_php_controller').removeAttr('aria-required');
jQuery('#jform_php_controller').removeClass('required');
jform_vvvvvygvyc_required = true;
}
jQuery('#jform_php_model').closest('.control-group').hide();
if (!jform_vvvvvygvyd_required)
{
updateFieldRequired('php_model',1);
jQuery('#jform_php_model').removeAttr('required');
jQuery('#jform_php_model').removeAttr('aria-required');
jQuery('#jform_php_model').removeClass('required');
jform_vvvvvygvyd_required = true;
}
}
}
// the vvvvvyh function
function vvvvvyh(add_css_vvvvvyh)
{
// set the function logic
if (add_css_vvvvvyh == 1)
{
jQuery('#jform_css').closest('.control-group').show();
if (jform_vvvvvyhvye_required)
{
updateFieldRequired('css',0);
jQuery('#jform_css').prop('required','required');
jQuery('#jform_css').attr('aria-required',true);
jQuery('#jform_css').addClass('required');
jform_vvvvvyhvye_required = false;
}
}
else
{
jQuery('#jform_css').closest('.control-group').hide();
if (!jform_vvvvvyhvye_required)
{
updateFieldRequired('css',1);
jQuery('#jform_css').removeAttr('required');
jQuery('#jform_css').removeAttr('aria-required');
jQuery('#jform_css').removeClass('required');
jform_vvvvvyhvye_required = true;
}
}
}
// update required fields
function updateFieldRequired(name,status)
{
var not_required = jQuery('#jform_not_required').val();
if(status == 1)
{
if (isSet(not_required) && not_required != 0)
{
not_required = not_required+','+name;
}
else
{
not_required = ','+name;
}
}
else
{
if (isSet(not_required) && not_required != 0)
{
not_required = not_required.replace(','+name,'');
}
}
jQuery('#jform_not_required').val(not_required);
}
// the isSet function
function isSet(val)
{
if ((val != undefined) && (val != null) && 0 !== val.length){
return true;
}
return false;
}
function getSnippetDetails_server(snippetId){
var getUrl = "index.php?option=com_componentbuilder&task=ajax.snippetDetails&format=json";
if(token.length > 0 && snippetId > 0){
var request = 'token='+token+'&id='+snippetId;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'jsonp',
data: request,
jsonp: 'callback'
});
}
function getSnippetDetails(id){
getSnippetDetails_server(id).done(function(result) {
if(result.snippet){
var description = '';
if (result.description.length > 0)
{
description = '<p>'+result.description+'</p>';
}
var code = '<div id="snippet-code"><b>'+result.name+' ('+result.type+')</b> <a href="'+result.url+'" target="_blank" >see more details</a><br /><em>'+result.heading+'</em><br /><textarea id="snippet" class="span12" rows="11">'+result.snippet+'</textarea></div>';
jQuery('#snippet-code').remove();
jQuery('.snippet-code').append(code);
// make sure the code block is active
jQuery("#snippet").focus(function() {
var jQuerythis = jQuery(this);
jQuerythis.select();
// Work around Chrome's little problem
jQuerythis.mouseup(function() {
// Prevent further mouseup intervention
jQuerythis.unbind("mouseup");
return false;
});
});
}
if(result.usage){
var usage = '<div id="snippet-usage"><p>'+result.usage+'</p></div>';
jQuery('#snippet-usage').remove();
jQuery('.snippet-usage').append(usage);
}
})
}
function getDynamicValues_server(dynamicId){
var getUrl = "index.php?option=com_componentbuilder&task=ajax.getDynamicValues&format=json";
if(token.length > 0 && dynamicId > 0){
var request = 'token='+token+'&view=custom_admin_view&id='+dynamicId;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'jsonp',
data: request,
jsonp: 'callback'
});
}
function getDynamicValues(id){
getDynamicValues_server(id).done(function(result) {
if(result){
jQuery('#dynamic_values').remove();
jQuery('.dynamic_values').append('<div id="dynamic_values">'+result+'</div>');
// make sure the code bocks are active
jQuery("code").click(function() {
jQuery(this).selText().addClass("selected");
});
}
})
}
function getLayoutDetails_server(id){
var getUrl = "index.php?option=com_componentbuilder&task=ajax.getLayoutDetails&format=json";
if(token.length > 0 && id > 0){
var request = 'token='+token+'&id='+id;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'jsonp',
data: request,
jsonp: 'callback'
});
}
function getLayoutDetails(id){
getLayoutDetails_server(id).done(function(result) {
if(result){
jQuery('#details').append(result);
// make sure the code bocks are active
jQuery("code").click(function() {
jQuery(this).selText().addClass("selected");
});
}
})
}
function getTemplateDetails_server(id){
var getUrl = "index.php?option=com_componentbuilder&task=ajax.templateDetails&format=json";
if(token.length > 0 && id > 0){
var request = 'token='+token+'&id='+id;
}
return jQuery.ajax({
type: 'GET',
url: getUrl,
dataType: 'jsonp',
data: request,
jsonp: 'callback'
});
}
function getTemplateDetails(id){
getTemplateDetails_server(id).done(function(result) {
if(result){
jQuery('#details').append(result);
// make sure the code bocks are active
jQuery("code").click(function() {
jQuery(this).selText().addClass("selected");
});
}
})
}