Skip to content

Commit

Permalink
Merge pull request #7 from mtrawin/enhancement/translations-dependanc…
Browse files Browse the repository at this point in the history
…y-local

Load in translation files directly to the surveys module
  • Loading branch information
mtrawin authored Jan 27, 2020
2 parents 9131a86 + c91762f commit eacd862
Show file tree
Hide file tree
Showing 35 changed files with 239 additions and 155 deletions.
15 changes: 4 additions & 11 deletions demo-material/demo.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,4 @@
angular.module('app', ['ngMaterial', 'mwFormBuilder', 'mwFormViewer', 'mwFormUtils', 'pascalprecht.translate', 'monospaced.elastic'])
.config(function($translateProvider){
$translateProvider.useStaticFilesLoader({
prefix: '../dist/i18n/',
suffix: '/angular-surveys.json'
});
$translateProvider.preferredLanguage('en');
})
angular.module('app', ['ngMaterial', 'mwFormBuilder', 'mwFormViewer', 'mwFormUtils', 'monospaced.elastic'])
.controller('DemoController', function($q,$http, $translate, mwFormResponseUtils) {

var ctrl = this;
Expand Down Expand Up @@ -39,7 +32,7 @@ angular.module('app', ['ngMaterial', 'mwFormBuilder', 'mwFormViewer', 'mwFormUti
],
elementTypes: ['question', 'image'],
pagesSize: [1,10,25,50,100],
pageSize: 1
pageSize: 1
*/
};
ctrl.formStatus= {};
Expand All @@ -48,7 +41,7 @@ angular.module('app', ['ngMaterial', 'mwFormBuilder', 'mwFormViewer', 'mwFormUti
.then(function(res){
ctrl.responseData = res.data;
});

$http.get('template-data.json')
.then(function(res){
ctrl.templateData = res.data;
Expand Down Expand Up @@ -114,4 +107,4 @@ angular.module('app', ['ngMaterial', 'mwFormBuilder', 'mwFormViewer', 'mwFormUti
return mwFormResponseUtils.getResponseSheet(ctrl.formData, ctrl.responseData, ctrl.headersWithQuestionNumber);
};

});
});
11 changes: 2 additions & 9 deletions demo/demo-viewer.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,4 @@
angular.module('app', ['ui.bootstrap', 'mwFormViewer', 'pascalprecht.translate', 'monospaced.elastic'])
.config(function($translateProvider){
$translateProvider.useStaticFilesLoader({
prefix: '../dist/i18n/',
suffix: '/angular-surveys.json'
});
$translateProvider.preferredLanguage('en');
})
angular.module('app', ['ui.bootstrap', 'mwFormViewer', 'monospaced.elastic'])
.controller('DemoController', function($q, $http, $translate, $rootScope) {

var ctrl = this;
Expand Down Expand Up @@ -41,4 +34,4 @@ angular.module('app', ['ui.bootstrap', 'mwFormViewer', 'pascalprecht.translate',
return d.promise;
};

});
});
19 changes: 4 additions & 15 deletions demo/demo.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,5 @@
angular.module('app', ['ui.bootstrap', 'mwFormBuilder', 'mwFormViewer', 'mwFormUtils', 'pascalprecht.translate', 'monospaced.elastic'])
.config(function($translateProvider){
$translateProvider.useStaticFilesLoader({
prefix: '../dist/i18n/',
suffix: '/angular-surveys.json'
});
$translateProvider.preferredLanguage('en');
})
.controller('DemoController', function($q,$http, $translate, mwFormResponseUtils, $rootScope) {
angular.module('app', ['ui.bootstrap', 'mwFormBuilder', 'mwFormViewer', 'mwFormUtils', 'monospaced.elastic'])
.controller('DemoController', function($q,$http, mwFormResponseUtils, $rootScope) {

var ctrl = this;
ctrl.mergeFormWithResponse = true;
Expand Down Expand Up @@ -46,7 +39,7 @@ angular.module('app', ['ui.bootstrap', 'mwFormBuilder', 'mwFormViewer', 'mwFormU
.then(function(res){
ctrl.responseData = res.data;
});

$http.get('template-data.json')
.then(function(res){
ctrl.templateData = res.data;
Expand Down Expand Up @@ -97,10 +90,6 @@ angular.module('app', ['ui.bootstrap', 'mwFormBuilder', 'mwFormViewer', 'mwFormU
}
};

ctrl.changeLanguage = function (languageKey) {
$translate.use(languageKey);
};

ctrl.getMerged=function(){
return mwFormResponseUtils.mergeFormWithResponse(ctrl.formData, ctrl.responseData);
};
Expand All @@ -119,4 +108,4 @@ angular.module('app', ['ui.bootstrap', 'mwFormBuilder', 'mwFormViewer', 'mwFormU
return mwFormResponseUtils.getResponseSheet(ctrl.formData, ctrl.responseData, ctrl.headersWithQuestionNumber);
};

});
});
4 changes: 2 additions & 2 deletions dist/form-builder-bootstrap-tpls.min.js

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions dist/form-builder-material-tpls.min.js

Large diffs are not rendered by default.

31 changes: 30 additions & 1 deletion dist/form-builder.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,32 @@
angular.module('mwFormBuilder', ['ngSanitize','ng-sortable', 'pascalprecht.translate']);
angular.module('mwFormBuilder', ['ngSanitize', 'ng-sortable', 'pascalprecht.translate'])
.config(['$translateProvider', function($translateProvider){
$translateProvider.useStaticFilesLoader({
prefix: 'bower_components/insight-surveys/dist/i18n/',
suffix: '/angular-surveys.json'
});
$translateProvider.useSanitizeValueStrategy('sanitize');
$translateProvider.preferredLanguage('en');
}])
.filter('ngtranslate', ["$parse", "$translate", function ($parse, $translate) {
'use strict';

var translateFilter = function (translationId, interpolateParams, interpolation, forceLanguage) {
if (!angular.isObject(interpolateParams)) {
var ctx = this || {
'__SCOPE_IS_NOT_AVAILABLE': 'More info at https://github.com/angular/angular.js/commit/8863b9d04c722b278fa93c5d66ad1e578ad6eb1f'
};
interpolateParams = $parse(interpolateParams)(ctx);
}

return $translate.instant(translationId, interpolateParams, interpolation, forceLanguage);
};

if ($translate.statefulFilter()) {
translateFilter.$stateful = true;
}

return translateFilter;
}]);

angular.module('mwFormBuilder')
.service('mwFormUuid', function () {
Expand Down Expand Up @@ -1452,6 +1480,7 @@ angular.module('mwFormBuilder').filter('mwStartFrom', function() {
return input.slice(start);
};
});

angular.module('mwFormBuilder')
.constant('MW_QUESTION_TYPES', ['text', 'textarea', 'radio', 'checkbox', 'select', 'grid', 'priority', 'division', 'number', 'date', 'time', 'email', 'range', 'url', 'star'])
.constant('MW_ELEMENT_TYPES', ['question', 'image', 'paragraph'])
Expand Down
2 changes: 1 addition & 1 deletion dist/form-builder.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/form-viewer-bootstrap-tpls.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/form-viewer-material-tpls.min.js

Large diffs are not rendered by default.

32 changes: 29 additions & 3 deletions dist/form-viewer.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,32 @@
angular.module('mwFormViewer', ['ngSanitize', 'ui.bootstrap','ng-sortable', 'pascalprecht.translate']);


angular.module('mwFormViewer', ['ngSanitize', 'ui.bootstrap', 'ng-sortable', 'pascalprecht.translate'])
.config(['$translateProvider', function($translateProvider){
$translateProvider.useStaticFilesLoader({
prefix: 'bower_components/insight-surveys/dist/i18n/',
suffix: '/angular-surveys.json'
});
$translateProvider.useSanitizeValueStrategy('sanitize');
$translateProvider.preferredLanguage('en');
}])
.filter('ngtranslate', ["$parse", "$translate", function ($parse, $translate) {
'use strict';

var translateFilter = function (translationId, interpolateParams, interpolation, forceLanguage) {
if (!angular.isObject(interpolateParams)) {
var ctx = this || {
'__SCOPE_IS_NOT_AVAILABLE': 'More info at https://github.com/angular/angular.js/commit/8863b9d04c722b278fa93c5d66ad1e578ad6eb1f'
};
interpolateParams = $parse(interpolateParams)(ctx);
}

return $translate.instant(translationId, interpolateParams, interpolation, forceLanguage);
};

if ($translate.statefulFilter()) {
translateFilter.$stateful = true;
}

return translateFilter;
}]);


angular.module('mwFormViewer')
Expand Down
2 changes: 1 addition & 1 deletion dist/form-viewer.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/i18n/en/angular-surveys.json
Original file line number Diff line number Diff line change
@@ -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"},"select":{"name":"Select"},"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"},"star":{"name":"Star Rating"}},"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":{"cellInputType":"Cell input type","cellInputTypes":{"radio":"Radio","checkbox":"Checkbox","text":"Text","number":"Number","date":"Date","time":"Time"},"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'"},"star":{"no":"Number of stars"}},"image":{"selectImageButton":"Select image","caption":"Image caption"},"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."}}}
{"mwForm":{"form":{"name":"Title","name.placeholder":"e.g Customer Satisfaction Survey","description":"Introduction text"},"buttons":{"addPage":"Add page","moveDown":"Move down","moveUp":"Move up","removePage":"Remove page","remove":"Remove","addElement":"Add content","questionReady":"Done","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":"Add Page Title","name":"Page Title"},"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":"Single choice"},"select":{"name":"Select"},"checkbox":{"name":"Multiple choice"},"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":"Sliding scale"},"url":{"name":"URL"},"star":{"name":"Star rating"}},"text":"Question text","type":"Question type","required":"Require an answer to this question","preview":{"text":"","textarea":"","otherAnswer":"Other"},"division":{"quantity":"Quantity","unit":"Unit label","assignedSumLabel":"Assigned","fromRequiredLabel":"from required"},"priority":{"sorted":"Sorted","available":"Available","clickToAddItem":"Click to add item"},"grid":{"cellInputType":"Selection type","cellInputTypes":{"radio":"Single choice","checkbox":"Multiple choice","text":"Text","number":"Number","date":"Date","time":"Time"},"rowLabel":"Row {{row}}","clickToAddRow":"Click to add row","columnLabel":"Column {{col}}","clickToAddColumn":"Click to add column"},"range":{"from":"Scale from","to":"to"},"number":{"min":"Min","max":"Max"},"orLabel":"or ","otherLabel":"Other: ","userAnswer":"User answer","buttons":{"addOption":"Click to add option","addOther":"Add 'Other'"},"star":{"no":"Number of stars"}},"image":{"selectImageButton":"Select image","caption":"Image caption"},"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."}}}
36 changes: 18 additions & 18 deletions i18n/en/angular-surveys.json
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
{
"mwForm":{
"form":{
"name": "Form name",
"name.placeholder": "Form title",
"description": "Description"
"name": "Title",
"name.placeholder": "e.g Customer Satisfaction Survey",
"description": "Introduction text"
},
"buttons":{
"addPage":"Add page",
"moveDown": "Move down",
"moveUp": "Move up",
"removePage": "Remove page",
"remove": "Remove",
"addElement": "Add element",
"questionReady": "Ready",
"addElement": "Add content",
"questionReady": "Done",
"next": "Next",
"back": "Back",
"submit": "Submit",
Expand All @@ -30,8 +30,8 @@
"elements":{
"empty": "Empty page"
},
"pageWithNameCheckbox": "named",
"name": "Page name"
"pageWithNameCheckbox": "Add Page Title",
"name": "Page Title"
},
"pageFlow":{
"afterPage":"After page {{page}}:",
Expand All @@ -54,13 +54,13 @@
"name": "Long text"
},
"radio":{
"name": "Radio"
"name": "Single choice"
},
"select":{
"name": "Select"
},
"checkbox":{
"name": "Checkboxes"
"name": "Multiple choice"
},
"grid":{
"name": "Grid"
Expand All @@ -87,21 +87,21 @@
"name": "Email"
},
"range":{
"name": "Range"
"name": "Sliding scale"
},
"url":{
"name": "URL"
},
"star":{
"name": "Star Rating"
"name": "Star rating"
}
},
"text": "Question text",
"type": "Question type",
"required": "Required",
"required": "Require an answer to this question",
"preview":{
"text":"Short answer text",
"textarea":"Long answer text",
"text":"",
"textarea":"",
"otherAnswer": "Other"
},
"division":{
Expand All @@ -117,10 +117,10 @@
"clickToAddItem": "Click to add item"
},
"grid":{
"cellInputType": "Cell input type",
"cellInputType": "Selection type",
"cellInputTypes":{
"radio": "Radio",
"checkbox": "Checkbox",
"radio": "Single choice",
"checkbox": "Multiple choice",
"text": "Text",
"number": "Number",
"date": "Date",
Expand All @@ -132,7 +132,7 @@
"clickToAddColumn": "Click to add column"
},
"range":{
"from": "Range from",
"from": "Scale from",
"to": "to"
},
"number": {
Expand Down
30 changes: 29 additions & 1 deletion src/builder/form-builder.module.js
Original file line number Diff line number Diff line change
@@ -1 +1,29 @@
angular.module('mwFormBuilder', ['ngSanitize','ng-sortable', 'pascalprecht.translate']);
angular.module('mwFormBuilder', ['ngSanitize', 'ng-sortable', 'pascalprecht.translate'])
.config(['$translateProvider', function($translateProvider){
$translateProvider.useStaticFilesLoader({
prefix: 'bower_components/insight-surveys/dist/i18n/',
suffix: '/angular-surveys.json'
});
$translateProvider.useSanitizeValueStrategy('sanitize');
$translateProvider.preferredLanguage('en');
}])
.filter('ngtranslate', function ($parse, $translate) {
'use strict';

var translateFilter = function (translationId, interpolateParams, interpolation, forceLanguage) {
if (!angular.isObject(interpolateParams)) {
var ctx = this || {
'__SCOPE_IS_NOT_AVAILABLE': 'More info at https://github.com/angular/angular.js/commit/8863b9d04c722b278fa93c5d66ad1e578ad6eb1f'
};
interpolateParams = $parse(interpolateParams)(ctx);
}

return $translate.instant(translationId, interpolateParams, interpolation, forceLanguage);
};

if ($translate.statefulFilter()) {
translateFilter.$stateful = true;
}

return translateFilter;
});
2 changes: 1 addition & 1 deletion src/builder/templates/bootstrap/mw-form-builder.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

<div class="form-group">
<mw-label label-for="formName" label-key="mwForm.form.name"></mw-label>
<input type="text" class="form-control" name="formName" id="formName" ng-model="ctrl.formData.name" ng-readonly="ctrl.readOnly" placeholder="{{'mwForm.form.name.placeholder'|translate}}" required>
<input type="text" class="form-control" name="formName" id="formName" ng-model="ctrl.formData.name" ng-readonly="ctrl.readOnly" placeholder="{{'mwForm.form.name.placeholder'|ngtranslate}}" required>
</div>

<div class="form-group">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
</div>
<div ng-form="ctrl.form" role="form" novalidate class="form-page-builder-body">
<div class="form-group">
<textarea msd-elastic class="form-control" name="confirmationMessage" ng-model="ctrl.formObject.confirmationMessage" aria-label="{{'mwForm.confirmationPage.customMessage'|translate}}" placeholder="{{'mwForm.confirmationPage.customMessage'|translate}}" ng-disabled="ctrl.readOnly"></textarea>
<textarea msd-elastic class="form-control" name="confirmationMessage" ng-model="ctrl.formObject.confirmationMessage" aria-label="{{'mwForm.confirmationPage.customMessage'|ngtranslate}}" placeholder="{{'mwForm.confirmationPage.customMessage'|ngtranslate}}" ng-disabled="ctrl.readOnly"></textarea>
</div>
</div>
</div>
Expand Down
Loading

0 comments on commit eacd862

Please sign in to comment.