<?xml version="1.0" encoding="UTF-8"?> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xsd="http://www.w3.org/2001/XMLschema" xmlns:fs="http://www.curs.ru/ns/FormServer" xmlns:xf="http://www.w3.org/2002/xforms"> <head> <xf:model id="xformId_mainModel"> <xf:instance id="xformId_mainInstance"> <schema xmlns=""> <data /> </schema> </xf:instance> <xf:instance id="xformId_answerInstance"> <schema xmlns=""> <answer> <id>new</id> <html /> <destructor /> <is_true /> <order /> </answer> </schema> </xf:instance> <xf:bind> <xf:bind nodeset="instance('xformId_mainInstance')/data/answer/id" required="true()"></xf:bind> <xf:bind nodeset="instance('xformId_mainInstance')/data/answer/html" required="true()"></xf:bind> <!--<xf:bind nodeset="instance('xformId_mainInstance')/data/answer/destructor" required="true()"></xf:bind> --> <!-- <xf:bind nodeset="instance('xformId_mainInstance')/data/answer/answer_text" required="instance('xformId_mainInstance')/data/question_type = '4')"></xf:bind> --> <xf:bind nodeset="instance('xformId_mainInstance')/data/answer/is_true" type="boolean" constraint="(count(instance('xformId_mainInstance')/data/answer[is_true = 'true']) = 1 and instance('xformId_mainInstance')/data/question_type = '1') or (count(instance('xformId_mainInstance')/data/answer[is_true = 'true']) > 1 and instance('xformId_mainInstance')/data/question_type = '2') or (instance('xformId_mainInstance')/data/question_type != '1' and instance('xformId_mainInstance')/data/question_type != '2')"></xf:bind> <xf:bind nodeset="instance('xformId_mainInstance')/data/answer/order" calculate="count(../preceding-sibling::answer)+1" readonly="true()"></xf:bind> </xf:bind> </xf:model> </head> <body> <!-- <xf:output value="serialize(instance('xformId_mainInstance'))"/> --> <xf:group ref="instance('xformId_mainInstance')/data[question_type = '1' or question_type = '2']"> <xf:repeat class="break" id="xformId_choice" nodeset="./answer"> <table> <tr> <td> <div class="break baseInput200" style="width: 100px;"> <xf:input ref="./order"> <xf:label>№:</xf:label> </xf:input> </div> </td> <td> <div class="baseInput400"> <xf:input ref="./html" id="html_editor" class="html_editor"> <xf:label>Ответ:</xf:label> </xf:input> </div> </td> <td> <xf:trigger class="button30" style="margin-top: 15px"> <xf:label>...</xf:label> <xf:action ev:event="DOMActivate"> <xf:load resource="javascript: gwtCreatePlugin({ id:'xformId', /*parentId:'pluginWraper',*/ plugin:'htmlEditorTinymce', generalFilters: ['XPath(instance(quot(xformId_mainInstance))/data/answer[index(quot(xformId_choice))]/html)'], proc:'author.xform.webQuestionAddEditCard.htmlEdit.celesta', params:{ tinymce: { plugins: ['code', 'image', 'table', 'link', 'fullscreen', 'media', 'paste', 'textcolor', 'wordcount', 'visualblocks', 'preview', 'colorpicker'], width: '1000', height: '480' } }, options: { dataWidth: '1000px', dataHeight: '600px', windowCaption: 'Редактирование HTML', onSelectionComplete: function(ok, plugin) { if (ok) { var elem = document.getElementById('xformId_choice').getElementsByClassName('xforms-repeat-item-selected')[0].getElementsByClassName('baseInput400')[0].getElementsByTagName('input')[0]; elem.value = plugin.getTinymceEditor().getContent(); elem.focus(); } } } });" ></xf:load> </xf:action> </xf:trigger> </td> <td> <div class="boolInput200"> <xf:input ref="./is_true"> <xf:label>Правильный:</xf:label> </xf:input> </div> </td> <td> <div class="button30"> <xf:trigger> <xf:label>—</xf:label> <xf:action ev:event="DOMActivate"> <xf:action> <xf:delete nodeset="instance('xformId_mainInstance')/data/answer[index('xformId_choice')]"></xf:delete> </xf:action> </xf:action> </xf:trigger> </div> </td> </tr> </table> </xf:repeat> <div class="break button200"> <xf:trigger> <xf:label>Добавить вариант ответа</xf:label> <xf:action ev:event="DOMActivate"> <xf:insert nodeset="./answer" origin="instance('xformId_answerInstance')/answer" at="last()" position="after"></xf:insert> <!--filling @id and @name --> <!-- <xf:setvalue ref="./group[last()]/@id" value="GenerateGUID()"></xf:setvalue> <xf:setvalue ref="./group[last()]/@sort" value="../@id"></xf:setvalue> --> </xf:action> </xf:trigger> </div> </xf:group> <!-- --> <xf:group ref="instance('xformId_mainInstance')/data[question_type = '3']"> <xf:repeat class="break" id="xformId_text" nodeset="./answer"> <table> <tr> <td> <div class="break baseInput200" style="width: 100px;"> <xf:input ref="./order"> <xf:label>№:</xf:label> </xf:input> </div> </td> <td> <div class="baseInput400"> <xf:input ref="./html"> <xf:label>Ответ:</xf:label> </xf:input> </div> </td> <td> <div class="button30"> <xf:trigger> <xf:label>—</xf:label> <xf:action ev:event="DOMActivate"> <xf:action> <xf:delete nodeset="instance('xformId_mainInstance')/data/answer[index('xformId_text')]"></xf:delete> </xf:action> </xf:action> </xf:trigger> </div> </td> </tr> </table> </xf:repeat> <div class="break button200"> <xf:trigger> <xf:label>Добавить вариант ответа</xf:label> <xf:action ev:event="DOMActivate"> <xf:insert nodeset="./answer" origin="instance('xformId_answerInstance')/answer" at="last()" position="after"></xf:insert> </xf:action> </xf:trigger> </div> </xf:group> <xf:group ref="instance('xformId_mainInstance')/data[question_type = '4']"> <xf:repeat class="break" id="xformId_corr" nodeset="./answer"> <table> <tr> <td> <div class="break baseInput200" style="width: 100px;"> <xf:input ref="./order"> <xf:label>№:</xf:label> </xf:input> </div> </td> <td> <div class="baseInput200"> <xf:input ref="./html" class="htmlText"> <xf:label>Ответ:</xf:label> </xf:input> </div> </td> <td> <xf:trigger class="button30" style="margin-top: 15px"> <xf:label>...</xf:label> <xf:action ev:event="DOMActivate"> <xf:load resource="javascript: gwtCreatePlugin({ id:'xformId', /*parentId:'pluginWraper',*/ plugin:'htmlEditorTinymce', generalFilters: ['XPath(instance(quot(xformId_mainInstance))/data/answer[index(quot(xformId_corr))]/html)'], proc:'author.xform.webQuestionAddEditCard.htmlEdit.celesta', params:{ tinymce: { plugins: ['code', 'image', 'table', 'link', 'fullscreen', 'media', 'paste', 'textcolor', 'wordcount', 'visualblocks', 'preview', 'colorpicker'], width: '1000', height: '480' } }, options: { dataWidth: '1000px', dataHeight: '600px', windowCaption: 'Редактирование HTML', onSelectionComplete: function(ok, plugin) { if (ok) { var elem = document.getElementById('xformId_corr').getElementsByClassName('xforms-repeat-item-selected')[0].getElementsByClassName('htmlText')[0].getElementsByTagName('input')[0]; elem.value = plugin.getTinymceEditor().getContent(); elem.focus(); } } } });" ></xf:load> </xf:action> </xf:trigger> </td> <td> <div class="baseInput200"> <xf:input ref="./destructor" class="answerText"> <xf:label>Соответствие:</xf:label> </xf:input> </div> </td> <td> <xf:trigger class="button30" style="margin-top: 15px"> <xf:label>...</xf:label> <xf:action ev:event="DOMActivate"> <xf:load resource="javascript: gwtCreatePlugin({ id:'xformId', /*parentId:'pluginWraper',*/ plugin:'htmlEditorTinymce', generalFilters: ['XPath(instance(quot(xformId_mainInstance))/data/answer[index(quot(xformId_corr))]/destructor)'], proc:'author.xform.webQuestionAddEditCard.htmlEdit.celesta', params:{ tinymce: { plugins: ['code', 'image', 'table', 'link', 'fullscreen', 'media', 'paste', 'textcolor', 'wordcount', 'visualblocks', 'preview', 'colorpicker'], width: '1000', height: '480' } }, options: { dataWidth: '1000px', dataHeight: '600px', windowCaption: 'Редактирование HTML', onSelectionComplete: function(ok, plugin) { if (ok) { var elem = document.getElementById('xformId_corr').getElementsByClassName('xforms-repeat-item-selected')[0].getElementsByClassName('answerText')[0].getElementsByTagName('input')[0]; elem.value = plugin.getTinymceEditor().getContent(); elem.focus(); } } } });" ></xf:load> </xf:action> </xf:trigger> </td> <td> <div class="button30"> <xf:trigger> <xf:label>—</xf:label> <xf:action ev:event="DOMActivate"> <xf:action> <xf:delete nodeset="instance('xformId_mainInstance')/data/answer[index('xformId_corr')]"></xf:delete> </xf:action> </xf:action> </xf:trigger> </div> </td> </tr> </table> </xf:repeat> <div class="break button200"> <xf:trigger> <xf:label>Добавить вариант ответа</xf:label> <xf:action ev:event="DOMActivate"> <xf:insert nodeset="./answer" origin="instance('xformId_answerInstance')/answer" at="last()" position="after"></xf:insert> </xf:action> </xf:trigger> </div> </xf:group> <xf:group ref="instance('xformId_mainInstance')/data[question_type = '5']"> <xf:repeat class="break" id="xformId_sort" nodeset="./answer"> <table> <tr> <td> <div class="break baseInput200" style="width: 100px;"> <xf:input ref="./order"> <xf:label>№:</xf:label> </xf:input> </div> </td> <td> <div class="baseInput400"> <xf:input ref="./html" > <xf:label>Ответ:</xf:label> </xf:input> </div> </td> <td> <xf:trigger class="button30" style="margin-top: 15px"> <xf:label>...</xf:label> <xf:action ev:event="DOMActivate"> <xf:load resource="javascript: gwtCreatePlugin({ id:'xformId', /*parentId:'pluginWraper',*/ plugin:'htmlEditorTinymce', generalFilters: ['XPath(instance(quot(xformId_mainInstance))/data/answer[index(quot(xformId_sort))]/html)'], proc:'author.xform.webQuestionAddEditCard.htmlEdit.celesta', params:{ tinymce: { plugins: ['code', 'image', 'table', 'link', 'fullscreen', 'media', 'paste', 'textcolor', 'wordcount', 'visualblocks', 'preview', 'colorpicker'], width: '1000', height: '480' } }, options: { dataWidth: '1000px', dataHeight: '600px', windowCaption: 'Редактирование HTML', onSelectionComplete: function(ok, plugin) { if (ok) { var elem = document.getElementById('xformId_sort').getElementsByClassName('xforms-repeat-item-selected')[0].getElementsByClassName('baseInput400')[0].getElementsByTagName('input')[0]; elem.value = plugin.getTinymceEditor().getContent(); elem.focus(); } } } });" ></xf:load> </xf:action> </xf:trigger> </td> <td> <div class="button30"> <xf:trigger> <xf:label>—</xf:label> <xf:action ev:event="DOMActivate"> <xf:action> <xf:delete nodeset="instance('xformId_mainInstance')/data/answer[index('xformId_sort')]"></xf:delete> </xf:action> </xf:action> </xf:trigger> </div> </td> </tr> </table> </xf:repeat> <div class="break button200"> <xf:trigger> <xf:label>Добавить вариант ответа</xf:label> <xf:action ev:event="DOMActivate"> <xf:insert nodeset="./answer" origin="instance('xformId_answerInstance')/answer" at="last()" position="after"></xf:insert> <!--filling @id and @name --> <!-- <xf:setvalue ref="./group[last()]/@id" value="GenerateGUID()"></xf:setvalue> <xf:setvalue ref="./group[last()]/@sort" value="../@id"></xf:setvalue> --> </xf:action> </xf:trigger> </div> </xf:group> <xf:group ref="instance('xformId_mainInstance')/data[question_type = '6']"> <xf:repeat class="break" id="xformId_classif" nodeset="./answer"> <table> <tr> <td> <div class="break baseInput200" style="width: 100px;"> <xf:input ref="./order"> <xf:label>№:</xf:label> </xf:input> </div> </td> <td> <div class="baseInput200"> <xf:input ref="./html" class="htmlText"> <xf:label>Ответ:</xf:label> </xf:input> </div> </td> <td> <xf:trigger class="button30" style="margin-top: 15px"> <xf:label>...</xf:label> <xf:action ev:event="DOMActivate"> <xf:load resource="javascript: gwtCreatePlugin({ id:'xformId', /*parentId:'pluginWraper',*/ plugin:'htmlEditorTinymce', generalFilters: ['XPath(instance(quot(xformId_mainInstance))/data/answer[index(quot(xformId_corr))]/html)'], proc:'author.xform.webQuestionAddEditCard.htmlEdit.celesta', params:{ tinymce: { plugins: ['code', 'image', 'table', 'link', 'fullscreen', 'media', 'paste', 'textcolor', 'wordcount', 'visualblocks', 'preview', 'colorpicker'], width: '1000', height: '480' } }, options: { dataWidth: '1000px', dataHeight: '600px', windowCaption: 'Редактирование HTML', onSelectionComplete: function(ok, plugin) { if (ok) { var elem = document.getElementById('xformId_corr').getElementsByClassName('xforms-repeat-item-selected')[0].getElementsByClassName('htmlText')[0].getElementsByTagName('input')[0]; elem.value = plugin.getTinymceEditor().getContent(); elem.focus(); } } } });" ></xf:load> </xf:action> </xf:trigger> </td> <td> <div class="baseInput200"> <xf:input ref="./destructor" class="answerText"> <xf:label>Соответствие:</xf:label> </xf:input> </div> </td> <td> <xf:trigger class="button30" style="margin-top: 15px"> <xf:label>...</xf:label> <xf:action ev:event="DOMActivate"> <xf:load resource="javascript: gwtCreatePlugin({ id:'xformId', /*parentId:'pluginWraper',*/ plugin:'htmlEditorTinymce', generalFilters: ['XPath(instance(quot(xformId_mainInstance))/data/answer[index(quot(xformId_classif))]/destructor)'], proc:'author.xform.webQuestionAddEditCard.htmlEdit.celesta', params:{ tinymce: { plugins: ['code', 'image', 'table', 'link', 'fullscreen', 'media', 'paste', 'textcolor', 'wordcount', 'visualblocks', 'preview', 'colorpicker'], width: '1000', height: '480' } }, options: { dataWidth: '1000px', dataHeight: '600px', windowCaption: 'Редактирование HTML', onSelectionComplete: function(ok, plugin) { if (ok) { var elem = document.getElementById('xformId_classif').getElementsByClassName('xforms-repeat-item-selected')[0].getElementsByClassName('answerText')[0].getElementsByTagName('input')[0]; elem.value = plugin.getTinymceEditor().getContent(); elem.focus(); } } } });" ></xf:load> </xf:action> </xf:trigger> </td> <td> <div class="button30"> <xf:trigger> <xf:label>—</xf:label> <xf:action ev:event="DOMActivate"> <xf:action> <xf:delete nodeset="instance('xformId_mainInstance')/data/answer[index('xformId_classif')]"></xf:delete> </xf:action> </xf:action> </xf:trigger> </div> </td> </tr> </table> </xf:repeat> <div class="break button200"> <xf:trigger> <xf:label>Добавить вариант ответа</xf:label> <xf:action ev:event="DOMActivate"> <xf:insert nodeset="./answer" origin="instance('xformId_answerInstance')/answer" at="last()" position="after"></xf:insert> </xf:action> </xf:trigger> </div> </xf:group> <div class="break button200"> <xf:trigger id="xformId_Tab10"> <xf:label>Сохранить и закрыть</xf:label> <xf:action ev:event="DOMActivate" if="(is-valid(instance('xformId_mainInstance'))=false())"> <xf:message>Заполнено с ошибкой!</xf:message> </xf:action> <xf:action ev:event="DOMActivate" if="(is-valid(instance('xformId_mainInstance'))=true())"> <xf:load resource="javascript:gwtXFormSave('xformId','1', Writer.toString(getSubformInstanceDocument('xformId_mainModel', 'xformId_mainInstance')))" /> </xf:action> </xf:trigger> </div> <div class="button100"> <xf:trigger id="xformId_Tab20"> <xf:label>Закрыть</xf:label> <xf:action ev:event="DOMActivate"> <xf:load resource="javascript:gwtXFormUpdate('xformId','1', null)" /> </xf:action> </xf:trigger> </div> </body> </html>