fixed star field has preset value before being set bug

This commit is contained in:
David Baldwynn 2017-08-02 17:13:10 -04:00
parent dce758b22a
commit 53828594ff
8 changed files with 15 additions and 16 deletions

View file

@ -51,7 +51,8 @@
"jspdf": "~1.0.178",
"angular-sanitize": "1.4.14",
"angular-ui-sortable": "^0.17.1",
"angular-ui-date": "~0.0.11"
"angular-ui-date": "~0.0.11",
"angular-input-stars-directive": "master"
},
"overrides": {
"BOWER-PACKAGE": {

View file

@ -2785,7 +2785,6 @@ angular.module('forms').directive('editFormDirective', ['$rootScope', 'FormField
forceHelperSize: true,
forcePlaceholderSize: true,
update: function(e, ui) {
console.log(ui.item.sortable.model);
$scope.update(false, $scope.myform, false, false, function(err){
});
},
@ -3057,10 +3056,10 @@ angular.module('forms').directive('editFormDirective', ['$rootScope', 'FormField
if(fieldType === 'rating'){
newField.ratingOptions = {
steps: 1,
steps: 5,
shape: 'Heart'
};
newField.fieldValue = '0';
newField.fieldValue = 0;
}
if($scope.showAddOptions(newField)){

File diff suppressed because one or more lines are too long

View file

@ -88,7 +88,7 @@ angular.module('TellForm-Form.form_templates', []).run(['$templateCache', functi
$templateCache.put("form_modules/forms/base/views/directiveViews/field/radio.html",
"<div class=\"field row radio\" on-enter-or-tab-key=nextField() key-to-option field=field ng-if=\"field.fieldOptions.length > 0\"><div class=\"col-xs-12 field-title\" ng-style=\"{'color': design.colors.questionColor}\"><h3><small class=field-number>{{index+1}} <i class=\"fa fa-angle-double-right\" aria-hidden=true></i> </small>{{field.title}} <span class=required-error ng-show=!field.required>{{ 'OPTIONAL' | translate }}</span></h3><p class=col-xs-12><small>{{field.description}}</small></p></div><div class=\"col-xs-12 field-input\"><div ng-repeat=\"option in field.fieldOptions\" class=row-fluid><label class=\"btn col-md-4 col-xs-12 col-sm-12\" style=\"margin: 0.5em; padding-left:30px\" ng-class=\"{activeBtn: field.fieldValue == field.fieldOptions[$index].option_value}\"><div class=letter style=float:left>{{$index+1}}</div><input ng-style=\"{'color': design.colors.answerColor, 'border-color': design.colors.answerColor}\" type=radio class=focusOn ng-focus=\"setActiveField(field._id, index, true)\" value={{option.option_value}} ng-model=field.fieldValue ng-model-options=\"{ debounce: 250 }\" ng-required=field.required ng-disabled=field.disabled ng-change=$root.nextField()> <span ng-bind=option.option_value></span></label></div></div></div><br>");
$templateCache.put("form_modules/forms/base/views/directiveViews/field/rating.html",
"<div class=\"textfield field row\" on-enter-or-tab-key=nextField()><div class=\"col-xs-12 field-title\" ng-style=\"{'color': design.colors.questionColor}\"><h3><small class=field-number>{{index+1}} <i class=\"fa fa-angle-double-right\" aria-hidden=true></i> </small>{{field.title}} <span class=required-error ng-show=!field.required>{{ 'OPTIONAL' | translate }}</span></h3><p class=col-xs-12><small>{{field.description}}</small></p></div><div class=\"col-xs-12 field-input\"><input-stars max={{field.ratingOptions.steps}} ng-init=\"field.fieldValue = 1\" on-click=nextField() on-star-click=nextField() icon-full={{field.ratingOptions.shape}} icon-base=\"fa fa-3x\" icon-empty={{field.ratingOptions.shape}} ng-model=field.fieldValue ng-model-options=\"{ debounce: 250 }\" ng-required=field.required ng-disabled=field.disabled on-enter-or-tab-key=nextField() on-tab-and-shift-key=prevField() ng-focus=\"setActiveField(field._id, index, true)\" class=\"angular-input-stars focusOn\"></input-stars></div></div>");
"<div class=\"textfield field row\" on-enter-or-tab-key=nextField()><div class=\"col-xs-12 field-title\" ng-style=\"{'color': design.colors.questionColor}\"><h3><small class=field-number>{{index+1}} <i class=\"fa fa-angle-double-right\" aria-hidden=true></i> </small>{{field.title}} <span class=required-error ng-show=!field.required>{{ 'OPTIONAL' | translate }}</span></h3><p class=col-xs-12><small>{{field.description}}</small></p></div><div class=\"col-xs-12 field-input\"><input-stars max={{field.ratingOptions.steps}} ng-init=\"field.fieldValue = 1\" on-shape-click=true on-star-click=nextField() icon-full={{field.ratingOptions.shape}} icon-base=\"fa fa-3x\" icon-empty={{field.ratingOptions.shape}} ng-model=field.fieldValue ng-model-options=\"{ debounce: 250 }\" ng-required=field.required ng-disabled=field.disabled on-enter-or-tab-key=nextField() on-tab-and-shift-key=prevField() ng-focus=\"setActiveField(field._id, index, true)\" class=\"angular-input-stars focusOn\"></input-stars></div></div>");
$templateCache.put("form_modules/forms/base/views/directiveViews/field/statement.html",
"<div class=\"statement field row\" on-enter-or-tab-key=nextField() on-tab-and-shift-key=prevField() ng-focus=\"setActiveField(field._id, index, true)\"><div class=\"row field-title field-title\"><div class=col-xs-1><i class=\"fa fa-quote-left fa-1\"></i></div><h2 class=\"text-left col-xs-9\">{{field.title}}</h2><p class=col-xs-12><small>{{field.description}}</small></p></div><div class=\"row field-title field-input\"><p class=col-xs-12 ng-if=field.description.length>{{field.description}}</p><br><div class=\"col-xs-offset-1 col-xs-11\"><button class=\"btn focusOn\" ng-style=\"{'font-size': '1.3em', 'background-color':design.colors.buttonColor, 'color':design.colors.buttonTextColor}\" ng-focused=\"setActiveField(field._id, index, true)\" ng-click=$root.nextField()>{{ 'CONTINUE' | translate }}</button></div></div></div>");
$templateCache.put("form_modules/forms/base/views/directiveViews/field/textarea.html",

File diff suppressed because one or more lines are too long

View file

@ -855,10 +855,10 @@ var m=!1,n=g();if(e){var t=n.onSelect||a.noop;n.onSelect=function(a,b){h.$apply(
a)});e.$render=function(){c.datepicker("setDate",e.$modelValue)}}c.data("datepicker")?(c.datepicker("option",n),c.datepicker("refresh")):(c.datepicker(n),c.on("$destroy",function(){c.datepicker("hide");c.datepicker("destroy")}));e&&e.$render()},!0)}}}]).directive("uiDateFormat",["uiDateConverter",function(a){return{require:"ngModel",link:function(f,h,c,b){var e=c.uiDateFormat;b.$formatters.unshift(function(b){return a.stringToDate(e,b)});b.$parsers.push(function(b){return a.dateToString(e,b)})}}}])})(angular);
angular.module("angular-input-stars",[]).service("FontAwesomeIcons",["$http","$q",function(a,f){this.get=function(){var k=f.defer();return a.get("https://raw.githubusercontent.com/FortAwesome/Font-Awesome/gh-pages/icons.yml").then(function(a){var c={iconMap:{},iconList:[],iconCategoryList:[]};a=jsyaml.load(a.data).icons;for(var b=0;b<a.length;b++){c.iconMap[a[b].name]=a[b].id;c.iconList.push(a[b].name);for(var e=0;e<a[b].categories.length;e++)c.iconCategoryList[a[b].categories[e]]||(c.iconCategoryList[a[b].categories[e]]=
[]),c.iconCategoryList[a[b].categories[e]].push(a[b].name)}k.resolve(c)},function(a){var c="Could not fetch FontAwesome Github Repo";a||(c=a.data||a);k.reject(c)}),k.promise}}]).filter("toFaIcon",["FontAwesomeIcons","$timeout",function(a,f){return function(a,f,c){var b={full:"",empty:""};a=0<=__indexOf.call(c.iconList,a)?(b.full="fa-"+c.iconMap[a],b.empty="fa-"+c.iconMap[a]+"-o","thumbs-up"==a||"thumbs-down"==a?b.empty="fa-"+c.iconMap[a].split("-")[0]+"-o-"+c.iconMap[a].split("-")[1]:"Smile Outlined"==
a&&(b.empty="fa-frown-o"),b):(console.error("Error no shape of type: "+a+" for rating input"),b);return f?a.empty:a.full}}]).directive("inputStars",["$rootScope","$filter","FontAwesomeIcons","$q",function(a,f,k,h){return{restrict:"EA",replace:!0,template:'<ul ng-class="listClass"><li ng-touch="paintStars($index)" ng-mouseenter="paintStars($index, true)" ng-mouseleave="unpaintStars($index, false)" ng-repeat="item in items track by $index"><i ng-class="getClass($index)" ng-click="setValue($index, $event)"></i></li></ul>',
a&&(b.empty="fa-frown-o"),b):(console.error("Error no shape of type: "+a+" for rating input"),b);return f?a.empty:a.full}}]).directive("inputStars",["$rootScope","$filter","FontAwesomeIcons","$q",function(a,f,k,h){return{restrict:"EA",replace:!0,template:'<ul ng-class="listClass"><li ng-init="paintStars(last_value)" ng-touch="paintStars($index)" ng-mouseenter="paintStars($index, true)" ng-mouseleave="unpaintStars($index, false)" ng-repeat="item in items track by $index"><i ng-class="getClass($index)" ng-click="setValue($index, $event)"></i></li></ul>',
require:"ngModel",scope:!0,link:function(a,b,e,g){var c,m,n,t;(function(){var a=h.defer();return k.get().then(function(b){a.resolve(b)},function(b){a.reject(Error("toShapeIcon Error: "+b))}),a.promise})().then(function(h){a.items=Array(+e.max);c=f("toFaIcon")(e.iconEmpty,!0,h)||e.iconEmpty||"fa-stars-o";m=e.iconHover||"angular-input-stars-hover";n=f("toFaIcon")(e.iconFull,!1,h)||e.iconEmpty||"fa-stars";t=e.iconBase||"fa fa-fw";a.listClass=e.listClass||"angular-input-stars";a.readonly=void 0!==e.readonly;
!0;e.$observe("max",function(b){a.items=Array(+b)});e.$observe("iconEmpty",function(a){c=f("toFaIcon")(a,!0,h)||a||"fa-stars-o"});e.$observe("iconFull",function(a){n=f("toFaIcon")(a,!1,h)||a||"fa-stars"});g.$render=function(){a.last_value=g.$viewValue||0};a.getClass=function(b){return b>=a.last_value?t+" "+c:t+" "+n+" active "};a.unpaintStars=function(b,c){a.paintStars(a.last_value-1,c)};a.paintStars=function(e,f){if(!a.readonly){for(var g=b.find("li").find("i"),h=0;h<g.length;h++){var k=angular.element(g[h]);
e>=h?(k.removeClass(c),k.addClass(n),k.addClass("active"),k.addClass(m)):(k.removeClass(n),k.removeClass("active"),k.removeClass(m),k.addClass(c))}!f&&g.removeClass(m)}};a.setValue=function(b,c){a.readonly||(c.target.getBoundingClientRect(),a.last_value=b+1,g.$setViewValue(a.last_value),e.onShapeClick&&a.$eval(e.onStarClick))}},function(a){console.error("angular-input-stars.js | "+a.message||a)})}}}]);
!0;e.$observe("max",function(b){a.items=Array(+b)});e.$observe("iconEmpty",function(a){c=f("toFaIcon")(a,!0,h)||a||"fa-stars-o"});e.$observe("iconFull",function(a){n=f("toFaIcon")(a,!1,h)||a||"fa-stars"});g.$render=function(){a.last_value=g.$viewValue||0};a.getClass=function(b){return b>=a.last_value?t+" "+c:t+" "+n+" active "};a.unpaintStars=function(b,c){0!==a.last_value&&a.paintStars(a.last_value-1,c)};a.paintStars=function(e,f){if(!a.readonly){for(var g=b.find("li").find("i"),h=0;h<g.length;h++){var k=
angular.element(g[h]);e>=h?(k.removeClass(c),k.addClass(n),k.addClass("active"),k.addClass(m)):(k.removeClass(n),k.removeClass("active"),k.removeClass(m),k.addClass(c))}!f&&g.removeClass(m)}};a.setValue=function(b,c){a.readonly||(c.target.getBoundingClientRect(),a.last_value=b+1,g.$setViewValue(a.last_value),e.onShapeClick&&a.$eval(e.onStarClick))}},function(a){console.error("angular-input-stars.js | "+a.message||a)})}}}]);
!function(a){var f=function(a,b){var c=Error(a+" at character "+b);throw c.index=b,c.description=a,c;},k={"-":!0,"!":!0,"~":!0,"+":!0},h={"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10},c=function(a){var b,c=0,e;for(e in a)(b=e.length)>c&&a.hasOwnProperty(e)&&(c=b);return c},b=c(k),e=c(h),g={"true":!0,"false":!1,"null":null},r=function(a,b,c){return{type:"||"===a||"&&"===a?"LogicalExpression":"BinaryExpression",
operator:a,left:b,right:c}},m=function(a){return 48<=a&&57>=a},n=function(a){return 36===a||95===a||65<=a&&90>=a||97<=a&&122>=a||128<=a&&!h[String.fromCharCode(a)]},t=function(a){for(var c,q,t=0,x=a.charAt,F=a.charCodeAt,p=function(b){return x.call(a,b)},u=function(b){return F.call(a,b)},I=a.length,J=function(){for(var a=u(t);32===a||9===a;)a=u(++t)},E=function(){var a,b,c;var e,g,k,m,n;if(e=N(),g=G(),g){m={value:g,prec:h[g]||0};(n=N())||f("Expected expression after "+g,t);for(c=[e,m,n];(g=G())&&
(k=h[g]||0,0!==k);){for(m={value:g,prec:k};2<c.length&&k<=c[c.length-2].prec;)n=c.pop(),g=c.pop().value,e=c.pop(),e=r(g,e,n),c.push(e);(e=N())||f("Expected expression after "+g,t);c.push(m,e)}g=c.length-1;for(e=c[g];1<g;)e=r(c[g-1].value,c[g-2],e),g-=2}c=e;return J(),63!==u(t)?c:(t++,a=E(),a||f("Expected expression",t),J(),58===u(t)?(t++,b=E(),b||f("Expected expression",t),{type:"ConditionalExpression",test:c,consequent:a,alternate:b}):void f("Expected :",t))},G=function(){J();for(var b=a.substr(t,

View file

@ -15517,7 +15517,7 @@ function(a) {
}, a.getClass = function(b) {
return b >= a.last_value ? h.iconBase + " " + h.emptyIcon : h.iconBase + " " + h.fullIcon + " active ";
}, a.unpaintStars = function(b, c) {
a.paintStars(a.last_value - 1, c);
0 !== a.last_value && a.paintStars(a.last_value - 1, c);
}, a.paintStars = function(b, c) {
if (!a.readonly) {
for (var d = e.find("li").find("i"), f = 0; f < d.length; f++) {
@ -15542,7 +15542,7 @@ function(a) {
var f = {
restrict: "EA",
replace: !0,
template: '<ul ng-class="listClass"><li ng-touch="paintStars($index)" ng-mouseenter="paintStars($index, true)" ng-mouseleave="unpaintStars($index, false)" ng-repeat="item in items track by $index"><i ng-class="getClass($index)" ng-click="setValue($index, $event)"></i></li></ul>',
template: '<ul ng-class="listClass"><li ng-init="paintStars(last_value)" ng-touch="paintStars($index)" ng-mouseenter="paintStars($index, true)" ng-mouseleave="unpaintStars($index, false)" ng-repeat="item in items track by $index"><i ng-class="getClass($index)" ng-click="setValue($index, $event)"></i></li></ul>',
require: "ngModel",
scope: !0,
link: e

View file

@ -23,7 +23,6 @@ angular.module('forms').directive('editFormDirective', ['$rootScope', 'FormField
forceHelperSize: true,
forcePlaceholderSize: true,
update: function(e, ui) {
console.log(ui.item.sortable.model);
$scope.update(false, $scope.myform, false, false, function(err){
});
},
@ -295,10 +294,10 @@ angular.module('forms').directive('editFormDirective', ['$rootScope', 'FormField
if(fieldType === 'rating'){
newField.ratingOptions = {
steps: 1,
steps: 5,
shape: 'Heart'
};
newField.fieldValue = '0';
newField.fieldValue = 0;
}
if($scope.showAddOptions(newField)){