Skip to content

Commit

Permalink
Merge branch 'novaip-master'
Browse files Browse the repository at this point in the history
  • Loading branch information
mwasiluk committed Mar 15, 2016
2 parents aeb454e + e70ac61 commit 916cd22
Show file tree
Hide file tree
Showing 32 changed files with 553 additions and 311 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,4 @@ tmp
*.iml
out
gen
/nbproject/private/
4 changes: 3 additions & 1 deletion bower.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,9 @@
"angular-ui-sortable": "0.13.x",
"bootstrap": "3.x",
"font-awesome": "4.x",
"angular-elastic": "2.x"
"angular-elastic": "2.x",
"angular-bootstrap": "^1.2.4",
"Sortable": "dev"
},
"devDependencies": {
"angular-translate-loader-partial": "2.x",
Expand Down
317 changes: 154 additions & 163 deletions demo/demo.html

Large diffs are not rendered by default.

9 changes: 7 additions & 2 deletions demo/demo.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,20 @@ angular.module('app', ['mwFormBuilder', 'mwFormViewer', 'mwFormUtils', 'pascalpr
prefix: '../dist/i18n/',
suffix: '/angular-surveys.json'
});
$translateProvider.preferredLanguage('en');
$translateProvider.preferredLanguage('es');
})
.controller('DemoController', function($q,$http, $translate, mwFormResponseUtils) {

var ctrl = this;
ctrl.mergeFormWithResponse = true;
ctrl.cgetQuestionWithResponseList = true;
ctrl.cgetResponseSheetHeaders = true;
ctrl.cgetResponseSheetRow = true;
ctrl.cgetResponseSheet = true;
ctrl.headersWithQuestionNumber = true;
ctrl.builderReadOnly = false;
ctrl.viewerReadOnly = false;
ctrl.languages = ['en', 'pl'];
ctrl.languages = ['en', 'pl', "es"];
ctrl.formData = {};
$http.get('form-data.json')
.then(function(res){
Expand Down
2 changes: 1 addition & 1 deletion dist/form-builder.min.css

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions dist/form-builder.min.js

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions dist/form-viewer.min.js

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions dist/i18n/es/angular-surveys.json
Original file line number Diff line number Diff line change
@@ -0,0 +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."}}}
148 changes: 148 additions & 0 deletions i18n/es/angular-surveys.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
{
"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."
}
}
}
3 changes: 3 additions & 0 deletions nbproject/project.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
file.reference.NetBeansProjects-nova-survey=.
files.encoding=UTF-8
site.root.folder=${file.reference.NetBeansProjects-nova-survey}
9 changes: 9 additions & 0 deletions nbproject/project.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.web.clientproject</type>
<configuration>
<data xmlns="http://www.netbeans.org/ns/clientside-project/1">
<name>nova-survey</name>
</data>
</configuration>
</project>
10 changes: 9 additions & 1 deletion src/builder/form-builder.directive.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,24 @@ angular.module('mwFormBuilder').directive('mwFormBuilder', function () {
bindToController: true,
controller: function(mwFormUuid, MW_QUESTION_TYPES, mwFormBuilderOptions){
var ctrl = this;

if(!ctrl.formData.pages || !ctrl.formData.pages.length){
ctrl.formData.pages = [];
ctrl.formData.pages.push(createEmptyPage(1));
}
mwFormBuilderOptions.questionTypes = MW_QUESTION_TYPES;
mwFormBuilderOptions.elementButtons = [];
mwFormBuilderOptions.additionalSelects = [];

if(ctrl.options){
if(ctrl.options.questionTypes){
mwFormBuilderOptions.questionTypes = ctrl.options.questionTypes;
}
if(ctrl.options.additionalSelects){
mwFormBuilderOptions.additionalSelects = ctrl.options.additionalSelects;
}
if(ctrl.options.elementButtons){
mwFormBuilderOptions.elementButtons = ctrl.options.elementButtons;
}
}


Expand Down
6 changes: 3 additions & 3 deletions src/builder/form-builder.module.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
angular.module('mwFormBuilder', ['ngSanitize', 'ui.sortable', 'pascalprecht.translate'])
.constant('MW_QUESTION_TYPES', ['text', 'textarea', 'radio', 'checkbox', 'grid', 'priority', 'division', 'number', 'date', 'time', 'email', 'range', 'url'])
.value('mwFormBuilderOptions', {});
angular.module('mwFormBuilder', ['ngSanitize', 'ui.bootstrap','ng-sortable', 'pascalprecht.translate'])
.constant('MW_QUESTION_TYPES', ['text', 'textarea', 'radio', 'checkbox', 'grid', 'priority', 'division', 'number', 'date', 'time', 'email', 'range', 'url'])
.value('mwFormBuilderOptions', {});


49 changes: 7 additions & 42 deletions src/builder/form-page-builder.directive.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ angular.module('mwFormBuilder').directive('mwFormPageBuilder', function () {
templateUrl: 'mw-form-page-builder.html',
controllerAs: 'ctrl',
bindToController: true,
controller: function($timeout, mwFormUuid){
controller: function($timeout, mwFormUuid, mwFormClone){
var ctrl = this;
ctrl.hoverEdit = false;
ctrl.formPage.namedPage = !!ctrl.formPage.name;
Expand Down Expand Up @@ -44,11 +44,12 @@ angular.module('mwFormBuilder').directive('mwFormPageBuilder', function () {

ctrl.sortableConfig = {
disabled: ctrl.readOnly,
placeholder: "beingDragged",
ghostClass: "beingDragged",
group: "survey",
handle: ".inactive",
//cancel: ".not-draggable",
connectWith: ".page-element-list",
stop: function(e, ui) {
chosenClass: ".page-element-list",
onEnd: function(e, ui) {
updateElementsOrderNo();
}
};
Expand All @@ -66,50 +67,14 @@ angular.module('mwFormBuilder').directive('mwFormPageBuilder', function () {

ctrl.cloneElement = function(pageElement, setActive){
var index = ctrl.formPage.elements.indexOf(pageElement);
var element = {};
angular.copy(pageElement, element);
var element = mwFormClone.cloneElement(pageElement);
if(setActive){
ctrl.activeElement=element;
}
resetIds(element,true);
ctrl.formPage.elements.splice(index,0, element);

};

var checkedObjects = [];
function resetIds(obj, root){
if(root){
checkedObjects=[];
}
if(checkedObjects.indexOf(obj)>=0){
return;
}
checkedObjects.push(obj);
if(!obj === Object(obj)){
return;
}

if(Array.isArray(obj)){
obj.forEach(resetIds);
return;
}

for (var property in obj) {
if (obj.hasOwnProperty(property)) {
resetIds(obj[property]);
}
}

if(obj.hasOwnProperty('id')){
var newId = mwFormUuid.get();
var oldId = obj.id;
console.log('setting new id:',newId, oldId, obj);
obj.id = newId;
}


}

ctrl.removeElement = function(pageElement){
var index = ctrl.formPage.elements.indexOf(pageElement);
ctrl.formPage.elements.splice(index,1);
Expand Down Expand Up @@ -210,7 +175,7 @@ angular.module('mwFormBuilder').directive('mwFormPageBuilder', function () {
ctrl.updateElementsOrderNo();
}
});

ctrl.options = formBuilderCtrl.options;
ctrl.onImageSelection = formBuilderCtrl.onImageSelection;
}
};
Expand Down
16 changes: 14 additions & 2 deletions src/builder/form-page-element-builder.directive.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,19 @@ angular.module('mwFormBuilder').directive('mwFormPageElementBuilder', function (
bindToController: true,
controller: function(mwFormUuid){
var ctrl = this;

ctrl.callback = function($event,element){
$event.preventDefault();
$event.stopPropagation();
if (element.callback && typeof element.callback === "function") {
element.callback(ctrl.pageElement);
}
};
ctrl.filter = function(element){
if (element.filter && typeof element.filter === "function") {
return element.filter(ctrl.pageElement);
}
return true;
};
if(ctrl.pageElement.type=='question'){
if(!ctrl.pageElement.question){
ctrl.pageElement.question={
Expand Down Expand Up @@ -84,7 +96,7 @@ angular.module('mwFormBuilder').directive('mwFormPageElementBuilder', function (
pageBuilderCtrl.moveUpElement(ctrl.pageElement);
};


ctrl.options = pageBuilderCtrl.options;
ctrl.onImageSelection = pageBuilderCtrl.onImageSelection;
}
};
Expand Down
5 changes: 3 additions & 2 deletions src/builder/form-question-builder.directive.js
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,9 @@ angular.module('mwFormBuilder').factory("FormQuestionBuilderId", function(){

ctrl.offeredAnswersSortableConfig = {
disabled: ctrl.readOnly,
placeholder: "beingDragged",
ghostClass: "beingDragged",
handle: ".drag-handle",
stop: function(e, ui) {
onEnd: function(e, ui) {
updateAnswersOrderNo();
}
};
Expand Down Expand Up @@ -117,6 +117,7 @@ angular.module('mwFormBuilder').factory("FormQuestionBuilderId", function(){
link: function (scope, ele, attrs, formPageElementBuilder){
var ctrl = scope.ctrl;
ctrl.possiblePageFlow = formPageElementBuilder.possiblePageFlow;
ctrl.options = formPageElementBuilder.options;
}
};
});
Loading

0 comments on commit 916cd22

Please sign in to comment.