confirm_confirm_confirm = () ->\r
confirm( )\r
editor = window.PettanrEditor\r
+ configurations = window.configurations\r
WritingFormat = window.PettanrWritingFormat\r
WritingFormat.load($('#writing_formats'))\r
SpeechBalloonTemplate = window.PettanrSpeechBalloonTemplate\r
PictureSizeHelper = window.PettanrPictureSizeHelper\r
ColorHelper = window.PettanrColorHelper\r
\r
+ find_configurations = ( hash, key) ->\r
+ if typeof(hash[key]) == 'string'\r
+ find_configurations(hash, hash[key])\r
+ else\r
+ return hash[key]\r
+ \r
+ set_validates = (form) ->\r
+ rules = {}\r
+ $('input', form).map ->\r
+ model_name = $(@).attr('data-model')\r
+ column_name = $(@).attr('column')\r
+ name = $(@).attr('name')\r
+ if model_name and column_name\r
+ model = find_configurations(configurations['models'], model_name)\r
+ rule = model['attributes'][column_name]['rules']\r
+ trace = editor.element_tag_id($(@)) \r
+ if rule\r
+ rules[name] = rule\r
+ $(@).focusout ->\r
+ if editor.is_panel(form)\r
+ validate_panel(form)\r
+ else\r
+ validate_element(form)\r
+ if Object.keys(rules).length > 0\r
+ v = form.validate({ignore:[],rules: rules})\r
+ \r
+ validate_panel = (form) ->\r
+ valid = form.valid()\r
+ bc = if valid\r
+ ''\r
+ else\r
+ '#ef29ef'\r
+ $('a', $('#tabs-1-tab')).map ->\r
+ $(@).css('background-color', bc)\r
+ valid\r
+ \r
+ display_element = (element, vis) ->\r
+ v = if vis\r
+ ''\r
+ else\r
+ 'none'\r
+ trace = editor.element_tag_id(element)\r
+ switch element.attr('element_type')\r
+ when 'panel_picture'\r
+ trace = trace + 'div'\r
+ $(trace).css('display', v)\r
+ \r
+ validate_element = (form) ->\r
+ valid = form.valid()\r
+ bc = if valid\r
+ ''\r
+ else\r
+ '#ef29ef'\r
+ display_element(form, valid)\r
+ trace = editor.element_tag_id(form) \r
+ $('.elements-tab', $(trace + 'element_tab')).map ->\r
+ $(@).css('background-color', bc)\r
+ valid\r
+ \r
+ validate_forms = () ->\r
+ valid = true\r
+ $('form', $('#tabs-1')).map ->\r
+ form_name = $(@).attr('data-form-name')\r
+ if form_name\r
+ if validate_panel($(@))\r
+ else\r
+ valid = false\r
+ invalid_elements = []\r
+ $('form', $('#tabs-2')).map ->\r
+ form_name = $(@).attr('data-form-name')\r
+ if form_name\r
+ if validate_element($(@))\r
+ else\r
+ valid = false\r
+ invalid_elements.push form_name\r
+ if invalid_elements.length > 0\r
+ bc = '#ef29ef'\r
+ else\r
+ bc = ''\r
+ $('a', $('#tabs-2-tab')).map ->\r
+ $(@).css('background-color', bc)\r
+ return valid\r
+ $('form').map ->\r
+ form_name = $(@).attr('data-form-name')\r
+ if form_name\r
+ form = $(this)\r
+ set_validates(form)\r
$('.panel-editor').map ->\r
if $(@).attr('current') and parseInt($(@).attr('current')) > 0\r
editor.pettanr_current_panel_id = parseInt($(@).attr('panel_id'))\r
$(trace + 'tab_panel').css('display', 'none')\r
$(trace + 'zsort').css('display', 'none')\r
$(trace + 'tsort').css('display', 'none')\r
- switch $(@).attr('element_type')\r
- when 'panel_picture'\r
- trace = trace + 'div'\r
- $(trace).css('display', 'none')\r
- \r
+ display_element($(@), false)\r
\r
$('#pettanr-panel-submit').focusin ->\r
editor.refresh_attribute($('#pettanr-panel-json'))\r
\r
$('.edit_panel' ).map ->\r
if $(@).attr('jqform')\r
+ $(@).submit ->\r
+ if validate_forms()\r
+ true\r
+ else\r
+ false\r
else\r
$(@).submit ->\r
false\r
$('.new-element').map ->\r
$(@).click -> \r
false\r
- \r
+ j = JSON.stringify(window.configurations)\r
+ $('#pettanr-configurations').val(j)\r
+\r