%PDF- %PDF-
| Direktori : /home1/lightco1/www/administrator/components/com_chronoforms5/chronoforms/views/ |
| Current File : //home1/lightco1/www/administrator/components/com_chronoforms5/chronoforms/views/edit.php |
<?php
/* @copyright:ChronoEngine.com @license:GPLv2 */defined('_JEXEC') or die('Restricted access');
defined("GCORE_SITE") or die;
?>
<div class="chrono-page-container">
<div class="container" id="wizard_page" style="width:100%;">
<div class="row" id="page_top"></div>
<?php
$doc = \GCore\Libs\Document::getInstance();
$doc->_('jquery');
$doc->_('jquery-ui');
$doc->_('bootstrap');
//$doc->_('forms');
$doc->_('keepalive');
$doc->_('gtooltip');
$doc->_('gvalidation');
$doc->_('gsliders');
$doc->addCssFile(\GCore\C::get('GCORE_ADMIN_URL').'extensions/chronoforms/assets/css/wizard.css');
$doc->addCssFile(\GCore\C::get('GCORE_ADMIN_URL').'extensions/chronoforms/assets/css/wizard-bs3.css');
//tour
//$doc->addJsFile('extensions/chronoforms/assets/bootstrap-tour/bootstrap-tour.min.js');
//$doc->addCssFile('extensions/chronoforms/assets/bootstrap-tour/bootstrap-tour.min.css');
$this->Html->active_set('div');
//$doc->_('editor');
$doc->addJsFile(\GCore\C::get('GCORE_FRONT_URL').'extensions/editors/assets/tinymce/tinymce.min.js');
$save_ext = '';
$save_ext .= 'jQuery("#admin_form :input[name*=\'{N}\']").remove();'; //remove the default fields/actions fields to save some post data space
if($chronoforms_settings->get('wizard.safe_save', 1)){
if(!(int)$chronoforms_settings->get('wizard.safe_save_chunk_size', 0)){
$save_ext .= '
jQuery("#serialized_form_data").val(jQuery("#admin_form").serialize());
';
}else{
$save_ext .= '
var chunks_counter = 0;
var chunks = jQuery("#admin_form").serialize().match(/.{1,'.$chronoforms_settings->get('wizard.safe_save_chunk_size', 0).'}/g);
jQuery.each(chunks, function(i, c){
var $chunk_clone = jQuery("<textarea></textarea>");
$chunk_clone.prop("class", "serialized_form_data_chunks");
$chunk_clone.prop("name", "serialized_form_data_chunks["+chunks_counter+"]");
$chunk_clone.val(c);
jQuery("#serialized_form_chunks_area").append($chunk_clone);
chunks_counter++;
});
';
}
$save_ext .= '
jQuery("#admin_form :input").prop("disabled", true);
jQuery("#serialized_form_data").prop("disabled", false);
jQuery(".serialized_form_data_chunks").prop("disabled", false);
';
}
$simple_wizard_fix = '';
if(!empty($this->data['setup']) OR !empty($this->data['Form']['params']['setup'])){
//simple form, disable the editor in email actions.
$simple_wizard_fix = '
HideEditor(jQuery("#email_0"));
HideEditor(jQuery("#email_1"));
HideEditor(jQuery("#thanks_message_4"));
';
}
$doc->addJsCode('
function test_form(){
'.(!empty($this->data['Form']['title']) ? 'window.open("'.r_(\GCore\C::get('GCORE_ROOT_URL').'index.php?ext=chronoforms&chronoform='.$this->data['Form']['title']).'");' : 'alert("'.l_('CF_SAVE_FORM_FIRST').'");').'
}
function validate_form(){
if(!jQuery("#cform_name").val().trim() || jQuery("#cform_name").val().match(/ /)){
alert("'.l_('CF_FORM_TITLE_REQUIRED').'");
}else{
'.$simple_wizard_fix.'
'.$save_ext.'
jQuery(".toolbar-button").prop("disabled", true);
jQuery("#admin_form").submit();
}
}
');
/*if(empty($this->data['Form']['title'])){
$this->Toolbar->setTitle(l_('CF_NEW_FORM'));
}else{
$this->Toolbar->setTitle($this->data['Form']['title']);
}*/
$this->Toolbar->addButton('test_form', r_('index.php?ext=chronoforms'), l_('CF_TEST_FORM'), \GCore\C::ext_url('chronoforms', 'admin').'assets/images/preview.png', 'test_form');
$this->Toolbar->addButton('apply', r_('index.php?ext=chronoforms&act=save&save_act=apply'), l_('CF_SAVE'), $this->Assets->image('apply', 'toolbar/'), 'validate_form');
$this->Toolbar->addButton('save', r_('index.php?ext=chronoforms&act=save'), l_('CF_SAVE_AND_CLOSE'), $this->Assets->image('save', 'toolbar/'), 'validate_form');
$this->Toolbar->addButton('cancel', r_('index.php?ext=chronoforms'), l_('CF_CLOSE'), $this->Assets->image('cancel', 'toolbar/'), 'link');
?>
<?php
ob_start();
?>
<script>
/*jQuery(document).ready(function($){
var tour = new Tour({
debug:true,
storage:false,
});
tour.addSteps([
{
//element: "#cform_name",
orphan: true,
backdrop: true,
title: "<?php echo l_('CF_STARTTOUR_WELCOME_TITLE'); ?>",
content: "<?php echo l_('CF_STARTTOUR_WELCOME_CONTENT'); ?>",
},
{
//backdrop: true,
//placement: 'top',
element: "#cform_name",
title: "<?php echo l_('CF_STARTTOUR_FORMNAME_TITLE'); ?>",
content: "<?php echo l_('CF_STARTTOUR_FORMNAME_CONTENT'); ?>",
},
{
//backdrop: true,
//placement: 'top',
element: "#cform_bootstrap",
title: "<?php echo l_('CF_STARTTOUR_BOOTSTRAP_TITLE'); ?>",
content: "<?php echo l_('CF_STARTTOUR_BOOTSTRAP_CONTENT'); ?>",
},
{
//backdrop: true,
reflex: true,
placement: 'top',
element: "#layout-wizard-tab-key",
title: "<?php echo l_('CF_STARTTOUR_BOOTSTRAP_TITLE'); ?>",
content: "<?php echo l_('CF_STARTTOUR_BOOTSTRAP_CONTENT'); ?>",
},
{
//backdrop: true,
//placement: 'top',
element: ".field_source_item#text",
title: "<?php echo l_('CF_STARTTOUR_BOOTSTRAP_TITLE'); ?>",
content: "<?php echo l_('CF_STARTTOUR_BOOTSTRAP_CONTENT'); ?>",
},
{
//backdrop: true,
//placement: 'top',
element: "#preview",
title: "<?php echo l_('CF_STARTTOUR_BOOTSTRAP_TITLE'); ?>",
content: "<?php echo l_('CF_STARTTOUR_BOOTSTRAP_CONTENT'); ?>",
},
{
//backdrop: true,
//placement: 'top',
element: "#preview .edit_icon:first-child",
title: "<?php echo l_('CF_STARTTOUR_BOOTSTRAP_TITLE'); ?>",
content: "<?php echo l_('CF_STARTTOUR_BOOTSTRAP_CONTENT'); ?>",
},
]);
tour.init();
tour.start();
});*/
</script>
<script>
jQuery(document).ready(function($){
$('#fields-accordion, #actions-accordion, #jevents-accordion').gsliders({
'pane_selector':'.panel-collapse',
'tab_selector':'[data-g-toggle="collapse"]',
'active_pane_class':'in',
});
});
jQuery(document).ready(function($){
//$('#admin_form').gvalidate();
/*$('.PopOverReady').popover({'trigger':'hover', 'container':'body'});
$(".PopOverReady").on("hidden.bs.tooltip", function(){
$(this).show();
});*/
$(".PopOverReady").gtooltip({"append":"body", "awaytime":0, "position":"right", "resetOnShow":true});
//$(".PopOverReady").gtooltip("hover");
//stop enter key from firing buttons
/*$(document).on('keypress', function(e){
if(e.which == 13){
e.preventDefault();
}
});*/
});
</script>
<script>
function toggleEventValue(el){
if(el.val() == "change_to" || el.val() == "change_not"){
el.closest(".jsevent_config").find(".events_value").closest(".gcore-subinput-container").show();
}else{
el.closest(".jsevent_config").find(".events_value").closest(".gcore-subinput-container").hide();
}
}
jQuery(document).ready(function($){
$(document).on("change", ".events_event_selection", function(){
toggleEventValue($(this));
});
$(".events_event_selection").each(function(i, el){
toggleEventValue($(el));
});
});
</script>
<script>
function HideEditor(Element_Config){
Element_Config.find('textarea').each(function(i, textarea){
if(jQuery(textarea).css('display') == 'none'){
tinymce.execCommand('mceRemoveEditor', false, jQuery(textarea).attr('id'));
}
});
}
function toggleEditor(elem, id){
var textarea = jQuery(elem).closest('.form-group').next().find('textarea');
if(textarea.length == 0){
var textarea = jQuery(elem).closest('.form-group').prev().find('textarea');
}
if(textarea.css('display') != 'none'){
tinymce.execCommand('mceAddEditor', false, jQuery(textarea).attr('id'));
}else{
tinymce.execCommand('mceRemoveEditor', false, jQuery(textarea).attr('id'));
}
}
function addFieldEvent(elem, button_id){
var last_event = jQuery(elem).closest('.form-group').prev();
//var event_count = jQuery(elem).closest('.form-group').parent().find('.form-group').length - 1;//this has been changed below
var event_count = parseInt(last_event.clone().wrap('<p>').parent().html().match(/\[events\]\[[0-9]+\]/).pop().replace('[events][', '').replace(']', '')) + 1;
jQuery(elem).closest('.form-group').before(last_event.clone().wrap('<p>').parent().html().replace(/\[events\]\[[0-9]+\]/g, '[events]['+event_count+']'));
}
function removeFieldEvent(elem, button_id){
var last_event = jQuery(elem).closest('.form-group').prev();
var event_count = last_event.clone().wrap('<p>').parent().html().match(/\[events\]\[[0-9]+\]/).pop().replace('[events][', '').replace(']', '');
if(event_count != '0'){
last_event.remove();
}
}
jQuery(window).scroll(function(){
if(jQuery(window).scrollTop() > jQuery('#droppable_area_actions').offset().top){
jQuery('#actions_list').stop().animate({'marginTop': (jQuery(window).scrollTop() - jQuery('#droppable_area_actions').offset().top + 30) + 'px'}, 'slow');
}else{
jQuery('#actions_list').stop().animate({'marginTop': (0) + 'px'}, 'slow');
}
if(jQuery(window).scrollTop() > jQuery('.fields_panel').first().offset().top){
jQuery('#fields_list').stop().animate({'marginTop': (jQuery(window).scrollTop() - jQuery('.fields_panel').first().offset().top + 30) + 'px'}, 'fast');
}else{
jQuery('#fields_list').stop().animate({'marginTop': (0) + 'px'}, 'fast');
}
if(jQuery(window).scrollTop() > jQuery('.jsevents_panel').first().offset().top){
jQuery('#jsevents_list').stop().animate({'marginTop': (jQuery(window).scrollTop() - jQuery('.jsevents_panel').first().offset().top + 30) + 'px'}, 'fast');
}else{
jQuery('#jsevents_list').stop().animate({'marginTop': (0) + 'px'}, 'fast');
}
});
</script>
<script>
jQuery(document).ready(function($){
//$('#locales_tabs_heads a:last').tab('show'); //activate last tab when page loads
/*$('#add_new_locale').on('show.bs.modal', function () {
$('#locale_name').val('');
})*/
$('#add_new_locale_button').on('click', function(){
var locale_name = $('#locale_name').val();
if(locale_name == '')return false;
$('#locales_tabs_heads').append('<li><a href="#locale-'+locale_name+'" data-g-toggle="tab">'+locale_name+'</a></li>');
var tab_content = $('#locale_generic_config').html().replace(/{N}/ig, $('#locale_name').val());
$('#locales_tabs_contents').append('<div class="tab-pane" id="locale-'+locale_name+'">'+tab_content+'</div>');
//$('#locales_tabs_heads a:last').tab('show');
$('#locales_tabs_heads').gtabs({
'pane_selector':'.tab-pane',
'tab_selector':'[data-g-toggle="tab"]',
});
$('#locales_tabs_heads').gtabs('get').show($('#locales_tabs_heads a:last'));
$('#locale_name').val('');
});
});
function remove_locale(id){
jQuery('#locale-'+id).remove();
jQuery('a[href="#locale-'+id+'"]').parent('li').remove();
//jQuery('#locales_tabs_heads a:last').tab('show'); //activate last tab when page loads
$('#locales_tabs_heads').gtabs('get').show($('#locales_tabs_heads a:last'));
jQuery('html, body').animate({
scrollTop: jQuery('#page_top').offset().top
}, 300);
return false;
}
jQuery(document).ready(function($){
$('.panel-collapse').on('show.bs.collapse', function(){
$.each($(this).closest('.panel-group').find('.in'), function(i, inp){
$(inp).collapse('hide');
});
});
});
</script>
<?php if(!empty($this->data['Form']['id'])): ?>
<div class="loading_overlay"></div>
<?php endif; ?>
<script>
var ChronoformWizard = {};
jQuery(document).ready(function($) {
//replace config replacers
<?php if(!empty($this->data['Form']['id'])): ?>
var overlay = $(".loading_overlay");
//$('#details-panel').append(overlay);
$.each($('.field_config_replacer'), function(k, inp){
$.ajax({
url: '<?php echo r_('index.php?ext=chronoforms&act=render_field_config&tvout=ajax'); ?>',
data: {'field_id':$(inp).attr('field_id'), 'form_id': '<?php echo $this->data['Form']['id']; ?>'},
type: 'POST',
async: false,
}).done(function(msg){
//$('.loading_gif').remove();
var $config_loaded = $(msg);
$config_loaded.addClass('config_box');
$(inp).replaceWith($config_loaded);
});
});
overlay.remove();
<?php endif; ?>
});
jQuery(document).ready(function($) {
var fields_count = <?php echo (!empty($this->data['Form']['extras']['fields']) ? max(array_keys($this->data['Form']['extras']['fields'])) + 1 : 1); ?>;
$('.field_source_item').draggable({
appendTo: 'body',
helper: 'clone',
start: function(event, ui){
pos_fixed = 0; // we're about to start, set to not fixed yet
},
drag: function(event, ui){
if(pos_fixed == 0){ // check if the fix hasn't been fired for this instance yet
var help_pos = $(ui.helper).offset().top, // get helpers offset
targ_pos = $(event.target).offset().top, // get targets(the dragged elements) offset
marg = targ_pos-help_pos; // calculate the margin the helper has to have to put it on the same y-position as our target
$(ui.helper).css('margin-top', marg); // put our helper on the same y-position as the target
pos_fixed = 1; // we've fixed it, we don't want it to fire again
}
}
});
var $field_drop_settings = {
activeClass: 'form-event-active',
hoverClass: 'form-event-hover',
accept: '.field_source_item',
greedy: true,
tolerance: 'pointer',
drop: function(event, ui){
if(ui.draggable.attr('id') == 'multi'){
var Element_Container = $(this);
//$add_multi_field_dialog.data('container', $(this));
//$add_multi_field_dialog.dialog('open');
$('#modal_generic_config').find('.modal-body').empty();
$('#modal_generic_config').find('.modal-title').html('<?php echo l_('CF_INSERT_MULTI_FIELD'); ?>');
var Element_Config = $('#add_multi_field_dialog');
Element_Config.css('display', 'block');
$('#modal_generic_config').find('.modal-body').append(Element_Config);
$('#modal_generic_config').css('top', jQuery(window).scrollTop());
if(Element_Config.find('.nav').length){
Element_Config.find('.nav').gtabs({
'pane_selector':'.tab-pane',
'tab_selector':'[data-g-toggle="tab"]',
});
//Element_Config.find('.nav').gtabs('get').show(Element_Config.find('.nav').find('a:first'));
}
$('#modal_generic_config').gmodal({
'close_selector' : '[data-g-dismiss="modal"]',
});
$('#modal_generic_config').gmodal('open');
//$('#modal_generic_config').off('close.gmodal');
$('#modal_generic_config').on('close.gmodal', function(){
//$('#modal_generic_config').modal();
//$('#modal_generic_config').off('hide.bs.modal');
//$('#modal_generic_config').on('hide.bs.modal', function(){
//HideEditor(Element_Config);
addMultiField(Element_Container);
Element_Config.css('display', 'none');
$('#wizard_page').append(Element_Config);
});
$('#modal_generic_config').on('closed.gmodal', function(){
$('#modal_generic_config').off('close.gmodal');
});
}else if(ui.draggable.attr('id') == 'container'){
addContainer($(this));
}else{
addField($(this), ui.draggable.attr('id'));
}
}
}
function initialize_fields_droppables(){
$('.fields_container').droppable($field_drop_settings).sortable({
items: 'div.element_box',
//containment:'parent',
//axis:'y',
scroll:false,
//handle:'.drag_icon',
});
//$('.fields_container').disableSelection();
}
initialize_fields_droppables();
$('#stack_field').button().click(function(){
var fldval = $('#fields_types_list').val();
$('#multi_field_stack').append('<option value="'+fldval+'" selected="selected">'+fldval+'</option>');
});
function initialize_container_icons(container){
container.find('.delete_container_icon').first().on('click', function(){
$(this).closest('.element_box').remove();
});
/*
container.find('.copy_container_icon').first().on('click', function(){
ChronoformWizard.fields_clipboard = $(this).closest('.element_box').clone(true, true);
});
*/
container.find('.paste_container_icon').first().on('click', function(){
if(typeof ChronoformWizard.fields_clipboard != 'undefined'){
var field_number = ChronoformWizard.fields_clipboard.find('span.field_icon_number').first().text();
//console.log(field_number);
//re = '\\['+field_number+'\\]';
var regex = new RegExp('\\['+field_number+'\\]', 'g');
var copy_code = ChronoformWizard.fields_clipboard.wrap('<p>').parent().html().replace(regex, '['+fields_count+']');
var regex = new RegExp('-'+field_number+'"', 'g');
var copy_code = copy_code.replace(regex, '-'+fields_count+'"');
var copy_code_p = $('<p>').append(copy_code);
copy_code_p.find('span.field_icon_number').first().text(fields_count);
var Element = copy_code_p.children().first();
Element.find('.panel-heading').first().find('.action_icon').remove();
Element.find('.panel-heading').first().find('.clearfix').remove();
Element.children('.config_box').find('[id^=container_id]').last().val(container.attr('container_num'));
addLinks(Element);
//copy_code = copy_code_p.html();
//console.log(copy_code);
$(this).closest('.element_box').children('.fields_container').first().append(Element);
fields_count = fields_count + 1;
}
});
container.find('.collapse_container_icon').first().on('click', function(){
if($(this).closest('.element_box').children('.panel-body').css('display') == 'none'){
$(this).closest('.element_box').children('.panel-body').removeAttr('style');
$(this).text('<?php echo l_('CF_COLLAPSE'); ?>');
$('#' + $(this).closest('.element_box').attr('id') + '_collapsed').val('0');
}else{
$(this).closest('.element_box').children('.panel-body').css('display', 'none');
$(this).text('<?php echo l_('CF_EXPAND'); ?>');
$('#' + $(this).closest('.element_box').attr('id') + '_collapsed').val('1');
}
});
container.find('.edit_container_icon').first().on('click', function(){
var Element = $(this).closest('.element_box');
var container_label = Element.find('.container_label').first();
var container_type = Element.find('.container_type').first();
var container_num = Element.attr('container_num');
$('#modal_generic_config').find('.modal-body').empty();
$('#modal_generic_config').find('.modal-title').html('<?php echo l_('CF_EDIT_CONTAINER_SETTINGS'); ?>');
var Element_Config = Element.find('.config_box').first();
Element_Config.css('display', 'block');
/*
Element_Config.find('.nav > li').removeClass('active');
Element_Config.find('.nav > li:first-child').addClass('active');
Element_Config.find('.tab-content > div.tab-pane').removeClass('active');
Element_Config.find('.tab-content > div.tab-pane:first-child').addClass('active');
*/
$('#modal_generic_config').find('.modal-body').append(Element_Config);
$('#modal_generic_config').css('top', jQuery(window).scrollTop());
if(Element_Config.find('.nav').length){
Element_Config.find('.nav').gtabs({
'pane_selector':'.tab-pane',
'tab_selector':'[data-g-toggle="tab"]',
});
Element_Config.find('.nav').gtabs('get').show(Element_Config.find('.nav').find('a:first'));
}
$('#modal_generic_config').gmodal({
'close_selector' : '[data-g-dismiss="modal"]',
});
$('#modal_generic_config').gmodal('open');
//$('#modal_generic_config').off('close.gmodal');
$('#modal_generic_config').on('close.gmodal', function(){
//$('#modal_generic_config').modal();
//$('#modal_generic_config').off('hide.bs.modal');
//$('#modal_generic_config').on('hide.bs.modal', function(){
HideEditor(Element_Config);
Element_Config.css('display', 'none');
Element.find('.fields_container').first().before(Element_Config);
container_label.text($('#container_label_config_'+container_num).val());
container_type.text($('#container_type_config_'+container_num).val());
if($('#container_type_config_'+container_num).val() == 'column'){
container.resizable({
stop: function(e, ui){
$('#' + ui.element.attr('id') + '_width').val(Math.floor((ui.size.width/ui.element.parent().width()) * 100));
},
});
}else{
container.resizable();
container.resizable('destroy');
}
});
$('#modal_generic_config').on('closed.gmodal', function(){
$('#modal_generic_config').off('close.gmodal');
});
});
if(container.find('#container_type_config_'+ container.attr('container_num')).val() == 'column'){
container.resizable({
stop: function(e, ui){
$('#' + ui.element.attr('id') + '_width').val(Math.floor((ui.size.width/ui.element.parent().width()) * 100));
},
});
}
}
$('#layout-wizard-tab-key').on('shown.bs.tab', function(e){
$.each($('div[id^="fields_container"]'), function(i, container){
var container_num = $(container).attr('container_num');
var parent_width = Math.floor($(container).parent().width());
var set_container_width = $(container).find('#fields_container_'+container_num+'_width').first().val();
$(container).css('width', ((set_container_width/100) * parent_width));
//set collapse state
var container_collapsed = $(container).find('#fields_container_'+container_num+'_collapsed').first().val();
if(container_collapsed == 1){
$(container).children('.panel-body').css('display', 'none');
$(container).children('.panel-heading').find('.collapse_container_icon').text('<?php echo l_('CF_EXPAND'); ?>');
}
});
});
$.each($('div[id^="fields_container"]'), function(i, container){
initialize_container_icons($(container));
});
//add paste link for main preview
var pasteLink = $('<span/>', {
'class':'paste_icon paste_container_icon action_icon label label-default pull-right',
'title':'<?php echo l_('CF_PASTE'); ?>',
'text':'<?php echo l_('CF_PASTE'); ?>',
}).on('click', function(){
if(typeof ChronoformWizard.fields_clipboard != 'undefined'){
var field_number = ChronoformWizard.fields_clipboard.find('span.field_icon_number').first().text();
//console.log(field_number);
//re = '\\['+field_number+'\\]';
var regex = new RegExp('\\['+field_number+'\\]', 'g');
var copy_code = ChronoformWizard.fields_clipboard.wrap('<p>').parent().html().replace(regex, '['+fields_count+']');
var regex = new RegExp('-'+field_number+'"', 'g');
var copy_code = copy_code.replace(regex, '-'+fields_count+'"');
var copy_code_p = $('<p>').append(copy_code);
copy_code_p.find('span.field_icon_number').first().text(fields_count);
var Element = copy_code_p.children().first();
Element.find('.panel-heading').first().find('.action_icon').remove();
Element.find('.panel-heading').first().find('.clearfix').remove();
Element.children('.config_box').find('[id^=container_id]').first().val(0);
addLinks(Element);
//copy_code = copy_code_p.html();
//console.log(copy_code);
$('#preview').append(Element);
fields_count = fields_count + 1;
}
});
$('#preview').prepend('<div class="clearfix"></div>');
$('#preview').prepend(pasteLink);
function addContainer(container){
if(container == null){
var container = $('#preview');
}
var container_number = container.attr('container_num');
if(container_number == null){
container_number = 0;
}
var new_container = $('<div/>',{
'class':'fields_container_area element_box panel panel-success',
'id':'fields_container_'+fields_count,
'container_num':fields_count,
'item_id':'container',
css:{}
}).append('<div class="panel-heading"><div class="pull-left"><span class="form_field_label container_label label label-primary">Container #'+fields_count+'</span><span class="label label-info action_icon_number" style="">'+fields_count+'</span><span class="label label-info action_icon_number container_type" style=""></span></div></div>');
var container_icons = $('<div/>', {
'id':'field_icons_'+fields_count,
'class':'field_icons pull-right',
});
var deleteLink = $('<span/>', {
'class':'delete_icon delete_container_icon action_icon label label-danger',
'title':'<?php echo l_('CF_DELETE'); ?>',
'text':'<?php echo l_('CF_DELETE'); ?>',
}).on('click', function(){
$(this).closest('.element_box').remove();
});
var dragLink = $('<span/>', {
'class':'drag_icon action_icon label label-warning',
'title':'<?php echo l_('CF_DRAG'); ?>',
'text':'<?php echo l_('CF_DRAG'); ?>',
}).on('click', function(){
});
var editLink = $('<span/>', {
'class':'edit_icon edit_container_icon action_icon label label-primary',
'title':'<?php echo l_('CF_EDIT'); ?>',
'text':'<?php echo l_('CF_EDIT'); ?>',
}).on('click', function(){
});
var collapseLink = $('<span/>', {
'class':'collapse_icon collapse_container_icon action_icon label label-default',
'title':'<?php echo l_('CF_COLLAPSE'); ?>',
'text':'<?php echo l_('CF_COLLAPSE'); ?>',
}).on('click', function(){
});
/*
var copyLink = $('<span/>', {
'class':'copy_icon copy_container_icon action_icon label label-default',
'title':'<?php echo l_('CF_COPY'); ?>',
'text':'<?php echo l_('CF_COPY'); ?>',
}).on('click', function(){
ChronoformWizard.fields_clipboard = $(this).closest('.element_box').clone(true, true);
});
*/
var pasteLink = $('<span/>', {
'class':'paste_icon paste_container_icon action_icon label label-default',
'title':'<?php echo l_('CF_PASTE'); ?>',
'text':'<?php echo l_('CF_PASTE'); ?>',
});/*.on('click', function(){
if(typeof ChronoformWizard.fields_clipboard != 'undefined'){
var field_number = ChronoformWizard.fields_clipboard.find('span.field_icon_number').first().text();
//console.log(field_number);
//re = '\\['+field_number+'\\]';
var regex = new RegExp('\\['+field_number+'\\]', 'g');
var copy_code = ChronoformWizard.fields_clipboard.wrap('<p>').parent().html().replace(regex, '['+fields_count+']');
var regex = new RegExp('-'+field_number+'"', 'g');
var copy_code = copy_code.replace(regex, '-'+fields_count+'"');
var copy_code_p = $('<p>').append(copy_code);
copy_code_p.find('span.field_icon_number').first().text(fields_count);
var Element = copy_code_p.children().first();
Element.find('.panel-heading').first().find('.action_icon').remove();
Element.find('.panel-heading').first().find('.clearfix').remove();
Element.children('.config_box').find('[id^=container_id]').first().val(container_number);
addLinks(Element);
//copy_code = copy_code_p.html();
//console.log(copy_code);
$(this).closest('.element_box').children('.fields_container').first().append(Element);
fields_count = fields_count + 1;
}
});*/
container_icons.append(pasteLink);
container_icons.append(collapseLink);
//container_icons.append(copyLink); we can't update fields numbers inside container
container_icons.append(editLink);
container_icons.append(dragLink);
container_icons.append(deleteLink);
new_container.find('.panel-heading').append(container_icons);
new_container.find('.panel-heading').append('<div class="clearfix"></div>');
var $new_container_config = $('#container_origin_config').clone().removeAttr('id').addClass('config_box');
$new_container_config.html($new_container_config.html().replace(/{N}/ig, fields_count));
$new_container_config.css({'display':'none'});
$new_container_config.find('[id^=container_id]').first().val(container_number);
new_container.append($new_container_config);
new_container.append('<div class="fields_container panel-body" container_num="'+fields_count+'"></div>');
container.append(new_container);
fields_count++;
initialize_container_icons(new_container);
initialize_fields_droppables();
}
function addField(container, field_type){
if(container == null){
var container = $('#preview');
}
var container_number = container.attr('container_num');
if(container_number == null){
container_number = 0;
}
if(field_type == null){
var field_type = $('#field_type_selector').val();
}
var $new_element = $('#'+field_type+'_origin').clone().removeAttr('id');
$new_element.html($new_element.html().replace(/{N}/ig, fields_count));
var $new_element_config = $('#'+field_type+'_origin_config').clone().removeAttr('id').addClass('config_box');
$new_element_config.html($new_element_config.html().replace(/{N}/ig, fields_count));
$new_element_config.find('[id^=container_id]').first().val(container_number);
$new_element_config.css({'display':'none'});
$new_element.addClass('panel-body');
var $new_element_box = $('<div/>', {'class':'element_box panel panel-default', 'item_id':field_type});
var new_field_label = ($new_element_config.find('.element_field_name').length > 0) ? $new_element_config.find('.element_field_name').val() : field_type;
$new_element_box.append('<div class="panel-heading"><div class="pull-left"><span class="form_field_label label label-primary">'+new_field_label+'</span><span class="label label-info field_icon_number" style="">'+fields_count+'</span></div></div>');
$new_element_box.append($new_element);
$new_element_box.append($new_element_config);
addLinks($new_element_box);
//$new_element_box.find('.panel-heading').append('<div class="clearfix"></div>');
container.append($new_element_box);
fields_count++;
}
function addMultiField(container){
if(container == null){
var container = $('#preview');
}
var container_number = container.attr('container_num');
if(container_number == null){
container_number = 0;
}
var types = $('#multi_field_stack').val();
if(types == null){
return;
}
var $new_element_box = $('<div/>', {'class':'element_box panel panel-warning', 'item_id':'multi'});
var obj = {};
$.each(types, function(i, val){
obj['fields['+i+']'] = val;
});
obj['fields_count'] = fields_count;
$.ajax({
url: '<?php echo r_('index.php?ext=chronoforms&act=render_multi_field&tvout=ajax'); ?>',
data: obj
}).done(function(msg){
$('#loading_gif').remove();
var $resp = $('<div/>');
$resp.append(msg);
var $new_element = $resp.find('.original_element');
$new_element_box.append('<div class="panel-heading"><div class="pull-left"><span class="form_field_label label label-primary">'+'Multi Field'+'</span><span class="label label-info field_icon_number" style="">'+fields_count+'</span></div></div>');
//addLinks($new_element);
$new_element.addClass('panel-body');
$resp.find('.single_element_config').removeClass('original_element_config').addClass('panel-body').removeAttr('id');
$resp.find('.original_element_config').css('display', 'none').addClass('config_box').removeAttr('id');
var $config = $resp.find('.original_element_config').detach();
//console.log($config);
//$new_element_box.append($resp.html());
//$new_element.detach();
$new_element_box.append($new_element);
$config.find('[id^=container_id]').val(container_number);
$new_element_box.append($config);
addLinks($new_element_box);
});
container.append($new_element_box);
fields_count = fields_count + types.length;
//fields_count++;
$('#multi_field_stack').html('');
}
function addLinks(Element){
//Element.on('mouseenter', function(){
var editLink = $('<span/>', {
'class':'edit_icon action_icon label label-primary',
'title':'<?php echo l_('CF_EDIT'); ?>',
'text':'<?php echo l_('CF_EDIT'); ?>',
}).on('click', function(){
//var Element = $(this).closest('.form_action');
$('#modal_generic_config').find('.modal-body').empty();
$('#modal_generic_config').find('.modal-title').html('<?php echo l_('CF_EDIT_ELEMENT_SETTINGS'); ?>');
var Element_Config = Element.find('.config_box');
Element_Config.css('display', 'block');
$('#modal_generic_config').find('.modal-body').append(Element_Config);
$('#modal_generic_config').css('top', jQuery(window).scrollTop());
/*Element_Config.find('.nav > li').removeClass('active');
Element_Config.find('.nav > li:first-child').addClass('active');
Element_Config.find('.tab-content > div.tab-pane').removeClass('active');
Element_Config.find('.tab-content > div.tab-pane:first-child').addClass('active');*/
$('#help_link').attr('href', 'http://www.chronoengine.com/chronoforms-wizard-help.html?term=' + Element.attr('item_id'));
if(Element_Config.find('.nav').length){
Element_Config.find('.nav').gtabs({
'pane_selector':'.tab-pane',
'tab_selector':'[data-g-toggle="tab"]',
});
Element_Config.find('.nav').gtabs('get').show(Element_Config.find('.nav').find('a:first'));
}
$('#modal_generic_config').gmodal({
'close_selector' : '[data-g-dismiss="modal"]',
});
$('#modal_generic_config').gmodal('open');
//$('#modal_generic_config').off('close.gmodal');
$('#modal_generic_config').on('close.gmodal', function(){
HideEditor(Element_Config);
Element_Config.css('display', 'none');
Element.append(Element_Config);
//apply
Element.find('.original_element').empty().append('<span class="loading_gif"><img src="<?php echo $this->Assets->image('loading-small.gif'); ?>" /></span>');
var obj = {};
Element_Config.find(':input').each(function(i, inp){
var inpData = $(inp).val();
if($(inp).attr('alt') == 'options' && $(inp).val().length < 3000){
inpData = {};
var lines = $(inp).val().split("\n");
$.each(lines, function(ln, ld){
var opts = ld.split('=');
inpData[opts[0]] = ((typeof opts[1] != 'undefined') ? opts[1] : opts[0]);
});
}
if($(inp).attr('alt') == 'multiline'){
inpData = {};
var lines = $(inp).val().split("\n");
inpData = lines;
}
if($(inp).attr('data-render') != 'no'){
if($(inp).attr('data-render') == 'code'){
obj[$(inp).attr('name')] = inpData;
}else{
obj[$(inp).attr('name')] = inpData;
}
}
});
$.ajax({
url: '<?php echo r_('index.php?ext=chronoforms&act=render_field&tvout=ajax'); ?>',
data: obj,
type: 'POST',
}).done(function(msg){
$('.loading_gif').remove();
var $newElem = $(msg);
$newElem.addClass('panel-body');
Element.find('.original_element').replaceWith($newElem);
var new_field_label = (Element_Config.find('.element_field_name').length > 0) ? Element_Config.find('.element_field_name').val() : null;
if(new_field_label){
Element.find('.form_field_label').html(Element_Config.find('.element_field_name').val());
}
//Element = $newElem.removeAttr('id');
//addLinks(Element);
});
});
$('#modal_generic_config').on('closed.gmodal', function(){
$('#modal_generic_config').off('close.gmodal');
});
});
var deleteLink = $('<span/>', {
'class':'delete_icon action_icon label label-danger',
'title':'<?php echo l_('CF_DELETE'); ?>',
'text':'<?php echo l_('CF_DELETE'); ?>',
}).on('click', function(){
$(this).closest('.element_box').remove();
});
var dragLink = $('<span/>', {
'class':'drag_icon action_icon label label-warning',
'title':'<?php echo l_('CF_DRAG'); ?>',
'text':'<?php echo l_('CF_DRAG'); ?>',
}).on('click', function(){
});
var copyLink = $('<span/>', {
'class':'copy_icon action_icon label label-default',
'title':'<?php echo l_('CF_COPY'); ?>',
'text':'<?php echo l_('CF_COPY'); ?>',
}).on('click', function(){
ChronoformWizard.fields_clipboard = $(this).closest('.element_box').clone(true, true);
$('.element_box').removeClass('field_copied');
$(this).closest('.element_box').addClass('field_copied');
});
var field_icons = $('<div/>', {
'id':'field_icons_'+fields_count,
'class':'field_icons pull-right',
});
field_icons.append(copyLink);
field_icons.append(editLink);
field_icons.append(dragLink);
field_icons.append(deleteLink);
Element.find('.panel-heading').first().append(field_icons);
Element.find('.panel-heading').first().append('<div class="clearfix"></div>');
//Element.css('background-color', '#D0F5A9');
//Element.parent().css('cursor', 'move');
//});
}
//fix old fields
$('.element_box .original_element_config').css('display', 'none').addClass('config_box').removeAttr('id');
$('.element_box .original_element_config').find('.single_element_config').each(function(i, inp){
$(inp).addClass('panel-body');
});
$('.element_box .original_element_config').removeAttr('id');
$('.element_box .original_element').removeAttr('id').addClass('panel-body');
$('.element_box.field_box').each(function(i, El){
addLinks($(El));
});
//sortable
});
</script>
<script>
//var ChronoformWizard = {};
//jQuery(document).ready(function($){
(function($){
//jsevents setup
jQuery(document).ready(function($){
var jsevents_count = <?php echo (!empty($this->data['Form']['extras']['jsevents']) ? max(array_keys($this->data['Form']['extras']['jsevents'])) + 1 : 1); ?>;
$('.jsevent_source_item').draggable({
appendTo: 'body',
helper: 'clone',
start: function(event, ui){
pos_fixed = 0; // we're about to start, set to not fixed yet
},
drag: function(event, ui){
if(pos_fixed == 0){ // check if the fix hasn't been fired for this instance yet
var help_pos = $(ui.helper).offset().top, // get helpers offset
targ_pos = $(event.target).offset().top, // get targets(the dragged elements) offset
marg = targ_pos-help_pos; // calculate the margin the helper has to have to put it on the same y-position as our target
$(ui.helper).css('margin-top', marg); // put our helper on the same y-position as the target
pos_fixed = 1; // we've fixed it, we don't want it to fire again
}
}
});
var $jsevent_drop_settings = {
activeClass: 'form-event-active',
hoverClass: 'form-event-hover',
accept: '.jsevent_source_item',
greedy: true,
tolerance: 'pointer',
drop: function(event, ui){
//addField($(this), ui.draggable.attr('id'));
var container = $(this);
var field_type = ui.draggable.attr('id');
//var $new_element = $('#'+field_type+'_origin').clone().removeAttr('id');
//$new_element.html($new_element.html().replace(/{N}/ig, fields_count));
var $new_element_config = ui.draggable.find('.jsevent_config').clone().addClass('panel-body');
$new_element_config.html($new_element_config.html().replace(/{N}/ig, jsevents_count));
//$new_element_config.find('[id^=container_id]').first().val(container_number);
//$new_element_config.css({'display':'none'});
//$new_element.addClass('panel-body');
var $new_element_box = $('<div/>', {'class':'jsevent_box panel panel-default', 'item_id':field_type});
var new_field_label = ($new_element_config.find('.element_field_name').length > 0) ? $new_element_config.find('.element_field_name').val() : field_type;
$new_element_box.append('<div class="panel-heading"><div class="pull-left"><span class="form_jsevent_label label label-primary">'+new_field_label+'</span><span class="label label-info jsevent_icon_number" style="">'+jsevents_count+'</span></div></div>');
var jsevent_icons = $('<div/>', {
'id':'jsevent_icons_'+jsevents_count,
'class':'jsevent_icons pull-right',
});
var deleteLink = $('<span/>', {
'class':'delete_icon jsevent_icon label label-danger',
'title':'<?php echo l_('CF_DELETE'); ?>',
'text':'<?php echo l_('CF_DELETE'); ?>',
});
deleteLink.on('click', function(){
deleteLink.closest('.jsevent_box').remove();
});
jsevent_icons.append(deleteLink);
$new_element_box.find('.panel-heading').append(jsevent_icons);
$new_element_box.find('.panel-heading').append('<div class="clearfix"></div>');
//$new_element_box.append($new_element);
$new_element_box.append($new_element_config);
//addLinks($new_element_box);
//$new_element_box.find('.panel-heading').append('<div class="clearfix"></div>');
container.append($new_element_box);
jsevents_count++;
}
}
function initialize_jsevents_droppables(){
$('.jsevents_container').droppable($jsevent_drop_settings).sortable({
items: 'div.jsevent_box',
containment:'parent',
axis:'y',
scroll:false,
//handle:'.drag_icon',
});
$('.jsevents_container').find('.delete_icon').on('click', function(){
$(this).closest('.jsevent_box').remove();
});
}
initialize_jsevents_droppables();
});
//actions setup
var action_count = <?php echo (!empty($this->data['Form']['extras']['actions_config']) ? max(array_keys($this->data['Form']['extras']['actions_config'])) + 1 : 0); ?>;
jQuery(document).ready(function($){
$('.action_source_item').draggable({
appendTo: 'body',
helper: 'clone',
start: function(event, ui){
pos_fixed = 0; // we're about to start, set to not fixed yet
},
drag: function(event, ui){
if(pos_fixed == 0){ // check if the fix hasn't been fired for this instance yet
var help_pos = $(ui.helper).offset().top, // get helpers offset
targ_pos = $(event.target).offset().top, // get targets(the dragged elements) offset
marg = targ_pos-help_pos; // calculate the margin the helper has to have to put it on the same y-position as our target
$(ui.helper).css('margin-top', marg); // put our helper on the same y-position as the target
pos_fixed = 1; // we've fixed it, we don't want it to fire again
}
}
});
});
ChronoformWizard.initialize_actions_droppables = function initialize_droppables(settings){
$('.form_event').droppable(settings).sortable({
items: 'div.form_action',
axis:'y',
sort: function(){
// gets added unintentionally by droppable interacting with sortable
// using connectWithSortable fixes this, but doesn't allow you to customize active/hoverClass options
//$(this).removeClass("ui-state-default");
}
});
//old actions
$('.action_icons .delete_icon').on('click', function(){
$(this).closest('.form_action').remove();
});
$('.action_icons .edit_icon').off('click');
$('.action_icons .edit_icon').on('click', function(){
var Element = $(this).closest('.form_action');
$('#modal_generic_config').find('.modal-body').empty();
$('#modal_generic_config').find('.modal-title').html('<?php echo l_('CF_EDIT_ACTION_SETTINGS'); ?>:'+' '+$(this).closest('.panel-heading').find('.action-title-labels').html());
var Element_Config = Element.children('.panel-body').children('.action_config').last();
Element_Config.css('display', 'block');
$('#modal_generic_config').find('.modal-body').append(Element_Config);
$('#modal_generic_config').css('top', jQuery(window).scrollTop());
$('#help_link').attr('href', 'http://www.chronoengine.com/chronoforms-wizard-help.html?term=' + Element.attr('item_id'));
if(Element_Config.find('.nav').length){
Element_Config.find('.nav').gtabs({
'pane_selector':'.tab-pane',
'tab_selector':'[data-g-toggle="tab"]',
});
Element_Config.find('.nav').gtabs('get').show(Element_Config.find('.nav').find('a:first'));
}
$('#modal_generic_config').gmodal({
'close_selector' : '[data-g-dismiss="modal"]',
});
$('#modal_generic_config').gmodal('open');
//$('#modal_generic_config').off('close.gmodal');
$('#modal_generic_config').on('close.gmodal', function(){
//$('#modal_generic_config').modal();
//$('#modal_generic_config').off('hide.bs.modal');
//$('#modal_generic_config').on('hide.bs.modal', function(){
HideEditor(Element_Config);
Element_Config.css('display', 'none');
Element.children('.panel-body').append(Element_Config);
});
$('#modal_generic_config').on('closed.gmodal', function(){
$('#modal_generic_config').off('close.gmodal');
});
});
}
ChronoformWizard.actions_drop_settings = $drop_settings = {
activeClass: 'form-event-active',
hoverClass: 'form-event-hover',
accept: '.action_source_item',
greedy: true,
tolerance: 'pointer',
drop: function(event, ui){
var form_action = $('<div/>', {
'id':'cfaction_'+ui.draggable.attr('id')+'_element_'+action_count,
'class':'cfaction_'+ui.draggable.attr('id')+'_element_view wizard_element form_action panel panel-default',
'item_id':ui.draggable.attr('id'),
});
form_action.append('<div class="panel-heading"><div class="pull-left action-title-labels"><span class="form_action_label label label-primary">'+ui.draggable.attr('title')+'</span><span class="label label-info action_icon_number" style="">'+action_count+'</span></div></div>');
var action_icons = $('<div/>', {
'id':'action_icons_'+action_count,
'class':'action_icons pull-right',
});
var deleteLink = $('<span/>', {
'class':'delete_icon action_icon label label-danger',
'title':'<?php echo l_('CF_DELETE'); ?>',
'text':'<?php echo l_('CF_DELETE'); ?>',
});
var dragLink = $('<span/>', {
'class':'drag_icon action_icon label label-warning',
'title':'<?php echo l_('CF_DRAG'); ?>',
'text':'<?php echo l_('CF_DRAG'); ?>',
}).on('click', function(){
});
var action_config = ui.draggable.find('.action_config').clone().addClass('hidden_config');
var editLink = $('<span/>', {
'class':'edit_icon action_icon label label-primary',
'title':'<?php echo l_('CF_EDIT'); ?>',
'text':'<?php echo l_('CF_EDIT'); ?>',
});
action_icons.append(editLink);
action_icons.append(dragLink);
action_icons.append(deleteLink);
form_action.find('.panel-heading').append(action_icons);
form_action.find('.panel-heading').append('<div class="clearfix"></div>');
form_action.append('<div class="panel-body"></div>');
var droppable_dna = $(this).find('.events_dna').attr('name')+'['+ui.draggable.attr('id')+'_'+action_count+']';
var dna = $(this).find('.events_dna').first().clone().attr('name', droppable_dna);
form_action.find('.panel-body').append(dna);
var action_events = ui.draggable.find('.form_event').clone().removeClass('hidden_event');
action_events.each(function(i, action_event){
$(action_event).find('.events_dna').attr('name', droppable_dna+'['+$(action_event).attr('title')+']');
});
action_events = $($('<div/>').append(action_events).html().replace(/{N}/ig, action_count));
form_action.find('.panel-body').append(action_events);
action_config = $($('<div/>').append(action_config).html().replace(/{N}/ig, action_count));
form_action.find('.panel-body').append(action_config);
//form_action.append('<div class="clear"> </div>');
$(this).append(form_action);
//$(this).append($('<div/>').append(form_action).html().replace(/{N}/ig, action_count));
action_count = action_count + 1;
ChronoformWizard.initialize_actions_droppables(ChronoformWizard.actions_drop_settings);
}
}
//})(jQuery);
//new event setup
jQuery(document).ready(function($){
ChronoformWizard.initialize_actions_droppables(ChronoformWizard.actions_drop_settings);
//handle new main events
$('#add_new_event').on('open.gmodal', function () {
$('#new_event_name').val('');
})
$('#add_new_event_button').on('click', function(){
var new_event_name = $('#new_event_name').val();
if(new_event_name == '')return false;
addEvent();
});
function addEvent(){
var event_box = $('<div/>', {
'class':'form_event main_event good_event alert alert-success',
'id':'FormOn'+$('#new_event_name').val()+'Event',
}).append(
$('<label/>', {'class':'form_event_label label label-success pull-left', text:'On '+$('#new_event_name').val()})
).append(
$('<label/>', {'class':'form_event_delete_label label label-danger pull-right', text:'<?php echo l_('CF_DELETE'); ?>'})
).append(
$('<div/>', {'class':'clearfix'})
).append(
'<input type="hidden" value="" class="events_dna" alt="ghost" name="Form[extras][DNA]['+$('#new_event_name').val()+']">'
).insertBefore($('#add_new_event_modal_toggler'));
ChronoformWizard.initialize_actions_droppables(ChronoformWizard.actions_drop_settings);
initialize_event_deleters();
}
initialize_event_deleters();
function initialize_event_deleters(){
$('.form_event_delete_label').on('click', function(){
$(this).parent().remove();
});
}
});
})(jQuery);
</script>
<?php
$wizard_jscode = ob_get_clean();
$doc->addHeaderTag($wizard_jscode);
?>
<div class="row" style="margin-top:20px;">
<div class="col-md-6">
<h3><?php echo !empty($this->data['Form']['title']) ? $this->data['Form']['title'] : l_('CF_NEW_FORM').'...'; ?></h3>
</div>
<div class="col-md-6 pull-right text-right">
<?php
echo $this->Toolbar->renderBar();
?>
</div>
</div>
<div class="row">
<div class="col-md-12 pull-left text-left help-block">
<?php echo !empty($this->data['Form']['params']['description']) ? $this->data['Form']['params']['description'] : ''; ?>
</div>
</div>
<div class="row">
<form action="<?php echo r_('index.php?ext=chronoforms&act=save'); ?>" method="post" enctype="multipart/form-data" name="admin_form" id="admin_form">
<?php echo $this->Html->input('Form[id]', array('type' => 'hidden', 'value' => 0)); ?>
<?php echo $this->Html->input('serialized_form_data', array('type' => 'textarea', 'id' => 'serialized_form_data', 'style' => 'display:none;')); ?>
<div id="serialized_form_chunks_area" style="display:none;">
</div>
<div id="details-panel">
<div class="panel panel-default">
<div class="panel-heading">
<ul class="nav nav-pills">
<li class="active"><a href="#general" data-g-toggle="tab"><?php echo l_('CF_GENERAL'); ?></a></li>
<li><a href="#layout-wizard" id="layout-wizard-tab-key" data-g-toggle="tab"><?php echo l_('CF_DESIGNER'); ?></a></li>
<li><a href="#form-code" data-g-toggle="tab"><?php echo l_('CF_CODE'); ?></a></li>
<li><a href="#events-list" id="events-list-tab-key" data-g-toggle="tab"><?php echo l_('CF_SETUP'); ?></a></li>
<li><a href="#locales" data-g-toggle="tab"><?php echo l_('CF_LOCALES'); ?></a></li>
<li><a href="#db_settings" data-g-toggle="tab"><?php echo l_('CF_DB_SETTINGS'); ?></a></li>
<li><a href="#style" data-g-toggle="tab"><?php echo l_('CF_STYLE'); ?></a></li>
<li><a href="#validation" data-g-toggle="tab"><?php echo l_('CF_VALIDATION'); ?></a></li>
</ul>
</div>
<div class="panel-body">
<div class="tab-content">
<div id="general" class="tab-pane active">
<?php echo $this->Html->formStart(); ?>
<?php echo $this->Html->formSecStart(); ?>
<?php echo $this->Html->formLine('Form[title]', array('type' => 'text', 'id' => 'cform_name', 'label' => l_('CF_FORM_NAME'), 'class' => 'L validate["required"]', 'sublabel' => l_('CF_FORM_NAME_DESC'))); ?>
<?php echo $this->Html->formLine('Form[params][description]', array('type' => 'textarea', 'label' => l_('CF_FORM_DESC'), 'rows' => 4, 'cols' => 70, 'sublabel' => l_('CF_FORM_DESC_DESC'))); ?>
<?php echo $this->Html->formLine('Form[published]', array('type' => 'dropdown', 'label' => l_('CF_PUBLISHED'), 'options' => array(0 => l_('NO'), 1 => l_('YES')), 'values' => 1)); ?>
<?php echo $this->Html->formLine('Form[params][setup]', array('type' => 'dropdown', 'id' => 'cform_setup', 'label' => l_('CF_SETUP_MODE'), 'values' => (!empty($this->data['setup']) ? 1 : 0), 'options' => array(0 => l_('CF_ADVANCED'), 1 => l_('CF_SIMPLE')), 'sublabel' => l_('CF_SETUP_MODE_DESC'))); ?>
<?php //echo $this->Html->formLine('Form[params][html_helper_set]', array('type' => 'dropdown', 'label' => l_('CF_DESIGNER_SET'), 'options' => array('div' => 'DIV', 'table' => 'TABLE', 'ul' => 'UL'), 'sublabel' => l_('CF_DESIGNER_SET_DESC'))); ?>
<?php //echo $this->Html->formLine('Form[params][jquery]', array('type' => 'dropdown', 'label' => l_('CF_LOAD_JQUERY'), 'values' => 1, 'options' => array(0 => l_('NO'), 1 => l_('YES')), 'sublabel' => l_('CF_LOAD_JQUERY_DESC'))); ?>
<?php echo $this->Html->formLine('Form[app]', array('type' => 'text', 'label' => l_('CF_FORM_APP'), 'class' => 'M', 'sublabel' => l_('CF_FORM_APP_DESC'))); ?>
<?php echo $this->Html->formSecEnd(); ?>
<?php echo $this->Html->formEnd(); ?>
</div>
<div id="form-code" class="tab-pane">
<?php echo $this->Html->formStart(); ?>
<?php echo $this->Html->formSecStart(); ?>
<?php echo $this->Html->formLine('Form[form_type]', array('type' => 'dropdown', 'label' => l_('CF_FORM_TYPE'), 'options' => array(1 => l_('CF_WIZARD_DESIGNER'), 0 => l_('CF_CUSTOM_CODE')), 'sublabel' => l_('CF_FORM_TYPE_DESC'))); ?>
<?php echo $this->Html->formLine('Form[content]', array('type' => 'textarea', 'label' => l_('CF_FORM_CODE'), 'style' => 'width:auto;', 'rows' => 20, 'cols' => 100, 'sublabel' => l_('CF_FORM_CODE_DESC'), 'value' => (!empty($form['content']) ? htmlspecialchars($form['content']) : ''))); ?>
<?php echo $this->Html->formSecEnd(); ?>
<?php echo $this->Html->formEnd(); ?>
</div>
<div id="layout-wizard" class="tab-pane">
<div id="wizard-area" class="actions_tabs">
<div class="panel panel-default">
<div class="panel-heading">
<ul class="nav nav-tabs">
<li class="active"><a href="#designer-layout" data-g-toggle="tab"><?php echo l_('CF_DESIGNER_LAYOUT'); ?></a></li>
<li><a href="#designer-events" data-g-toggle="tab"><?php echo l_('CF_DESIGNER_EVENTS'); ?></a></li>
</ul>
</div>
<div class="panel-body">
<div class="tab-content">
<div id="designer-layout" class="tab-pane active">
<div id="designer-container" class="container" style="width:100%;">
<div class="row">
<?php
$foptions = array();
$field_cats = array('basic' => l_('CF_BASIC'));
foreach($fields_types as $type){
$class = '\GCore\Admin\Extensions\Chronoforms\Fields\\'.\GCore\Libs\Str::camilize($type).'\\'.\GCore\Libs\Str::camilize($type);
$foptions[$type] = $class::$title;
if(!empty($class::$cat_id)){
$field_cats[$class::$cat_id] = $class::$cat_title;
}
}
//$foptions['multi_field'] = l_('CF_MULTI_FIELD');
$groups_ids = array_keys($field_cats);
$first_group_id = $groups_ids[0];
?>
<div id="fields_list" class="col-md-2">
<div class="panel-group" id="fields-accordion">
<?php foreach($field_cats as $group_id => $group): ?>
<div class="panel panel-default">
<div class="panel-heading" style="padding:4px 15px;">
<h4 class="panel-title">
<a data-g-toggle="collapse" data-g-parent="#fields-accordion" href="#collapse-<?php echo $group_id; ?>"><?php echo $group; ?></a>
</h4>
</div>
<div id="collapse-<?php echo $group_id; ?>" class="panel-collapse<?php if($group_id == $first_group_id): ?> in<?php else: ?> collapse<?php endif; ?>">
<div class="panel-body">
<?php foreach($foptions as $field => $field_title): ?>
<?php $field_class = '\GCore\Admin\Extensions\Chronoforms\Fields\\'.\GCore\Libs\Str::camilize($field).'\\'.\GCore\Libs\Str::camilize($field); ?>
<?php if(class_exists($field_class) AND !empty($field_class::$cat_id) AND $field_class::$cat_id != $group_id)continue; ?>
<div class="field_source_item" id="<?php echo $field; ?>" title="<?php echo $field_title; ?>" style="margin:1px;">
<span class="btn btn-primary btn-xs btn-block"><?php echo $field_title; ?></span>
<?php
if(class_exists($field_class)){
$field_class::config();
}
?>
</div>
<?php endforeach; ?>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
</div>
<div class="fields_panel col-md-10">
<div id="preview" container_num="0" class="fields_container alert alert-info">
<?php
$containers_ids = array();
$config_templates = array();
if(!empty($this->data['Form']['extras']['fields'])){
foreach($this->data['Form']['extras']['fields'] as $f_k => $f_info){
if(strpos($f_k, '{N}') !== false){
unset($this->data['Form']['extras']['fields'][$f_k]);
}
}
//pr($this->data['Form']['extras']['fields']);
foreach($this->data['Form']['extras']['fields'] as $k => $wizard_field){
$type = isset($wizard_field['render_type']) ? $wizard_field['render_type'] : $wizard_field['type'];
$class = '\GCore\Admin\Extensions\Chronoforms\Fields\\'.\GCore\Libs\Str::camilize($type).'\\'.\GCore\Libs\Str::camilize($type);
if(!class_exists($class)){
continue;
}
if($wizard_field['type'] == 'container'){
//if this container is also a root container then close existing ones
if($wizard_field['container_id'] == 0){
//close all open containers
foreach($containers_ids as $containers_id){
array_pop($containers_ids);
//close container div and panel-body
echo '</div></div>';
}
}else{
//this container is a child of another container
check_parent_container:
if(!empty($containers_ids)){
$last_container_id = array_pop($containers_ids);
if($wizard_field['container_id'] == $last_container_id){
//do nothing, we should add the field as regular
array_push($containers_ids, $last_container_id);
}else{
//one container has just ended, because the element belongs to a differnt one, close it
//close container div and panel-body
echo '</div></div>';
goto check_parent_container;
}
}
}
echo '<div class="fields_container_area element_box panel panel-success" id="fields_container_'.$k.'" container_num="'.$k.'" item_id="container" style="'.(($wizard_field['container_type'] == 'column') ? 'width:'.$wizard_field['size']['width'].'%' : '').'">';
$container_heading = '
<div class="panel-heading">
<div class="pull-left">
<span class="form_field_label container_label label label-primary">'.$wizard_field['label'].'</span>
<span style="" class="label label-info action_icon_number">'.$k.'</span>
<span style="" class="label label-info action_icon_number container_type">'.$wizard_field['container_type'].'</span>
</div>
<div id="field_icons_'.$k.'" class="field_icons pull-right">';
$container_heading .= '<span class="paste_icon paste_container_icon action_icon label label-default" title="'.l_('CF_PASTE').'">'.l_('CF_PASTE').'</span>';
$container_heading .= '<span class="collapse_icon collapse_container_icon action_icon label label-default" title="'.l_('CF_COLLAPSE').'">'.l_('CF_COLLAPSE').'</span>';
$container_heading .= '<span class="edit_icon edit_container_icon action_icon label label-primary" title="'.l_('CF_EDIT').'">'.l_('CF_EDIT').'</span>';
$container_heading .= '<span class="drag_icon action_icon label label-warning" title="'.l_('CF_DRAG').'">'.l_('CF_DRAG').'</span>';
$container_heading .= '<span class="delete_icon delete_container_icon action_icon label label-danger" title="'.l_('CF_DELETE').'">'.l_('CF_DELETE').'</span>';
$container_heading .= '</div>
<div class="clearfix"></div>
</div>';
echo $container_heading;
$class::config($wizard_field, $k);
echo '<div container_num="'.$k.'" class="fields_container panel-body">';
array_push($containers_ids, $k);
}else{
if(isset($wizard_field['container_id'])){
if($wizard_field['container_id'] == 0){
//close all open containers
foreach($containers_ids as $containers_id){
array_pop($containers_ids);
//close container div and panel-body
echo '</div></div>';
}
}else{
check_container:
if(!empty($containers_ids)){
$last_container_id = array_pop($containers_ids);
if($wizard_field['container_id'] == $last_container_id){
//do nothing, we should add the field as regular
array_push($containers_ids, $last_container_id);
}else{
//one container has just ended, because the element belongs to a differnt one, close it
//close container div and panel-body
echo '</div></div>';
goto check_container;
}
}
}
}
echo '<div class="element_box field_box panel panel-'.(($wizard_field['type'] == 'multi') ? 'warning' : 'default').'" item_id="'.$wizard_field['type'].'">';
if(isset($wizard_field['name'])){
$element_title = $wizard_field['name'];
}else{
$element_title = $wizard_field['type'];
}
echo '
<div class="panel-heading">
<div class="pull-left">
<span class="form_field_label label label-primary">'.$element_title.'</span>
<span style="" class="label label-info field_icon_number">'.$k.'</span>
</div>
</div>';
$element_info = $wizard_field;
if(isset($element_info['options'])){
$options = array();
if(!empty($element_info['options'])){
$lines = explode("\n", $element_info['options']);
foreach($lines as $line){
$opts = explode("=", $line);
$options[$opts[0]] = isset($opts[1]) ? $opts[1] : $opts[0];
}
}
$element_info['options'] = $options;
}
if(isset($element_info['values'])){
$values = array();
if(!empty($element_info['values'])){
$values = explode("\n", $element_info['values']);
}
$element_info['values'] = $values;
}
$class::element($element_info);
ob_start();
if(count($this->data['Form']['extras']['fields']) <= $chronoforms_settings->get('wizard.safe_loading_fields_count', 20)){
$class::config($wizard_field, $k);
}else{
echo '<div class="field_config_replacer" field_id="'.$k.'"></div>';
}
$element_config = ob_get_clean();
echo str_replace('{N}', $k, $element_config);
echo '</div>';
}
}
//close any empty containers with no fields after them
while($container_id = array_pop($containers_ids)){
echo '</div></div>';
}
}
?>
</div>
</div>
</div>
</div>
</div>
<div id="designer-events" class="tab-pane">
<div class="row">
<?php
$jseoptions = array();
$jsevents_cats = array('basic' => l_('CF_BASIC'));
foreach($jsevents_types as $type){
$class = '\GCore\Admin\Extensions\Chronoforms\Events\\'.\GCore\Libs\Str::camilize($type).'\\'.\GCore\Libs\Str::camilize($type);
$jseoptions[$type] = $class::$title;
if(!empty($class::$cat_id)){
$jsevents_cats[$class::$cat_id] = $class::$cat_title;
}
}
//$jseoptions['multi_field'] = l_('CF_MULTI_FIELD');
$groups_ids = array_keys($jsevents_cats);
$first_group_id = $groups_ids[0];
?>
<div id="jsevents_list" class="col-md-2">
<div class="panel-group" id="jsevents-accordion">
<?php foreach($jsevents_cats as $group_id => $group): ?>
<div class="panel panel-default">
<div class="panel-heading" style="padding:4px 15px;">
<h4 class="panel-title">
<a data-g-toggle="collapse" data-g-parent="#jsevents-accordion" href="#collapse-<?php echo $group_id; ?>"><?php echo $group; ?></a>
</h4>
</div>
<div id="collapse-<?php echo $group_id; ?>" class="panel-collapse<?php if($group_id == $first_group_id): ?> in<?php else: ?> collapse<?php endif; ?>">
<div class="panel-body">
<?php foreach($jseoptions as $jsevent => $jsevent_title): ?>
<?php $jsevent_class = '\GCore\Admin\Extensions\Chronoforms\Events\\'.\GCore\Libs\Str::camilize($jsevent).'\\'.\GCore\Libs\Str::camilize($jsevent); ?>
<?php if(class_exists($jsevent_class) AND !empty($jsevent_class::$cat_id) AND $jsevent_class::$cat_id != $group_id)continue; ?>
<div class="jsevent_source_item" id="<?php echo $jsevent; ?>" title="<?php echo $jsevent_title; ?>" style="margin:1px;">
<span class="btn btn-primary btn-xs btn-block"><?php echo $jsevent_title; ?></span>
<?php
if(class_exists($jsevent_class)){
$jsevent_class = new $jsevent_class(!empty($this->data['Form']['extras']) ? $this->data['Form']['extras'] : array());
$jsevent_class::config();
}
?>
</div>
<?php endforeach; ?>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
</div>
<div class="jsevents_panel col-md-10">
<div id="jsevents" container_num="0" class="jsevents_container alert alert-warning">
<?php
if(!empty($this->data['Form']['extras']['jsevents'])){
foreach($this->data['Form']['extras']['jsevents'] as $f_k => $f_info){
if(strpos($f_k, '{N}') !== false){
unset($this->data['Form']['extras']['jsevents'][$f_k]);
}
}
//pr($this->data['Form']['extras']['jsevents']);
//pr($this->data['Form']['extras']['fields']);
foreach($this->data['Form']['extras']['jsevents'] as $k => $wizard_jsevent){
$type = $wizard_jsevent['type'];
$class = '\GCore\Admin\Extensions\Chronoforms\Events\\'.\GCore\Libs\Str::camilize($type).'\\'.\GCore\Libs\Str::camilize($type);
if(!class_exists($class)){
continue;
}
$class = new $class($this->data['Form']['extras']);
echo '<div class="jsevent_box panel panel-default">';
echo '
<div class="panel-heading">
<div class="pull-left">
<span class="form_jsevent_label label label-primary">'.$class::$title.'</span>
<span style="" class="label label-info jsevent_icon_number">'.$k.'</span>
</div>
<div id="jsevent_icons_'.$k.'" class="jsevent_icons pull-right">
<span class="delete_icon jsevent_icon label label-danger" title="'.l_('CF_DELETE').'">'.l_('CF_DELETE').'</span>
</div>
<div class="clearfix"></div>
</div>
';
echo '<div class="jsevent_config panel-body">';
ob_start();
$class::config($wizard_jsevent, $k);
$element_config = ob_get_clean();
echo str_replace('{N}', $k, $element_config);
echo '</div>';
echo '</div>';
}
}
?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="origins" style="display:none;">
<?php
foreach($fields_types as $type){
$class = '\GCore\Admin\Extensions\Chronoforms\Fields\\'.\GCore\Libs\Str::camilize($type).'\\'.\GCore\Libs\Str::camilize($type);
$class::element($class::$settings);
$class::config();
}
?>
</div>
</div>
<div id="events-list" class="tab-pane">
<div id="boxes-container" class="container" style="width:100%;">
<?php if(!empty($this->data['setup']) OR !empty($this->data['Form']['params']['setup'])): ?>
<?php $easy_actions = $this->DnaBuilder->config = false;; ?>
<?php $easy_actions = $this->DnaBuilder->get_actions($this->data['Form']['extras']['DNA']); ?>
<div class="row">
<div class="panel panel-success">
<div class="panel-heading">
<ul class="nav nav-pills">
<?php $counter = 0; ?>
<?php foreach($easy_actions as $easy_action_id => $easy_action_name): ?>
<?php
$action_class = '\GCore\Admin\Extensions\Chronoforms\Actions\\'.\GCore\Libs\Str::camilize($easy_action_name).'\\'.\GCore\Libs\Str::camilize($easy_action_name);
if(class_exists($action_class) AND property_exists($action_class, 'setup')):
?>
<li class="<?php echo empty($class) ? 'active' : ''; ?>">
<a href="#<?php echo $easy_action_name.$easy_action_id; ?>" data-g-toggle="tab"><?php echo $action_class::$setup['simple']['title']; ?> <span class="label label-info"><?php echo str_replace('_', '', $easy_action_id); ?></span></a>
</li>
<?php $counter++; ?>
<?php endif; ?>
<?php endforeach; ?>
</ul>
</div>
<div class="panel-body">
<div class="tab-content">
<?php $counter = 0; ?>
<?php foreach($easy_actions as $easy_action_id => $easy_action_name): ?>
<?php
$action_class = '\GCore\Admin\Extensions\Chronoforms\Actions\\'.\GCore\Libs\Str::camilize($easy_action_name).'\\'.\GCore\Libs\Str::camilize($easy_action_name);
if(class_exists($action_class)):
ob_start();
$action_class = new $action_class();
$action_class::config();
$action_config = ob_get_clean();
if(isset($action_class->defaults)){
$action_config = \GCore\Helpers\DataLoader::load($action_config, array('Form' => array('extras' => array('actions_config' => array('{N}' => $action_class->defaults)))));
}
$action_config = str_replace('{N}', str_replace('_', '', $easy_action_id), $action_config);
if(property_exists($action_class, 'setup')):
?>
<div id="<?php echo $easy_action_name.$easy_action_id; ?>" class="tab-pane <?php echo (empty($counter)) ? 'active' : ''; ?>">
<?php
echo $action_config;
?>
</div>
<?php $counter++; ?>
<?php else: ?>
<div style="display:none;">
<?php
echo $action_config;
?>
</div>
<?php endif; ?>
<?php endif; ?>
<?php endforeach; ?>
</div>
</div>
</div>
</div>
<?php endif; ?>
<div class="row"<?php if(!empty($this->data['setup']) OR !empty($this->data['Form']['params']['setup'])): ?> style="display:none;"<?php endif; ?>>
<?php
$action_cats = array();
foreach($actions_list as $action){
$action_class = '\GCore\Admin\Extensions\Chronoforms\Actions\\'.\GCore\Libs\Str::camilize($action).'\\'.\GCore\Libs\Str::camilize($action);
if(class_exists($action_class)){
if(isset($action_class::$platforms) AND !in_array(\GCore\C::get('GSITE_PLATFORM'), $action_class::$platforms)){
continue;
}
if(isset($action_class::$group)){
$group_ids = array_keys($action_class::$group);
$actions_groups[$group_ids[0]][] = $action;
$action_cats[$group_ids[0]] = $action_class::$group[$group_ids[0]];
}else{
$actions_groups['1_basic'][] = $action;
$action_cats['1_basic'] = l_('CF_BASIC');
}
}
}
ksort($action_cats);
?>
<div id="actions_list" class="col-md-2">
<div class="panel-group" id="actions-accordion">
<?php
$groups_ids = array_keys($action_cats);
$first_group_id = $groups_ids[0];
?>
<?php foreach($action_cats as $group_id => $group): ?>
<div class="panel panel-default">
<div class="panel-heading" style="padding:4px 15px;">
<h4 class="panel-title">
<a data-g-toggle="collapse" data-g-parent="#actions-accordion" href="#collapse-<?php echo $group_id; ?>"><?php echo $group; ?></a>
</h4>
</div>
<div id="collapse-<?php echo $group_id; ?>" class="panel-collapse<?php if($group_id == $first_group_id): ?> in<?php else: ?> collapse<?php endif; ?>">
<div class="panel-body">
<?php $actions = $actions_groups[$group_id]; ?>
<?php foreach($actions as $action): ?>
<?php
$action_class = '\GCore\Admin\Extensions\Chronoforms\Actions\\'.\GCore\Libs\Str::camilize($action).'\\'.\GCore\Libs\Str::camilize($action);
if(class_exists($action_class) AND isset($action_class::$title)):
$action_class = new $action_class();
$action_class::admin_initialize($action);
if(!isset($action_class::$info)){
$action_info = array('title' => $action_class::$title, 'content' => $action_class::$title);
}else{
$action_info = $action_class::$info;
}
?>
<div class="action_source_item" id="<?php echo $action; ?>" title="<?php echo $action_class::$title; ?>" style="margin:1px;">
<span class="btn btn-primary btn-xs btn-block PopOverReady" data-title="<?php echo $action_info['title']; ?>" data-content="<?php echo $action_info['content']; ?>"><?php echo $action_class::$title; ?></span>
<?php if(!empty($action_class->events)): ?>
<?php foreach($action_class->events as $event => $val): ?>
<?php
if($event == 'success' OR (isset($action_class->events_status[$event]) AND $action_class->events_status[$event] == 'success')){
$e_cl = array('good_event', 'success');
}else{
$e_cl = array('bad_event', 'danger');
}
?>
<div class="form_event <?php echo $e_cl[0]; ?> alert alert-<?php echo $e_cl[1]; ?> hidden_event" title="<?php echo $event; ?>" id="cfactionevent_<?php echo $action; ?>_{N}_<?php echo $event; ?>">
<label class="form_event_label label label-<?php echo $e_cl[1]; ?>">On <?php echo \GCore\Libs\Str::camilize($event); ?></label>
<input type="hidden" value="" class="events_dna" alt="ghost" name="">
</div>
<?php endforeach; ?>
<?php endif; ?>
<?php
ob_start();
$action_class::config();
$default_action_contents = ob_get_clean();
if(isset($action_class->defaults)){
echo \GCore\Helpers\DataLoader::load($default_action_contents, array('Form' => array('extras' => array('actions_config' => array('{N}' => $action_class->defaults)))));
}else{
echo $default_action_contents;
}
?>
</div>
<?php endif; ?>
<?php endforeach; ?>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
</div>
<div id="droppable_area_actions" class="droppable col-md-10">
<?php
if(empty($this->data['Form']['extras']['DNA'])){
$this->data['Form']['extras']['DNA'] = array('load' => array(), 'submit' => array());
}
foreach($this->data['Form']['extras']['DNA'] as $event => $info):
?>
<div class="form_event main_event good_event alert alert-success" id="FormOn<?php echo \GCore\Libs\Str::camilize($event); ?>Event">
<label class="form_event_label label label-success pull-left">On <?php echo $event; ?></label>
<?php if(!in_array($event, array('load', 'submit'))): ?>
<label class="form_event_delete_label label label-danger pull-right"><?php echo l_('CF_DELETE'); ?></label>
<?php endif; ?>
<div class="clearfix"></div>
<input type="hidden" value="" class="events_dna" alt="ghost" name="Form[extras][DNA][<?php echo $event; ?>]">
<?php echo $this->DnaBuilder->build($info, 'Form[extras][DNA]['.$event.']', isset($this->data['Form']['extras']['actions_config']) ? $this->data['Form']['extras']['actions_config'] : array()); ?>
</div>
<?php endforeach; ?>
<button type="button" class="btn btn-success" data-g-toggle="modal" data-g-target="#add_new_event" id="add_new_event_modal_toggler" onclick="jQuery('#add_new_event').css('top', jQuery(window).scrollTop());">
<?php echo l_('CF_ADD_NEW_EVENT'); ?>
</button>
<br>
<!-- Modal -->
<div class=" fade" id="add_new_event" tabindex="-1" role="dialog" aria-labelledby="Event_ModalLabel" aria-hidden="true" style="display:none; position:absolute; top:0; left:0; width:100%;">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-g-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="Event_Label"><?php echo l_('CF_ADD_NEW_EVENT'); ?></h4>
</div>
<div class="modal-body">
<?php echo $this->Html->formSecStart(); ?>
<?php echo $this->Html->formLine('new_event_name', array('type' => 'text', 'id' => 'new_event_name', 'label' => 'Event Name')); ?>
<?php echo $this->Html->formSecEnd(); ?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-success" data-g-dismiss="modal" id="add_new_event_button"><?php echo l_('CF_ADD_NEW_EVENT'); ?></button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="locales" class="tab-pane">
<button type="button" class="btn btn-success" data-g-toggle="modal" data-g-target="#add_new_locale">
<?php echo l_('CF_ADD_NEW_LOCALE'); ?>
</button>
<br>
<!-- Modal -->
<div class=" fade" id="add_new_locale" tabindex="-1" role="dialog" aria-labelledby="Locale_ModalLabel" aria-hidden="true" style="display:none;">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-g-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="Locale_Label"><?php echo l_('CF_ADD_NEW_LOCALE'); ?></h4>
</div>
<div class="modal-body">
<?php echo $this->Html->formSecStart(); ?>
<?php echo $this->Html->formLine('locale_name', array('type' => 'text', 'id' => 'locale_name', 'label' => l_('CF_LANG_NAME'), 'sublabel' => l_('CF_LANG_NAME_DESC'))); ?>
<?php echo $this->Html->formSecEnd(); ?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-success" data-g-dismiss="modal" id="add_new_locale_button"><?php echo l_('CF_ADD_NEW_LOCALE'); ?></button>
</div>
</div>
</div>
</div>
<!-- tabs -->
<ul class="nav nav-tabs" id="locales_tabs_heads" style="margin-top:10px;">
<?php if(isset($this->data['Form']['extras']['locales'])): ?>
<?php foreach($this->data['Form']['extras']['locales'] as $k => $locale): ?>
<li class=""><a href="#locale-<?php echo $k; ?>" data-g-toggle="tab"><?php echo $k; ?></a></li>
<?php endforeach; ?>
<?php endif; ?>
</ul>
<!-- Tab panes -->
<div class="tab-content" id="locales_tabs_contents">
<?php if(isset($this->data['Form']['extras']['locales'])): ?>
<?php foreach($this->data['Form']['extras']['locales'] as $k => $locale): ?>
<div class="tab-pane" id="locale-<?php echo $k; ?>">
<?php echo $this->Html->formStart(); ?>
<?php echo $this->Html->formSecStart(); ?>
<?php echo $this->Html->formLine('Form[extras][locales]['.$k.'][lang_tag]', array('type' => 'text', 'label' => l_('CF_LANG_TAG'), 'sublabel' => l_('CF_LANG_TAG_DESC'))); ?>
<?php echo $this->Html->formLine('Form[extras][locales]['.$k.'][strict]', array('type' => 'dropdown', 'label' => l_('CF_LANG_STRICT'), 'options' => array(0 => l_('NO'), 1 => l_('YES')), 'sublabel' => l_('CF_LANG_STRICT_DESC'))); ?>
<?php echo $this->Html->formLine('Form[extras][locales]['.$k.'][strings]', array('type' => 'textarea', 'style' => 'width:auto;', 'rows' => 10, 'cols' => 80, 'label' => l_('CF_LANG_STRINGS'), 'sublabel' => l_('CF_LANG_STRINGS_DESC'))); ?>
<?php echo $this->Html->formSecEnd(); ?>
<?php echo $this->Html->formEnd(); ?>
<a class="remove_locale_button btn btn-danger" onclick="remove_locale('<?php echo $k; ?>');" href="#">
<?php echo l_('REMOVE_LOCALE'); ?>
</a>
</div>
<?php endforeach; ?>
<?php endif; ?>
</div>
</div>
<div id="db_settings" class="tab-pane">
<?php echo $this->Html->formStart(); ?>
<?php echo $this->Html->formSecStart(); ?>
<?php
$tables = array();
if(!empty($this->data['Form']['extras']['actions_config'])){
foreach($this->data['Form']['extras']['actions_config'] as $i => $action_config){
if(!empty($action_config['tablename'])){
$tables[] = $action_config['tablename'];
}
}
}
$tables = array_unique($tables);
?>
<?php foreach($tables as $table): ?>
<?php echo $this->Html->formLine('Form[extras][db_fields_list]['.$table.']', array('type' => 'textarea', 'label' => array('text' => sprintf(l_('CF_DB_FIELDS_LIST'), $table), 'position' => 'top'), 'style' => 'width:auto;', 'rows' => 7, 'cols' => 100, 'sublabel' => l_('CF_DB_FIELDS_LIST_DESC'))); ?>
<?php endforeach; ?>
<?php echo $this->Html->formSecEnd(); ?>
<?php echo $this->Html->formEnd(); ?>
</div>
<div id="style" class="tab-pane">
<?php echo $this->Html->formStart(); ?>
<?php echo $this->Html->formSecStart(); ?>
<?php echo $this->Html->formLine('Form[params][theme]', array('type' => 'dropdown', 'id' => 'cform_bootstrap', 'label' => l_('CF_FORM_THEME'), 'values' => 'bootstrap3', 'options' => array('gcoreui' => l_('GCoreUI'), 'bootstrap3' => l_('Bootstrap3'), 'bootstrap3_pure' => l_('Pure Bootstrap3'), 'none' => l_('CF_NONE')/*, 'semantic1' => l_('Semantic 1')*/), 'sublabel' => l_('CF_FORM_THEME_DESC'))); ?>
<?php //echo $this->Html->formLine('Form[params][responsive_layout]', array('type' => 'dropdown', 'label' => l_('CF_RESPONSIVE_LAYOUT'), 'options' => array(0 => l_('NO'), 1 => l_('YES')), 'sublabel' => l_('CF_RESPONSIVE_LAYOUT_DESC'))); ?>
<?php echo $this->Html->formLine('Form[params][tight_layout]', array('type' => 'dropdown', 'label' => l_('CF_TIGHT_LAYOUT'), 'options' => array(0 => l_('NO'), 1 => l_('YES')), 'sublabel' => l_('CF_TIGHT_LAYOUT_DESC'))); ?>
<?php echo $this->Html->formLine('Form[params][rtl_support]', array('type' => 'dropdown', 'label' => l_('CF_RTL_SUPPORT'), 'options' => array(0 => l_('NO'), 1 => l_('YES')), 'sublabel' => l_('CF_RTL_SUPPORT_DESC'))); ?>
<?php echo $this->Html->formLine('Form[params][labels_right_aligned]', array('type' => 'dropdown', 'label' => l_('CF_LABELS_RIGHT_ALIGNED'), 'options' => array(0 => l_('NO'), 1 => l_('YES')), 'sublabel' => l_('CF_LABELS_RIGHT_ALIGNED_DESC'))); ?>
<?php echo $this->Html->formLine('Form[params][labels_auto_width]', array('type' => 'dropdown', 'label' => l_('CF_LABELS_AUTO_WIDTH'), 'options' => array(0 => l_('NO'), 1 => l_('YES')), 'sublabel' => l_('CF_LABELS_AUTO_WIDTH_DESC'))); ?>
<?php echo $this->Html->formSecEnd(); ?>
<?php echo $this->Html->formEnd(); ?>
</div>
<div id="validation" class="tab-pane">
<?php echo $this->Html->formStart(); ?>
<?php echo $this->Html->formSecStart(); ?>
<?php echo $this->Html->formLine('Form[params][js_validation_language]', array('type' => 'dropdown', 'label' => l_('CF_JS_VALIDATION_LANGUAGE'), 'options' =>
array(
'' => l_('CF_JS_VALIDATION_LANGUAGE_DYNAMIC'),
'en' => 'English',
'fr' => 'French',
'de' => 'Deutsch',
'nl' => 'Dutch',
'es' => 'Spanish',
'da' => 'Danish',
'it' => 'Italian',
'jp' => 'Japanese',
'cn' => 'Chinese',
'ru' => 'Russain',
'pt' => 'Portugese',
'gr' => 'Greek',
'tr' => 'Turkish',
'pl' => 'Polish',
'ro' => 'Romanian',
'no' => 'Norwegian bokmål',
'fa' => 'Farsi',
'lv' => 'Latvian',
'sl' => 'Slovenščina',
'sk' => 'Slovak',
'sv' => 'Swedish',
'cz' => 'Čeština',
'th' => 'Thai'
),
'sublabel' => l_('CF_JS_VALIDATION_LANGUAGE_DESC'))); ?>
<?php echo $this->Html->formSecEnd(); ?>
<?php echo $this->Html->formEnd(); ?>
</div>
</div>
</div>
</div>
</div>
</form>
</div>
<div id="locale_generic_config" class="generic_config" title="Generic" style="display:none;">
<?php echo $this->Html->formStart(); ?>
<?php echo $this->Html->formSecStart(); ?>
<?php echo $this->Html->formLine('Form[extras][locales][{N}][lang_tag]', array('type' => 'text', 'label' => l_('CF_LANG_TAG'), 'sublabel' => l_('CF_LANG_TAG_DESC'))); ?>
<?php echo $this->Html->formLine('Form[extras][locales][{N}][strict]', array('type' => 'dropdown', 'label' => l_('CF_LANG_STRICT'), 'options' => array(0 => l_('NO'), 1 => l_('YES')), 'sublabel' => l_('CF_LANG_STRICT_DESC'))); ?>
<?php echo $this->Html->formLine('Form[extras][locales][{N}][strings]', array('type' => 'textarea', 'style' => 'width:auto;', 'rows' => 10, 'cols' => 80, 'label' => l_('CF_LANG_STRINGS'), 'sublabel' => l_('CF_LANG_STRINGS_DESC'))); ?>
<?php echo $this->Html->formSecEnd(); ?>
<?php echo $this->Html->formEnd(); ?>
<a class="remove_locale_button btn btn-danger" onclick="remove_locale('{N}');" href="#">
<?php echo l_('REMOVE_LOCALE'); ?>
</a>
</div>
<div class=" fade" id="modal_generic_config" tabindex="-1" role="dialog" aria-labelledby="Modal_ModalLabel" aria-hidden="true" style="display:none; position:absolute; top:0; left:0; width:100%;">
<div class="modal-dialog" style="width:800px;">
<div class="modal-content" style="width:800px;">
<div class="modal-header">
<button type="button" class="close" data-g-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="Modal_Label"><?php echo l_('CF_EDIT_ACTION_SETTINGS'); ?></h4>
</div>
<div class="modal-body">
</div>
<div class="modal-footer">
<a class="btn btn-info pull-left" target="_blank" href="http://www.chronoengine.com/faqs.html" id="help_link">More info on ChronoEngine.com</a>
<button type="button" class="btn btn-success" data-g-dismiss="modal" id="apply_config_button"><?php echo l_('CF_SAVE_AND_CLOSE'); ?></button>
</div>
</div>
</div>
</div>
<div id="add_multi_field_dialog" class="add_action_dialog" title="<?php echo l_('CF_INSERT_MULTI_FIELD'); ?>" style="display:none;">
<?php echo $this->Html->formSecStart(); ?>
<?php
unset($foptions['container']);
unset($foptions['multi']);
echo $this->Html->formLine('field_type_selector', array('type' => 'multi', 'layout' => 'wide', 'label' => 'Field Type', 'inputs' => array(
array('type' => 'dropdown', 'name' => 'fields_types_list', 'id' => 'fields_types_list', 'options' => $foptions, 'style' => 'width:auto;'),
array('type' => 'button', 'name' => 'stack_field', 'id' => 'stack_field', 'value' => ' >> '),
array('type' => 'dropdown', 'name' => 'multi_field_stack', 'id' => 'multi_field_stack', 'options' => array(), 'size' => 5, 'multiple' => 'multiple', 'style' => 'width:200px;'),
)));
?>
<?php echo $this->Html->formSecEnd(); ?>
</div>
</div>
</div>