diff --git a/0001-adds-string-interpolation-to-elements.patch b/0001-adds-string-interpolation-to-elements.patch deleted file mode 100644 index 972e8f0..0000000 --- a/0001-adds-string-interpolation-to-elements.patch +++ /dev/null @@ -1,258 +0,0 @@ -From 87d4b31a3edad04cbdde14570e76276d34381003 Mon Sep 17 00:00:00 2001 -From: jeff wilde -Date: Tue, 22 Mar 2016 15:55:00 -0600 -Subject: [PATCH] adds string interpolation to elements - ---- - demo/demo.html | 2 +- - demo/demo.js | 5 +++ - demo/form-data.json | 64 +++++++++++++++++++++++++++++++++- - demo/template-data.json | 9 +++++ - dist/form-viewer.min.js | 4 +-- - src/viewer/form-viewer.directive.js | 21 ++++++++++- - src/viewer/mw-form-question.html | 6 ++-- - src/viewer/mw-form-viewer-content.html | 2 +- - 8 files changed, 104 insertions(+), 9 deletions(-) - create mode 100644 demo/template-data.json - -diff --git a/demo/demo.html b/demo/demo.html -index cb1c309..7cc1439 100644 ---- a/demo/demo.html -+++ b/demo/demo.html -@@ -80,7 +80,7 @@ - - - -- -+ - -
- -diff --git a/demo/demo.js b/demo/demo.js -index 0deecdc..74affbb 100644 ---- a/demo/demo.js -+++ b/demo/demo.js -@@ -34,6 +34,11 @@ angular.module('app', ['mwFormBuilder', 'mwFormViewer', 'mwFormUtils', 'pascalpr - .then(function(res){ - ctrl.responseData = res.data; - }); -+ -+ $http.get('template-data.json') -+ .then(function(res){ -+ ctrl.templateData = res.data; -+ }); - - ctrl.showResponseRata=false; - ctrl.saveResponse = function(){ -diff --git a/demo/form-data.json b/demo/form-data.json -index 1f35603..9cfa125 100644 ---- a/demo/form-data.json -+++ b/demo/form-data.json -@@ -100,6 +100,68 @@ - "pageFlowModifier": false, - "otherAnswer": true - } -+ }, -+ { -+ "id": "24490cf9c495cb33d4c8d2a0f813b817", -+ "orderNo": 5, -+ "type": "question", -+ "question": { -+ "id": "edb85ee7c9da14ffeb15bb9f8cfaffd3", -+ "text": "Is {{price}} a fair price?", -+ "type": "radio", -+ "required": true, -+ "offeredAnswers": [ -+ { -+ "id": "68a49a4f13203098f0fc6a744c1fe704", -+ "orderNo": 1, -+ "value": "yes", -+ "pageFlow": { -+ "nextPage": true, -+ "label": "mwForm.pageFlow.goToNextPage" -+ } -+ }, -+ { -+ "id": "53e006974790df5099ab26e9f2ce9c06", -+ "orderNo": 2, -+ "value": "{{noAnswer}}", -+ "pageFlow": { -+ "nextPage": true, -+ "label": "mwForm.pageFlow.goToNextPage" -+ } -+ } -+ ] -+ } -+ }, -+ { -+ "id": "ee297f58ceec1470c9db35559409755c", -+ "orderNo": 6, -+ "type": "question", -+ "question": { -+ "id": "a7106ec0fba810a84899b8579f5fd924", -+ "text": "Is {{person.name}} age {{person.age}}?", -+ "type": "radio", -+ "required": true, -+ "offeredAnswers": [ -+ { -+ "id": "ae38733fc632753099f430b1c1ffcefc", -+ "orderNo": 1, -+ "value": "yes", -+ "pageFlow": { -+ "nextPage": true, -+ "label": "mwForm.pageFlow.goToNextPage" -+ } -+ }, -+ { -+ "id": "61a226f242d86522a49b786c654c4165", -+ "orderNo": 2, -+ "value": "no", -+ "pageFlow": { -+ "nextPage": true, -+ "label": "mwForm.pageFlow.goToNextPage" -+ } -+ } -+ ] -+ } - } - ], - "namedPage": false -@@ -231,7 +293,7 @@ - "type": "paragraph", - "paragraph": { - "id": "12448073a8702376af0b427b63022926", -- "html": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam quis nunc quis nisi lacinia commodo quis in urna. Maecenas dictum urna eget fringilla vehicula. Morbi congue id dolor vel volutpat. Aenean suscipit lectus velit, eget eleifend massa pretium quis. Cras quis pharetra nulla. Proin porttitor fermentum est, eu aliquam velit porttitor quis. Sed non bibendum odio, a pellentesque neque. Donec eu lectus vitae nisl ornare aliquet. Donec ornare felis non elit malesuada tincidunt. Praesent ipsum augue, venenatis in auctor vel, aliquet et augue. Ut efficitur elit eu elit fringilla, imperdiet suscipit libero consequat. Ut in metus libero. Nullam vestibulum, augue nec varius elementum, erat orci iaculis neque, quis varius ante leo eu lectus. Vestibulum eget ante enim. Nulla lobortis, felis sed mattis posuere, urna leo pharetra mi, ut elementum augue erat sed odio. In mattis, orci nec maximus fermentum, tellus lacus porta purus, sed scelerisque massa justo id nunc." -+ "html": "Lorem {{templateData}} ipsum dolor sit amet, consectetur adipiscing elit. Nullam quis nunc quis nisi lacinia commodo quis in urna. Maecenas dictum urna eget fringilla vehicula. Morbi congue id dolor vel volutpat. Aenean suscipit lectus velit, eget eleifend massa pretium quis. Cras quis pharetra nulla. Proin porttitor fermentum est, eu aliquam velit porttitor quis. Sed non bibendum odio, a pellentesque neque. Donec eu lectus vitae nisl ornare aliquet. Donec ornare felis non elit malesuada tincidunt. Praesent ipsum augue, venenatis in auctor vel, aliquet et augue. Ut efficitur elit eu elit fringilla, imperdiet suscipit libero consequat. Ut in metus libero. Nullam vestibulum, augue nec varius elementum, erat orci iaculis neque, quis varius ante leo eu lectus. Vestibulum eget ante enim. Nulla lobortis, felis sed mattis posuere, urna leo pharetra mi, ut elementum augue erat sed odio. In mattis, orci nec maximus fermentum, tellus lacus porta purus, sed scelerisque massa justo id nunc." - } - }, - { -diff --git a/demo/template-data.json b/demo/template-data.json -new file mode 100644 -index 0000000..daa9275 ---- /dev/null -+++ b/demo/template-data.json -@@ -0,0 +1,9 @@ -+{ -+ "price": 1.13, -+ "noAnswer" : "no", -+ "person": { -+ "name": "Bob", -+ "age": 33 -+ }, -+ "templateData": "from template" -+} -\ No newline at end of file -diff --git a/dist/form-viewer.min.js b/dist/form-viewer.min.js -index 83f0667..ee5e3d9 100644 ---- a/dist/form-viewer.min.js -+++ b/dist/form-viewer.min.js -@@ -1,6 +1,6 @@ - angular.module("mwFormViewer",["ngSanitize","ui.bootstrap","ng-sortable","pascalprecht.translate"]); --angular.module("mwFormViewer").run(["$templateCache",function(e){e.put("mw-form-confirmation-page.html","
{{ctrl.confirmationMessage}} Twoja odpowiedź została zapisana
Bład. Twoja odpowiedź nie została zapisana.
Zapisywanie odpowiedzi w trakcie.
"),e.put("mw-form-question.html",'
{{ctrl.question.text}} *
{{::row.label}}
{{::ctrl.question.unit}}
{{ctrl.question.unit}} z wymaganych {{ctrl.question.quantity}} {{ctrl.question.unit}}
{{ctrl.questionResponse.answer}}
'),e.put("mw-form-viewer-content.html",'

{{ctrl.formData.name}}

{{ctrl.formData.description}}

{{ctrl.currentPage.name}}

{{pageElement.image.caption}}

'),e.put("mw-form-viewer.html","
"),e.put("mw-priority-list.html",'
SortedAvailable
{{$index+1}}. {{::ctrl.idToItem[item.id].value}}
{{::ctrl.idToItem[item.id].value}}
')}]); -+angular.module("mwFormViewer").run(["$templateCache",function(e){e.put("mw-form-confirmation-page.html","
{{ctrl.confirmationMessage}} Twoja odpowiedź została zapisana
Bład. Twoja odpowiedź nie została zapisana.
Zapisywanie odpowiedzi w trakcie.
"),e.put("mw-form-question.html",'
{{ctrl.question.displayText}} *
{{::row.label}}
{{::ctrl.question.unit}}
{{ctrl.question.unit}} z wymaganych {{ctrl.question.quantity}} {{ctrl.question.unit}}
{{ctrl.questionResponse.answer}}
'),e.put("mw-form-viewer-content.html",'

{{ctrl.formData.name}}

{{ctrl.formData.description}}

{{ctrl.currentPage.name}}

{{pageElement.image.caption}}

'),e.put("mw-form-viewer.html","
"),e.put("mw-priority-list.html",'
SortedAvailable
{{$index+1}}. {{::ctrl.idToItem[item.id].value}}
{{::ctrl.idToItem[item.id].value}}
')}]); - angular.module("mwFormViewer").directive("mwPriorityList",function(){return{replace:!0,restrict:"AE",require:"^mwFormQuestion",scope:{question:"=",questionResponse:"=",readOnly:"=?",options:"=?"},templateUrl:"mw-priority-list.html",controllerAs:"ctrl",bindToController:!0,controller:function(){function i(i){if(i)for(var e=0;e0&&n.setCurrentPage(n.formData.pages[0])},n.resetPages=function(){n.prevPages=[],n.currentPage=null,n.nextPage=null,n.formSubmitted=!1,n.options.autoStart&&n.beginResponse()},n.resetPages(),n.goToPrevPage=function(){var e=n.prevPages.pop();n.setCurrentPage(e),n.updateNextPageBasedOnAllAnswers()},n.goToNextPage=function(){n.prevPages.push(n.currentPage),n.updateNextPageBasedOnAllAnswers(),n.setCurrentPage(n.nextPage)},n.updateNextPageBasedOnAllAnswers=function(){n.currentPage.elements.forEach(function(e){n.updateNextPageBasedOnPageElementAnswers(e)}),n.buttons.submitForm.visible=!n.nextPage,n.buttons.nextPage.visible=!!n.nextPage},n.updateNextPageBasedOnPageElementAnswers=function(e){var t=e.question;t&&t.pageFlowModifier&&t.offeredAnswers.forEach(function(e){e.pageFlow&&n.responseData[t.id].selectedAnswer==e.id&&(e.pageFlow.formSubmit?n.nextPage=null:e.pageFlow.page&&(n.nextPage=n.pageIdToPage[e.pageFlow.page.id]))})},n.onResponseChanged=function(e){n.setDefaultNextPage(),n.updateNextPageBasedOnAllAnswers()},n.api&&(n.api.reset=function(){for(var t in n.responseData)n.responseData.hasOwnProperty(t)&&delete n.responseData[t];n.buttons.submitForm.visible=!1,n.buttons.prevPage.visible=!1,n.buttons.nextPage.visible=!1,n.currentPage=null,e(n.resetPages,0)})}],link:function(e,t,n){var a=e.ctrl;a.formStatus&&(a.formStatus.form=a.form)}}}); -+angular.module("mwFormViewer").directive("mwFormViewer",function(){return{replace:!0,restrict:"AE",scope:{formData:"=",responseData:"=",templateData:"=?",readOnly:"=?",options:"=?",formStatus:"=?",onSubmit:"&",api:"=?"},templateUrl:"mw-form-viewer.html",controllerAs:"ctrl",bindToController:!0,controller:["$timeout","$interpolate",function(e,t){function a(){n.formData.pages.sort(function(e,t){return e.number-t.number})}var n=this;n.defaultOptions={nestedForm:!1,autoStart:!1},n.options=angular.extend({},n.defaultOptions,n.options),n.submitStatus="NOT_SUBMITTED",n.formSubmitted=!1,a(),n.pageIdToPage={},n.formData.pages.forEach(function(e){n.pageIdToPage[e.id]=e}),n.showElement=function(e){return e.question?void 0===e.question.visibleIf?!0:e.question.visibleIf===!1?!0:n.responseData[e.question.visibleIfQuestion.id].selectedAnswer===e.question.visibleIfAnswer:!0},n.buttons={prevPage:{visible:!1,disabled:!1},nextPage:{visible:!1,disabled:!1},submitForm:{visible:!1,disabled:!1}},n.submitForm=function(){n.formSubmitted=!0,n.submitStatus="IN_PROGRESS",n.setCurrentPage(null);var e=n.onSubmit();e.then(function(){n.submitStatus="SUCCESS"})["catch"](function(){n.submitStatus="ERROR"})},n.setCurrentPage=function(e){return n.currentPage=e,e?(n.setDefaultNextPage(),void n.initResponsesForCurrentPage()):(n.buttons.submitForm.visible=!1,n.buttons.prevPage.visible=!1,void(n.buttons.nextPage.visible=!1))},n.setDefaultNextPage=function(){var e=n.formData.pages.indexOf(n.currentPage);if(n.currentPage.isFirst=0==e,n.currentPage.isLast=e==n.formData.pages.length-1,n.buttons.submitForm.visible=n.currentPage.isLast,n.buttons.prevPage.visible=!n.currentPage.isFirst,n.buttons.nextPage.visible=!n.currentPage.isLast,n.currentPage.isLast?n.nextPage=null:n.nextPage=n.formData.pages[e+1],n.currentPage.pageFlow){var t=!1;n.currentPage.pageFlow.formSubmit?(n.nextPage=null,t=!0):n.currentPage.pageFlow.page?(n.nextPage=n.pageIdToPage[n.currentPage.pageFlow.page.id],n.buttons.nextPage.visible=!0):n.currentPage.isLast&&(n.nextPage=null,t=!0),n.buttons.submitForm.visible=t,n.buttons.nextPage.visible=!t}},n.applyTemplateDataToElement=function(e){n.templateData&&(e.paragraph&&(e.paragraph.displayHtml=t(e.paragraph.html)(n.templateData)),e.question&&(e.question.displayText=t(e.question.text)(n.templateData),e.question.offeredAnswers&&e.question.offeredAnswers.forEach(function(e){e.displayValue=t(e.value)(n.templateData)})))},n.initResponsesForCurrentPage=function(){n.currentPage.elements.forEach(function(e){var t=e.question;t&&!n.responseData[t.id]&&(n.responseData[t.id]={}),n.applyTemplateDataToElement(e)})},n.beginResponse=function(){n.formData.pages.length>0&&n.setCurrentPage(n.formData.pages[0])},n.resetPages=function(){n.prevPages=[],n.currentPage=null,n.nextPage=null,n.formSubmitted=!1,n.options.autoStart&&n.beginResponse()},n.resetPages(),n.goToPrevPage=function(){var e=n.prevPages.pop();n.setCurrentPage(e),n.updateNextPageBasedOnAllAnswers()},n.goToNextPage=function(){n.prevPages.push(n.currentPage),n.updateNextPageBasedOnAllAnswers(),n.setCurrentPage(n.nextPage)},n.updateNextPageBasedOnAllAnswers=function(){n.currentPage.elements.forEach(function(e){n.updateNextPageBasedOnPageElementAnswers(e)}),n.buttons.submitForm.visible=!n.nextPage,n.buttons.nextPage.visible=!!n.nextPage},n.updateNextPageBasedOnPageElementAnswers=function(e){var t=e.question;t&&t.pageFlowModifier&&t.offeredAnswers.forEach(function(e){e.pageFlow&&n.responseData[t.id].selectedAnswer==e.id&&(e.pageFlow.formSubmit?n.nextPage=null:e.pageFlow.page&&(n.nextPage=n.pageIdToPage[e.pageFlow.page.id]))})},n.onResponseChanged=function(e){n.setDefaultNextPage(),n.updateNextPageBasedOnAllAnswers()},n.api&&(n.api.reset=function(){for(var t in n.responseData)n.responseData.hasOwnProperty(t)&&delete n.responseData[t];n.buttons.submitForm.visible=!1,n.buttons.prevPage.visible=!1,n.buttons.nextPage.visible=!1,n.currentPage=null,e(n.resetPages,0)})}],link:function(e,t,a){var n=e.ctrl;n.formStatus&&(n.formStatus.form=n.form)}}}); - angular.module("mwFormViewer").factory("FormQuestionId",function(){var e=0;return{next:function(){return++e}}}).directive("mwFormQuestion",function(){return{replace:!0,restrict:"AE",require:"^mwFormViewer",scope:{question:"=",questionResponse:"=",readOnly:"=?",options:"=?",onResponseChanged:"&?"},templateUrl:"mw-form-question.html",controllerAs:"ctrl",bindToController:!0,controller:["$timeout","FormQuestionId",function(e,s){var n=this;n.id=s.next(),"radio"==n.question.type?(n.questionResponse.selectedAnswer||(n.questionResponse.selectedAnswer=null),n.questionResponse.other&&(n.isOtherAnswer=!0)):"checkbox"==n.question.type?(n.questionResponse.selectedAnswers&&n.questionResponse.selectedAnswers.length?n.selectedAnswer=!0:n.questionResponse.selectedAnswers=[],n.questionResponse.other&&(n.isOtherAnswer=!0)):"grid"==n.question.type||"division"==n.question.type&&(n.computeDivisionSum=function(){n.divisionSum=0,n.question.divisionList.forEach(function(e){0==n.questionResponse[e.id]||n.questionResponse[e.id]?n.divisionSum+=n.questionResponse[e.id]:(n.questionResponse[e.id]=null,n.divisionSum+=0)})},n.computeDivisionSum()),n.isAnswerSelected=!1,n.selectedAnswerChanged=function(){delete n.questionResponse.other,n.isOtherAnswer=!1,n.answerChanged()},n.otherAnswerRadioChanged=function(){n.isOtherAnswer&&(n.questionResponse.selectedAnswer=null),n.answerChanged()},n.otherAnswerCheckboxChanged=function(){n.isOtherAnswer||delete n.questionResponse.other,n.selectedAnswer=n.questionResponse.selectedAnswers.length||n.isOtherAnswer?!0:null,n.answerChanged()},n.toggleSelectedAnswer=function(e){-1===n.questionResponse.selectedAnswers.indexOf(e.id)?n.questionResponse.selectedAnswers.push(e.id):n.questionResponse.selectedAnswers.splice(n.questionResponse.selectedAnswers.indexOf(e.id),1),n.selectedAnswer=n.questionResponse.selectedAnswers.length||n.isOtherAnswer?!0:null,n.answerChanged()},n.answerChanged=function(){n.onResponseChanged&&n.onResponseChanged()}}],link:function(e,s,n,o){e.ctrl}}}); - angular.module("mwFormViewer").directive("mwFormConfirmationPage",function(){return{replace:!0,restrict:"AE",require:"^mwFormViewer",scope:{submitStatus:"=",confirmationMessage:"=",readOnly:"=?"},templateUrl:"mw-form-confirmation-page.html",controllerAs:"ctrl",bindToController:!0,controller:function(){},link:function(r,e,o,t){r.ctrl}}}); -\ No newline at end of file -diff --git a/src/viewer/form-viewer.directive.js b/src/viewer/form-viewer.directive.js -index c703e72..22fad5e 100644 ---- a/src/viewer/form-viewer.directive.js -+++ b/src/viewer/form-viewer.directive.js -@@ -7,6 +7,7 @@ angular.module('mwFormViewer').directive('mwFormViewer', function () { - scope: { - formData: '=', - responseData: '=', -+ templateData: '=?', - readOnly: '=?', - options: '=?', - formStatus: '=?', //wrapper for internal angular form object -@@ -17,7 +18,7 @@ angular.module('mwFormViewer').directive('mwFormViewer', function () { - templateUrl: 'mw-form-viewer.html', - controllerAs: 'ctrl', - bindToController: true, -- controller: function($timeout){ -+ controller: function($timeout, $interpolate){ - var ctrl = this; - - ctrl.defaultOptions = { -@@ -135,6 +136,23 @@ angular.module('mwFormViewer').directive('mwFormViewer', function () { - ctrl.buttons.nextPage.visible=!formSubmit; - } - }; -+ -+ ctrl.applyTemplateDataToElement = function(element){ -+ if (ctrl.templateData){ -+ if (element.paragraph){ -+ element.paragraph.displayHtml = $interpolate(element.paragraph.html)(ctrl.templateData); -+ } -+ if (element.question){ -+ element.question.displayText = $interpolate(element.question.text)(ctrl.templateData); -+ -+ if (element.question.offeredAnswers){ -+ element.question.offeredAnswers.forEach(function (offeredAnswer){ -+ offeredAnswer.displayValue = $interpolate(offeredAnswer.value)(ctrl.templateData); -+ }); -+ } -+ } -+ } -+ }; - - ctrl.initResponsesForCurrentPage = function(){ - ctrl.currentPage.elements.forEach(function(element){ -@@ -142,6 +160,7 @@ angular.module('mwFormViewer').directive('mwFormViewer', function () { - if(question && !ctrl.responseData[question.id]){ - ctrl.responseData[question.id]={}; - } -+ ctrl.applyTemplateDataToElement(element); - }); - }; - -diff --git a/src/viewer/mw-form-question.html b/src/viewer/mw-form-question.html -index cabc029..9be85fd 100644 ---- a/src/viewer/mw-form-question.html -+++ b/src/viewer/mw-form-question.html -@@ -1,7 +1,7 @@ -
- -
-- {{ctrl.question.text}} * -+ {{ctrl.question.displayText}} * -
- -
-@@ -15,7 +15,7 @@ -
- -
-
-@@ -33,7 +33,7 @@ -
- -
-
-diff --git a/src/viewer/mw-form-viewer-content.html b/src/viewer/mw-form-viewer-content.html -index 4d9886a..c1c37ec 100644 ---- a/src/viewer/mw-form-viewer-content.html -+++ b/src/viewer/mw-form-viewer-content.html -@@ -21,7 +21,7 @@ - -
-
--

-+

-
- -
--- -2.6.4 (Apple Git-63) - diff --git a/bower.json b/bower.json index 58b0c97..11c6b54 100644 --- a/bower.json +++ b/bower.json @@ -1,11 +1,11 @@ { - "name": "angular-surveys", - "homepage": "https://github.com/mwasiluk/angular-surveys", + "name": "angular-surveys-gofreddo", + "homepage": "https://github.com/gofreddo/angular-surveys", "authors": [ - "Michał Wasiluk" + "Michał Wasiluk", + "Jeff Wilde" ], "description": "Angular survey/form builder and viewer inspired by Google Forms", - "main": "", "moduleType": [], "keywords": [ "angular", @@ -38,5 +38,6 @@ "angular-translate-loader-partial": "2.x", "angular-translate-loader-static-files": "2.x", "angular-mocks": "~1.4.8" - } + }, + "version": "0.4.1" } diff --git a/dist/form-builder.min.js b/dist/form-builder.min.js index f989058..c0fd19d 100644 --- a/dist/form-builder.min.js +++ b/dist/form-builder.min.js @@ -1,12 +1,13 @@ angular.module("mwFormBuilder",["ngSanitize","ui.bootstrap","ng-sortable","pascalprecht.translate"]); angular.module("mwFormBuilder").service("mwFormUuid",function(){function r(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}this.get=function(){return r()+r()+r()+r()+r()+r()+r()+r()}}).factory("mwFormClone",["mwFormUuid",function(r){var e={},n=[];return e.resetIds=function(t,a){if(a&&(n=[]),!(n.indexOf(t)>=0)&&(n.push(t),!t!==Object(t))){if(Array.isArray(t))return void t.forEach(e.resetIds);for(var o in t)t.hasOwnProperty(o)&&e.resetIds(t[o]);if(t.hasOwnProperty("id")){var i=r.get();t.id;t.id=i}}},e.cloneElement=function(r){var n={};return angular.copy(r,n),e.resetIds(n,!0),n},e.clonePage=function(n){var t={};angular.copy(n,t),t.id=r.get();var a=[];if(Array.isArray(n.elements))for(var o=0;o
'),e.put("mw-form-confirmation-page-builder.html",'
Strona potwierdzenia
'),e.put("mw-form-image-builder.html",'


{{ctrl.image.caption}}
'),e.put("mw-form-page-builder.html",'
Strona 1 z 3
Brak elementów
'),e.put("mw-form-page-element-builder.html",'
'),e.put("mw-form-paragraph-builder.html",'

'),e.put("mw-form-question-builder.html",'
Min: Max:

Range from to



{{ctrl.question.text}} *
{{row.label}}
SortedAvailable
{{::item.value}}
{{ctrl.question.unit}}
{{ctrl.question.unit}} z wymaganych {{ctrl.question.quantity}} {{ctrl.question.unit}}
'),e.put("mw-label.html",""),e.put("mw-question-division-builder.html",'
'),e.put("mw-question-grid-builder.html",'
'),e.put("mw-question-offered-answer-list-builder.html",'
lub
'),e.put("mw-question-priority-list-builder.html",'
')}]); +angular.module("mwFormBuilder").run(["$templateCache",function(e){e.put("mw-form-builder.html",'
'),e.put("mw-form-confirmation-page-builder.html",'
Strona potwierdzenia
'),e.put("mw-form-image-builder.html",'


{{ctrl.image.caption}}
'),e.put("mw-form-page-builder.html",'
Strona 1 z 3
Brak elementów
'),e.put("mw-form-page-element-builder.html",'
'),e.put("mw-form-paragraph-builder.html",'

'),e.put("mw-form-question-builder.html",'
Min: Max:

Range from to



{{ctrl.question.text}} *
{{row.label}}
SortedAvailable
{{::item.value}}
{{ctrl.question.unit}}
{{ctrl.question.unit}} z wymaganych {{ctrl.question.quantity}} {{ctrl.question.unit}}
'),e.put("mw-label.html",""),e.put("mw-question-division-builder.html",'
'),e.put("mw-question-grid-builder.html",'
'),e.put("mw-question-offered-answer-list-builder.html",'
lub
'),e.put("mw-question-priority-list-builder.html",'
'); +}]); angular.module("mwFormBuilder").directive("mwQuestionPriorityListBuilder",function(){return{replace:!0,restrict:"AE",require:"^mwFormQuestionBuilder",scope:{question:"=",readOnly:"=?",options:"=?"},templateUrl:"mw-question-priority-list-builder.html",controllerAs:"ctrl",bindToController:!0,controller:["mwFormUuid",function(i){function e(i){if(i)for(var e=0;e=0&&a(i.formPage.elements,n,o),r()},i.isElementTypeEnabled=function(e){return-1!==t.elementTypes.indexOf(e)},i.addQuestion=function(){i.addElement("question")},i.addImage=function(){i.addElement("image")},i.addParagraph=function(){i.addElement("paragraph")},i.isElementActive=function(e){return i.activeElement==e},i.selectElement=function(e){i.activeElement=e},i.onElementReady=function(){e(function(){i.activeElement=null})},i.hoverIn=function(){i.hoverEdit=!0},i.hoverOut=function(){i.hoverEdit=!1},i.updateElementsOrderNo=r}],link:function(e,n,o,t){var r=e.ctrl;r.possiblePageFlow=t.possiblePageFlow,r.moveDown=function(){t.moveDownPage(r.formPage)},r.moveUp=function(){t.moveUpPage(r.formPage)},r.removePage=function(){t.removePage(r.formPage)},r.addPage=function(){t.addPageAfter(r.formPage)},e.$watch("ctrl.formPage.elements.length",function(e,n){e!=n&&r.updateElementsOrderNo()}),r.options=t.options,r.onImageSelection=t.onImageSelection}}}); diff --git a/dist/form-viewer.min.js b/dist/form-viewer.min.js index 6f245df..e1ea1b8 100644 --- a/dist/form-viewer.min.js +++ b/dist/form-viewer.min.js @@ -1,6 +1,6 @@ angular.module("mwFormViewer",["ngSanitize","ui.bootstrap","ng-sortable","pascalprecht.translate"]); -angular.module("mwFormViewer").run(["$templateCache",function(e){e.put("mw-form-confirmation-page.html","
{{::ctrl.print(ctrl.confirmationMessage)}} Twoja odpowiedź została zapisana
Bład. Twoja odpowiedź nie została zapisana.
Zapisywanie odpowiedzi w trakcie.
"),e.put("mw-form-question.html",'
{{::ctrl.print(ctrl.question.text)}} *
{{::ctrl.print(row.label)}}
{{::ctrl.print(ctrl.question.unit)}}
{{ctrl.question.unit}} z wymaganych {{ctrl.question.quantity}} {{ctrl.question.unit}}
{{ctrl.questionResponse.answer}}
'),e.put("mw-form-viewer-content.html",'

{{ctrl.formData.name}}

{{ctrl.formData.description}}

{{ctrl.currentPage.name}}

{{pageElement.image.caption}}

'),e.put("mw-form-viewer.html","
"),e.put("mw-priority-list.html",'
SortedAvailable
{{$index+1}}. {{::ctrl.print(ctrl.idToItem[item.id].value)}}
{{::ctrl.print(ctrl.idToItem[item.id].value)}}
')}]); +angular.module("mwFormViewer").run(["$templateCache",function(e){e.put("mw-form-confirmation-page.html","
{{::ctrl.print(ctrl.confirmationMessage)}} Twoja odpowiedź została zapisana
Bład. Twoja odpowiedź nie została zapisana.
Zapisywanie odpowiedzi w trakcie.
"),e.put("mw-form-question.html",'
{{::ctrl.print(ctrl.question.text)}} *
{{::ctrl.print(row.label)}}
{{::ctrl.print(ctrl.question.unit)}}
{{ctrl.question.unit}} z wymaganych {{ctrl.question.quantity}} {{ctrl.question.unit}}
{{ctrl.questionResponse.answer}}
'),e.put("mw-form-viewer-content.html",'

{{ctrl.formData.name}}

{{ctrl.formData.description}}

{{ctrl.currentPage.name}}

{{pageElement.image.caption}}

'),e.put("mw-form-viewer.html","
"),e.put("mw-priority-list.html",'
SortedAvailable
{{$index+1}}. {{::ctrl.print(ctrl.idToItem[item.id].value)}}
{{::ctrl.print(ctrl.idToItem[item.id].value)}}
')}]); angular.module("mwFormViewer").directive("mwPriorityList",function(){return{replace:!0,restrict:"AE",require:"^mwFormQuestion",scope:{question:"=",questionResponse:"=",readOnly:"=?",options:"=?"},templateUrl:"mw-priority-list.html",controllerAs:"ctrl",bindToController:!0,controller:function(){function i(i){if(i)for(var t=0;t0&&n.setCurrentPage(n.formData.pages[0])},n.resetPages=function(){n.prevPages=[],n.currentPage=null,n.nextPage=null,n.formSubmitted=!1,n.options.autoStart&&n.beginResponse()},n.resetPages(),n.goToPrevPage=function(){var e=n.prevPages.pop();n.setCurrentPage(e),n.updateNextPageBasedOnAllAnswers()},n.goToNextPage=function(){n.prevPages.push(n.currentPage),n.updateNextPageBasedOnAllAnswers(),n.setCurrentPage(n.nextPage)},n.updateNextPageBasedOnAllAnswers=function(){n.currentPage.elements.forEach(function(e){n.updateNextPageBasedOnPageElementAnswers(e)}),n.buttons.submitForm.visible=!n.nextPage,n.buttons.nextPage.visible=!!n.nextPage},n.updateNextPageBasedOnPageElementAnswers=function(e){var t=e.question;t&&t.pageFlowModifier&&t.offeredAnswers.forEach(function(e){e.pageFlow&&n.responseData[t.id].selectedAnswer==e.id&&(e.pageFlow.formSubmit?n.nextPage=null:e.pageFlow.page&&(n.nextPage=n.pageIdToPage[e.pageFlow.page.id]))})},n.onResponseChanged=function(e){n.setDefaultNextPage(),n.updateNextPageBasedOnAllAnswers()},n.api&&(n.api.reset=function(){for(var t in n.responseData)n.responseData.hasOwnProperty(t)&&delete n.responseData[t];n.buttons.submitForm.visible=!1,n.buttons.prevPage.visible=!1,n.buttons.nextPage.visible=!1,n.currentPage=null,e(n.resetPages,0)}),n.print=function(e){return n.templateData?t(e)(n.templateData):e}}],link:function(e,t,a){var n=e.ctrl;n.formStatus&&(n.formStatus.form=n.form)}}}); +angular.module("mwFormViewer").directive("mwFormViewer",function(){return{replace:!0,restrict:"AE",scope:{formData:"=",responseData:"=",templateData:"=?",readOnly:"=?",options:"=?",formStatus:"=?",onSubmit:"&",api:"=?"},templateUrl:"mw-form-viewer.html",controllerAs:"ctrl",bindToController:!0,controller:["$timeout","$interpolate",function(e,t){function a(){n.formData.pages.sort(function(e,t){return e.number-t.number})}var n=this;n.defaultOptions={nestedForm:!1,autoStart:!1},n.options=angular.extend({},n.defaultOptions,n.options),n.submitStatus="NOT_SUBMITTED",n.formSubmitted=!1,a(),n.pageIdToPage={},n.formData.pages.forEach(function(e){n.pageIdToPage[e.id]=e}),n.showElement=function(e){return e.question?void 0===e.question.visibleIf?!0:e.question.visibleIf===!1?!0:n.responseData[e.question.visibleIfQuestion.id].selectedAnswer===e.question.visibleIfAnswer:!0},n.buttons={prevPage:{visible:!1,disabled:!1},nextPage:{visible:!1,disabled:!1},submitForm:{visible:!1,disabled:!1}},n.submitForm=function(){n.formSubmitted=!0,n.submitStatus="IN_PROGRESS",n.setCurrentPage(null);var e=n.onSubmit();e.then(function(){n.submitStatus="SUCCESS"})["catch"](function(){n.submitStatus="ERROR"})},n.setCurrentPage=function(e){return n.currentPage=e,e?(n.setDefaultNextPage(),void n.initResponsesForCurrentPage()):(n.buttons.submitForm.visible=!1,n.buttons.prevPage.visible=!1,void(n.buttons.nextPage.visible=!1))},n.setDefaultNextPage=function(){var e=n.formData.pages.indexOf(n.currentPage);if(n.currentPage.isFirst=0==e,n.currentPage.isLast=e==n.formData.pages.length-1,n.buttons.submitForm.visible=n.currentPage.isLast,n.buttons.prevPage.visible=!n.currentPage.isFirst,n.buttons.nextPage.visible=!n.currentPage.isLast,n.currentPage.isLast?n.nextPage=null:n.nextPage=n.formData.pages[e+1],n.currentPage.pageFlow){var t=!1;n.currentPage.pageFlow.formSubmit?(n.nextPage=null,t=!0):n.currentPage.pageFlow.page?(n.nextPage=n.pageIdToPage[n.currentPage.pageFlow.page.id],n.buttons.nextPage.visible=!0):n.currentPage.isLast&&(n.nextPage=null,t=!0),n.buttons.submitForm.visible=t,n.buttons.nextPage.visible=!t}},n.applyTemplateDataToElement=function(e){var a=Object.assign({},n.templateData);e.paragraph&&(e.paragraph.displayHtml=t(e.paragraph.html)(a)),e.question&&(e.question.displayText=t(e.question.text)(a),e.question.offeredAnswers&&e.question.offeredAnswers.forEach(function(e){e.displayValue=t(e.value)(a)}))},n.initResponsesForCurrentPage=function(){n.currentPage.elements.forEach(function(e){var t=e.question;t&&!n.responseData[t.id]&&(n.responseData[t.id]={}),n.applyTemplateDataToElement(e)})},n.beginResponse=function(){n.formData.pages.length>0&&n.setCurrentPage(n.formData.pages[0])},n.resetPages=function(){n.prevPages=[],n.currentPage=null,n.nextPage=null,n.formSubmitted=!1,n.options.autoStart&&n.beginResponse()},n.resetPages(),n.goToPrevPage=function(){var e=n.prevPages.pop();n.setCurrentPage(e),n.updateNextPageBasedOnAllAnswers()},n.goToNextPage=function(){n.prevPages.push(n.currentPage),n.updateNextPageBasedOnAllAnswers(),n.setCurrentPage(n.nextPage)},n.updateNextPageBasedOnAllAnswers=function(){n.currentPage.elements.forEach(function(e){n.updateNextPageBasedOnPageElementAnswers(e)}),n.buttons.submitForm.visible=!n.nextPage,n.buttons.nextPage.visible=!!n.nextPage},n.updateNextPageBasedOnPageElementAnswers=function(e){var t=e.question;t&&t.pageFlowModifier&&t.offeredAnswers.forEach(function(e){e.pageFlow&&n.responseData[t.id].selectedAnswer==e.id&&(e.pageFlow.formSubmit?n.nextPage=null:e.pageFlow.page&&(n.nextPage=n.pageIdToPage[e.pageFlow.page.id]))})},n.onResponseChanged=function(e){n.setDefaultNextPage(),n.updateNextPageBasedOnAllAnswers()},n.api&&(n.api.reset=function(){for(var t in n.responseData)n.responseData.hasOwnProperty(t)&&delete n.responseData[t];n.buttons.submitForm.visible=!1,n.buttons.prevPage.visible=!1,n.buttons.nextPage.visible=!1,n.currentPage=null,e(n.resetPages,0)}),n.print=function(e){return n.templateData?t(e)(n.templateData):e}}],link:function(e,t,a){var n=e.ctrl;n.formStatus&&(n.formStatus.form=n.form)}}}); angular.module("mwFormViewer").factory("FormQuestionId",function(){var e=0;return{next:function(){return++e}}}).directive("mwFormQuestion",function(){return{replace:!0,restrict:"AE",require:"^mwFormViewer",scope:{question:"=",questionResponse:"=",readOnly:"=?",options:"=?",onResponseChanged:"&?"},templateUrl:"mw-form-question.html",controllerAs:"ctrl",bindToController:!0,controller:["$timeout","FormQuestionId",function(e,s){var n=this;n.id=s.next(),"radio"==n.question.type?(n.questionResponse.selectedAnswer||(n.questionResponse.selectedAnswer=null),n.questionResponse.other&&(n.isOtherAnswer=!0)):"checkbox"==n.question.type?(n.questionResponse.selectedAnswers&&n.questionResponse.selectedAnswers.length?n.selectedAnswer=!0:n.questionResponse.selectedAnswers=[],n.questionResponse.other&&(n.isOtherAnswer=!0)):"grid"==n.question.type||"division"==n.question.type&&(n.computeDivisionSum=function(){n.divisionSum=0,n.question.divisionList.forEach(function(e){0==n.questionResponse[e.id]||n.questionResponse[e.id]?n.divisionSum+=n.questionResponse[e.id]:(n.questionResponse[e.id]=null,n.divisionSum+=0)})},n.computeDivisionSum()),n.isAnswerSelected=!1,n.selectedAnswerChanged=function(){delete n.questionResponse.other,n.isOtherAnswer=!1,n.answerChanged()},n.otherAnswerRadioChanged=function(){n.isOtherAnswer&&(n.questionResponse.selectedAnswer=null),n.answerChanged()},n.otherAnswerCheckboxChanged=function(){n.isOtherAnswer||delete n.questionResponse.other,n.selectedAnswer=n.questionResponse.selectedAnswers.length||n.isOtherAnswer?!0:null,n.answerChanged()},n.toggleSelectedAnswer=function(e){-1===n.questionResponse.selectedAnswers.indexOf(e.id)?n.questionResponse.selectedAnswers.push(e.id):n.questionResponse.selectedAnswers.splice(n.questionResponse.selectedAnswers.indexOf(e.id),1),n.selectedAnswer=n.questionResponse.selectedAnswers.length||n.isOtherAnswer?!0:null,n.answerChanged()},n.answerChanged=function(){n.onResponseChanged&&n.onResponseChanged()}}],link:function(e,s,n,o){var t=e.ctrl;t.print=o.print}}}); angular.module("mwFormViewer").directive("mwFormConfirmationPage",function(){return{replace:!0,restrict:"AE",require:"^mwFormViewer",scope:{submitStatus:"=",confirmationMessage:"=",readOnly:"=?"},templateUrl:"mw-form-confirmation-page.html",controllerAs:"ctrl",bindToController:!0,controller:function(){},link:function(r,e,t,n){var o=r.ctrl;o.print=n.print}}}); \ No newline at end of file diff --git a/dist/i18n/en/angular-surveys.json b/dist/i18n/en/angular-surveys.json index 9993271..7d8bb2e 100644 --- a/dist/i18n/en/angular-surveys.json +++ b/dist/i18n/en/angular-surveys.json @@ -1 +1 @@ -{"mwForm":{"form":{"name":"Form name","name.placeholder":"Form title","description":"Description"},"buttons":{"addPage":"Add page","moveDown":"Move down","moveUp":"Move up","removePage":"Remove page","remove":"Remove","addElement":"Add element","questionReady":"Ready","next":"Next","back":"Back","submit":"Submit","begin":"Begin","fold":"Fold","unfold":"Unfold","edit":"Edit","clone":"Clone","view":"View"},"page":{"tab":{"heading":"Page {{page}} of {{allPages}}"},"elements":{"empty":"Empty page"},"pageWithNameCheckbox":"named","name":"Page name"},"pageFlow":{"afterPage":"After page {{page}}:","afterQuestionAnswer":"Go to page based on answer","goToPage":"Go to page {{page.number}}","goToNextPage":"Continue to next page","submitForm":"Submit form"},"elements":{"question":"Question","image":"Image","paragraph":"Paragraph"},"question":{"types":{"text":{"name":"Short text"},"textarea":{"name":"Long text"},"radio":{"name":"Radio"},"checkbox":{"name":"Checkboxes"},"grid":{"name":"Grid"},"priority":{"name":"Priority"},"division":{"name":"Division"},"number":{"name":"Number"},"date":{"name":"Date"},"datetime":{"name":"Datetime"},"time":{"name":"Time"},"email":{"name":"Email"},"range":{"name":"Range"},"url":{"name":"URL"}},"text":"Question text","type":"Question type","required":"Required","preview":{"text":"Short answer text","textarea":"Long answer text","otherAnswer":"Other"},"division":{"quantity":"Quantity","unit":"Unit label","assignedSumLabel":"Assigned","fromRequiredLabel":"from required"},"priority":{"sorted":"Sorted","available":"Available","clickToAddItem":"Click to add item"},"grid":{"rowLabel":"Row {{row}}","clickToAddRow":"Click to add row","columnLabel":"Column {{col}}","clickToAddColumn":"Click to add column"},"range":{"from":"Range from","to":"to"},"number":{"min":"Min","max":"Max"},"orLabel":"or ","otherLabel":"Other: ","userAnswer":"User answer","buttons":{"addOption":"Click to add option","addOther":"Add 'Other'"}},"image":{"selectImageButton":"Select image"},"paragraph":{"placeholder":"Enter paragraph text"},"confirmationPage":{"title":"Confirmation page","customMessage":"Custom confirmation message","defaultMessage":"Your response has been recorded","errorMessage":"Error! Your response has not been recorded","pendingMessage":"Your response is being saved."}}} \ No newline at end of file +{"mwForm":{"form":{"name":"Form name","name.placeholder":"Form title","description":"Description"},"buttons":{"addPage":"Add page","moveDown":"Move down","moveUp":"Move up","removePage":"Remove page","remove":"Remove","addElement":"Add element","questionReady":"Ready","next":"Next","back":"Back","submit":"Submit","begin":"Begin","fold":"Fold","unfold":"Unfold","edit":"Edit","clone":"Clone","view":"View"},"page":{"tab":{"heading":"Page {{page}} of {{allPages}}"},"elements":{"empty":"Empty page"},"pageWithNameCheckbox":"named","name":"Page name"},"pageFlow":{"afterPage":"After page {{page}}:","afterQuestionAnswer":"Go to page based on answer","goToPage":"Go to page {{page.number}}","goToNextPage":"Continue to next page","submitForm":"Submit form"},"elements":{"question":"Question","image":"Image","paragraph":"Paragraph"},"question":{"types":{"text":{"name":"Short text"},"textarea":{"name":"Long text"},"radio":{"name":"Radio"},"checkbox":{"name":"Checkboxes"},"grid":{"name":"Grid"},"priority":{"name":"Priority"},"division":{"name":"Division"},"number":{"name":"Number"},"date":{"name":"Date"},"datetime":{"name":"Datetime"},"time":{"name":"Time"},"email":{"name":"Email"},"range":{"name":"Range"},"url":{"name":"URL"}},"text":"Question text","type":"Question type","required":"Required","preview":{"text":"Short answer text","textarea":"Long answer text","otherAnswer":"Other"},"division":{"quantity":"Quantity","unit":"Unit label","assignedSumLabel":"Assigned","fromRequiredLabel":"from required"},"priority":{"sorted":"Sorted","available":"Available","clickToAddItem":"Click to add item"},"grid":{"rowLabel":"Row {{row}}","clickToAddRow":"Click to add row","columnLabel":"Column {{col}}","clickToAddColumn":"Click to add column"},"range":{"from":"Range from","to":"to"},"number":{"min":"Min","max":"Max"},"orLabel":"or ","otherLabel":"Other: ","userAnswer":"User answer","buttons":{"addOption":"Click to add option","addOther":"Add 'Other'"},"visibleIf":"Visible if ","equals":"equals"},"image":{"selectImageButton":"Select image"},"paragraph":{"placeholder":"Enter paragraph text"},"confirmationPage":{"title":"Confirmation page","customMessage":"Custom confirmation message","defaultMessage":"Your response has been recorded","errorMessage":"Error! Your response has not been recorded","pendingMessage":"Your response is being saved."}}} \ No newline at end of file diff --git a/dist/i18n/es/angular-surveys.json b/dist/i18n/es/angular-surveys.json index 77c27d0..8efeb8c 100644 --- a/dist/i18n/es/angular-surveys.json +++ b/dist/i18n/es/angular-surveys.json @@ -1 +1 @@ -{"mwForm":{"form":{"name":"Nombre del formulario","name.placeholder":"Título del formulario","description":"Descripción"},"buttons":{"addPage":"Agregar página","moveDown":"Bajar","moveUp":"Subir","removePage":"Remover página","remove":"Eliminar","addElement":"Agregar elemento","questionReady":"Listo","next":"Siguiente","back":"Atras","submit":"Enviar","begin":"Comenzar","fold":"Colapsar","unfold":"Expander","edit":"Editar","clone":"Duplicar","view":"Ver"},"page":{"tab":{"heading":"Página {{page}} de {{allPages}}"},"elements":{"empty":"Página vacia"},"pageWithNameCheckbox":"nombrar","name":"Nombre de página"},"pageFlow":{"afterPage":"Despues de página {{page}}:","afterQuestionAnswer":"Ir a página basado en respuesta","goToPage":"Ir a página {{page.number}}","goToNextPage":"Continuar a la siguiente página","submitForm":"Enviar formulario"},"elements":{"question":"Pregunta","image":"Imagen","paragraph":"Párrafo"},"question":{"types":{"text":{"name":"Texto corto"},"textarea":{"name":"Texto largo"},"radio":{"name":"Radio"},"checkbox":{"name":"Checkboxes"},"grid":{"name":"Grid"},"priority":{"name":"Prioridad"},"division":{"name":"Division"},"number":{"name":"Número"},"date":{"name":"Fecha"},"datetime":{"name":"Fecha y hora"},"time":{"name":"Hora"},"email":{"name":"Email"},"range":{"name":"Rango"},"url":{"name":"URL"}},"text":"Texto de pregunta","type":"Tipo de pregunta","required":"Requerida","preview":{"text":"Texto corto respuesta","textarea":"Texto largo respuesta","otherAnswer":"Otra"},"division":{"quantity":"Cantidad","unit":"Etiqueta de unidad","assignedSumLabel":"Asignado","fromRequiredLabel":"de lo requerido:"},"priority":{"sorted":"Ordenados","available":"Disponibles","clickToAddItem":"Click para agregar ítem"},"grid":{"rowLabel":"Fila {{row}}","clickToAddRow":"Click para agregar fila","columnLabel":"Columna {{col}}","clickToAddColumn":"Click para agregar columna"},"range":{"from":"Rango desde","to":"hasta"},"number":{"min":"Min","max":"Max"},"orLabel":"o ","otherLabel":"Otra: ","userAnswer":"Respuesta del usuario","buttons":{"addOption":"Click para agregar opción","addOther":"Agregar 'Otra'"}},"image":{"selectImageButton":"Seleccionar imagen"},"paragraph":{"placeholder":"Digite texto de párrafo"},"confirmationPage":{"title":"Página de confirmación","customMessage":"Mensaje de confirmación personalizada","defaultMessage":"Tus respuestas han sido guardadas","errorMessage":"Error! Tus respuestas no han sido guardadas","pendingMessage":"Tus respuestas estan siendo guardadas."}}} \ No newline at end of file +{"mwForm":{"form":{"name":"Nombre del formulario","name.placeholder":"Título del formulario","description":"Descripción"},"buttons":{"addPage":"Agregar página","moveDown":"Bajar","moveUp":"Subir","removePage":"Remover página","remove":"Eliminar","addElement":"Agregar elemento","questionReady":"Listo","next":"Siguiente","back":"Atras","submit":"Enviar","begin":"Comenzar","fold":"Colapsar","unfold":"Expander","edit":"Editar","clone":"Duplicar","view":"Ver"},"page":{"tab":{"heading":"Página {{page}} de {{allPages}}"},"elements":{"empty":"Página vacia"},"pageWithNameCheckbox":"nombrar","name":"Nombre de página"},"pageFlow":{"afterPage":"Despues de página {{page}}:","afterQuestionAnswer":"Ir a página basado en respuesta","goToPage":"Ir a página {{page.number}}","goToNextPage":"Continuar a la siguiente página","submitForm":"Enviar formulario"},"elements":{"question":"Pregunta","image":"Imagen","paragraph":"Párrafo"},"question":{"types":{"text":{"name":"Texto corto"},"textarea":{"name":"Texto largo"},"radio":{"name":"Radio"},"checkbox":{"name":"Checkboxes"},"grid":{"name":"Grid"},"priority":{"name":"Prioridad"},"division":{"name":"Division"},"number":{"name":"Número"},"date":{"name":"Fecha"},"datetime":{"name":"Fecha y hora"},"time":{"name":"Hora"},"email":{"name":"Email"},"range":{"name":"Rango"},"url":{"name":"URL"}},"text":"Texto de pregunta","type":"Tipo de pregunta","required":"Requerida","preview":{"text":"Texto corto respuesta","textarea":"Texto largo respuesta","otherAnswer":"Otra"},"division":{"quantity":"Cantidad","unit":"Etiqueta de unidad","assignedSumLabel":"Asignado","fromRequiredLabel":"de lo requerido:"},"priority":{"sorted":"Ordenados","available":"Disponibles","clickToAddItem":"Click para agregar ítem"},"grid":{"rowLabel":"Fila {{row}}","clickToAddRow":"Click para agregar fila","columnLabel":"Columna {{col}}","clickToAddColumn":"Click para agregar columna"},"range":{"from":"Rango desde","to":"hasta"},"number":{"min":"Min","max":"Max"},"orLabel":"o ","otherLabel":"Otra: ","userAnswer":"Respuesta del usuario","buttons":{"addOption":"Click para agregar opción","addOther":"Agregar 'Otra'"},"visibleIf":"visible si","equals":"es igual"},"image":{"selectImageButton":"Seleccionar imagen"},"paragraph":{"placeholder":"Digite texto de párrafo"},"confirmationPage":{"title":"Página de confirmación","customMessage":"Mensaje de confirmación personalizada","defaultMessage":"Tus respuestas han sido guardadas","errorMessage":"Error! Tus respuestas no han sido guardadas","pendingMessage":"Tus respuestas estan siendo guardadas."}}} \ No newline at end of file diff --git a/dist/i18n/pl/angular-surveys.json b/dist/i18n/pl/angular-surveys.json index 5d15473..880fc44 100644 --- a/dist/i18n/pl/angular-surveys.json +++ b/dist/i18n/pl/angular-surveys.json @@ -1 +1 @@ -{"mwForm":{"form":{"name":"Nazwa ankiety","name.placeholder":"Podaj nazwę ankiety","description":"Opis"},"buttons":{"addPage":"Dodaj stronę","moveDown":"Przenieś w dół","moveUp":"Przenieś w górę","removePage":"Usuń stronę","remove":"Usuń","addElement":"Dodaj element","questionReady":"Gotowe","next":"Dalej","back":"Wstecz","submit":"Prześlij","begin":"Rozpocznij","fold":"Zwiń","unfold":"Rozwiń","edit":"Edytuj","clone":"Klonuj","view":"Wyświetl"},"page":{"tab":{"heading":"Strona {{page}} z {{allPages}}"},"elements":{"empty":"Brak elementów"},"pageWithNameCheckbox":"nazwana","name":"Nazwa strony"},"pageFlow":{"afterPage":"Po stronie {{page}}","afterQuestionAnswer":"Przejdź do strony w oparciu o odpowiedź","goToPage":"Przejdź do strony numer {{page.number}}","goToNextPage":"Przejdz do następnej strony","submitForm":"Prześlij formularz"},"elements":{"question":"Pytanie/Polecenie","image":"Obraz","paragraph":"Paragraf"},"question":{"types":{"text":{"name":"Tekst"},"textarea":{"name":"Długi tekst"},"radio":{"name":"Jednokrotny wybór"},"checkbox":{"name":"Wielokrotny wybór"},"grid":{"name":"Siatka"},"priority":{"name":"Lista priorytetowa"},"division":{"name":"Podział"},"number":{"name":"Liczba"},"date":{"name":"Data"},"datetime":{"name":"Data i godzina"},"time":{"name":"Godzina"},"email":{"name":"Email"},"range":{"name":"Zakres"},"url":{"name":"Adres URL"}},"text":"Treść pytania","type":"Typ pytania","required":"Pytanie wymagane","preview":{"text":"Pole na wpisanie odpowiedzi","textarea":"Pole na wpisanie odpowiedzi","otherAnswer":"Inna"},"division":{"quantity":"Ilość","unit":"Etykieta jednostki","assignedSumLabel":"Przydzielono","fromRequiredLabel":"z wymaganych"},"priority":{"sorted":"Uszeregowane","available":"Pozostałe","clickToAddItem":"Kliknij aby dodać pozycję"},"grid":{"rowLabel":"Etykieta wiersza {{row}}","clickToAddRow":"Kliknij aby dodać wiersz","columnLabel":"Etykieta kolumny {{col}}","clickToAddColumn":"Kliknij aby dodać kolumnę"},"range":{"from":"Zakres od","to":"do"},"number":{"min":"Min","max":"Max"},"orLabel":"lub ","otherLabel":"Inna: ","userAnswer":"Odpowiedź użytkownika","buttons":{"addOption":"Kliknij aby dodać opcję","addOther":"Dodaj \"Inne\""}},"image":{"selectImageButton":"Wybierz obraz"},"paragraph":{"placeholder":"Wpisz treść paragrafu"},"confirmationPage":{"title":"Strona potwierdzenia","customMessage":"Niestandardowa wiadomość z potwierdzeniem","defaultMessage":"Twoja odpowiedź została zapisana","errorMessage":"Błąd. Twoja odpowiedź nie została zapisana.","pendingMessage":"Zapisywanie odpowiedzi w trakcie."}}} \ No newline at end of file +{"mwForm":{"form":{"name":"Nazwa ankiety","name.placeholder":"Podaj nazwę ankiety","description":"Opis"},"buttons":{"addPage":"Dodaj stronę","moveDown":"Przenieś w dół","moveUp":"Przenieś w górę","removePage":"Usuń stronę","remove":"Usuń","addElement":"Dodaj element","questionReady":"Gotowe","next":"Dalej","back":"Wstecz","submit":"Prześlij","begin":"Rozpocznij","fold":"Zwiń","unfold":"Rozwiń","edit":"Edytuj","clone":"Klonuj","view":"Wyświetl"},"page":{"tab":{"heading":"Strona {{page}} z {{allPages}}"},"elements":{"empty":"Brak elementów"},"pageWithNameCheckbox":"nazwana","name":"Nazwa strony"},"pageFlow":{"afterPage":"Po stronie {{page}}","afterQuestionAnswer":"Przejdź do strony w oparciu o odpowiedź","goToPage":"Przejdź do strony numer {{page.number}}","goToNextPage":"Przejdz do następnej strony","submitForm":"Prześlij formularz"},"elements":{"question":"Pytanie/Polecenie","image":"Obraz","paragraph":"Paragraf"},"question":{"types":{"text":{"name":"Tekst"},"textarea":{"name":"Długi tekst"},"radio":{"name":"Jednokrotny wybór"},"checkbox":{"name":"Wielokrotny wybór"},"grid":{"name":"Siatka"},"priority":{"name":"Lista priorytetowa"},"division":{"name":"Podział"},"number":{"name":"Liczba"},"date":{"name":"Data"},"datetime":{"name":"Data i godzina"},"time":{"name":"Godzina"},"email":{"name":"Email"},"range":{"name":"Zakres"},"url":{"name":"Adres URL"}},"text":"Treść pytania","type":"Typ pytania","required":"Pytanie wymagane","preview":{"text":"Pole na wpisanie odpowiedzi","textarea":"Pole na wpisanie odpowiedzi","otherAnswer":"Inna"},"division":{"quantity":"Ilość","unit":"Etykieta jednostki","assignedSumLabel":"Przydzielono","fromRequiredLabel":"z wymaganych"},"priority":{"sorted":"Uszeregowane","available":"Pozostałe","clickToAddItem":"Kliknij aby dodać pozycję"},"grid":{"rowLabel":"Etykieta wiersza {{row}}","clickToAddRow":"Kliknij aby dodać wiersz","columnLabel":"Etykieta kolumny {{col}}","clickToAddColumn":"Kliknij aby dodać kolumnę"},"range":{"from":"Zakres od","to":"do"},"number":{"min":"Min","max":"Max"},"orLabel":"lub ","otherLabel":"Inna: ","userAnswer":"Odpowiedź użytkownika","buttons":{"addOption":"Kliknij aby dodać opcję","addOther":"Dodaj \"Inne\""},"visibleIf":"visível se","equals":"é igual a"},"image":{"selectImageButton":"Wybierz obraz"},"paragraph":{"placeholder":"Wpisz treść paragrafu"},"confirmationPage":{"title":"Strona potwierdzenia","customMessage":"Niestandardowa wiadomość z potwierdzeniem","defaultMessage":"Twoja odpowiedź została zapisana","errorMessage":"Błąd. Twoja odpowiedź nie została zapisana.","pendingMessage":"Zapisywanie odpowiedzi w trakcie."}}} \ No newline at end of file diff --git a/i18n/en/angular-surveys.json b/i18n/en/angular-surveys.json index 4fb93f2..b734e71 100644 --- a/i18n/en/angular-surveys.json +++ b/i18n/en/angular-surveys.json @@ -132,7 +132,9 @@ "buttons":{ "addOption":"Click to add option", "addOther":"Add 'Other'" - } + }, + "visibleIf": "Visible if ", + "equals": "equals" }, "image":{ diff --git a/i18n/es/angular-surveys.json b/i18n/es/angular-surveys.json index 44eabaa..be18628 100644 --- a/i18n/es/angular-surveys.json +++ b/i18n/es/angular-surveys.json @@ -129,7 +129,9 @@ "buttons": { "addOption": "Click para agregar opción", "addOther": "Agregar 'Otra'" - } + }, + "visibleIf": "visible si", + "equals": "es igual" }, "image": { "selectImageButton": "Seleccionar imagen" diff --git a/i18n/pl/angular-surveys.json b/i18n/pl/angular-surveys.json index 03762ba..e0eb9b0 100644 --- a/i18n/pl/angular-surveys.json +++ b/i18n/pl/angular-surveys.json @@ -132,8 +132,9 @@ "buttons":{ "addOption":"Kliknij aby dodać opcję", "addOther":"Dodaj \"Inne\"" - } - + }, + "visibleIf": "visível se", + "equals": "é igual a" }, "image":{ "selectImageButton": "Wybierz obraz" diff --git a/image.gif b/image.gif new file mode 100644 index 0000000..6edbfb2 Binary files /dev/null and b/image.gif differ diff --git a/package.json b/package.json index 2e47316..58e365b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angular-surveys", - "version": "0.1.0", + "version": "0.6.5", "description": "Angular survey/form builder and viewer inspired by Google Forms", "main": "gulpfile.js", "devDependencies": { @@ -36,7 +36,7 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/mwasiluk/angular-surveys.git" + "url": "git+https://github.com/gofreddo/angular-surveys.git" }, "keywords": [ "angular", @@ -47,7 +47,7 @@ "author": "Michal Wasiluk", "license": "Apache 2.0", "bugs": { - "url": "https://github.com/mwasiluk/angular-surveys/issues" + "url": "https://github.com/gofreddo/angular-surveys/issues" }, - "homepage": "https://github.com/mwasiluk/angular-surveys#readme" + "homepage": "https://github.com/gofreddo/angular-surveys#readme" } diff --git a/src/builder/form-question-builder.directive.js b/src/builder/form-question-builder.directive.js index d6efc69..b175519 100644 --- a/src/builder/form-question-builder.directive.js +++ b/src/builder/form-question-builder.directive.js @@ -24,11 +24,37 @@ angular.module('mwFormBuilder').factory("FormQuestionBuilderId", function(){ templateUrl: 'mw-form-question-builder.html', controllerAs: 'ctrl', bindToController: true, - controller: function($timeout,FormQuestionBuilderId, mwFormBuilderOptions){ + controller: function($timeout,FormQuestionBuilderId, mwFormBuilderOptions, $scope){ var ctrl = this; ctrl.id = FormQuestionBuilderId.next(); ctrl.questionTypes = mwFormBuilderOptions.questionTypes; ctrl.formSubmitted=false; + + function getRadioQuestions(){ + var result = []; + ctrl.formObject.pages.forEach(function (page){ + page.elements.filter(function (element){ + return element.type === 'question' && element.question.type === 'radio'; + }).forEach(function (radioQuestion) { + result.push(radioQuestion.question); + }); + }); + + return result; + } + + $scope.$watchCollection('ctrl.formObject.pages', function(pages) { + pages.forEach(function(page) { + $scope.$watchCollection(function(){return page.elements;}, function(elements) { + if (!elements) return; + elements.forEach(function(element) { + $scope.$watch(function(){return element;}, function(element) { + ctrl.radioQuestions = getRadioQuestions(); + }, true); + }); + }, true); + }); + }, true); sortAnswersByOrderNo(); function updateAnswersOrderNo() { diff --git a/src/builder/mw-form-question-builder.html b/src/builder/mw-form-question-builder.html index c41e6f3..14dcb7a 100644 --- a/src/builder/mw-form-question-builder.html +++ b/src/builder/mw-form-question-builder.html @@ -89,6 +89,33 @@


+ +
+
+
+
+
+ +
+ + + +
+
+
+ +
diff --git a/src/viewer/form-viewer.directive.js b/src/viewer/form-viewer.directive.js index 45c58ed..fe527e0 100644 --- a/src/viewer/form-viewer.directive.js +++ b/src/viewer/form-viewer.directive.js @@ -35,6 +35,23 @@ angular.module('mwFormViewer').directive('mwFormViewer', function () { ctrl.formData.pages.forEach(function(page){ ctrl.pageIdToPage[page.id]=page; }); + + ctrl.showElement = function(element){ + + if (!element.question){ + return true; + } + + if (element.question.visibleIf === undefined){ + return true; + } + + if (element.question.visibleIf === false){ + return true; + } + + return ctrl.responseData[element.question.visibleIfQuestion.id].selectedAnswer === element.question.visibleIfAnswer; + } ctrl.buttons={ @@ -119,6 +136,23 @@ angular.module('mwFormViewer').directive('mwFormViewer', function () { ctrl.buttons.nextPage.visible=!formSubmit; } }; + + ctrl.applyTemplateDataToElement = function(element){ + var templateData = Object.assign({}, ctrl.templateData); + + if (element.paragraph){ + element.paragraph.displayHtml = $interpolate(element.paragraph.html)(templateData); + } + if (element.question){ + element.question.displayText = $interpolate(element.question.text)(templateData); + + if (element.question.offeredAnswers){ + element.question.offeredAnswers.forEach(function (offeredAnswer){ + offeredAnswer.displayValue = $interpolate(offeredAnswer.value)(templateData); + }); + } + } + }; ctrl.initResponsesForCurrentPage = function(){ ctrl.currentPage.elements.forEach(function(element){ @@ -126,6 +160,7 @@ angular.module('mwFormViewer').directive('mwFormViewer', function () { if(question && !ctrl.responseData[question.id]){ ctrl.responseData[question.id]={}; } + ctrl.applyTemplateDataToElement(element); }); }; diff --git a/src/viewer/mw-form-viewer-content.html b/src/viewer/mw-form-viewer-content.html index f338337..0a278e1 100644 --- a/src/viewer/mw-form-viewer-content.html +++ b/src/viewer/mw-form-viewer-content.html @@ -12,7 +12,7 @@

{{ctrl.formData.name}}

{{ctrl.currentPage.name}}

-
+