diff --git a/dist/ng-inline-edit.css b/dist/ng-inline-edit.css index 73a5670..c36e076 100644 --- a/dist/ng-inline-edit.css +++ b/dist/ng-inline-edit.css @@ -1,5 +1,5 @@ /** - * ng-inline-edit v0.6.0 (http://tamerayd.in/ng-inline-edit) + * ng-inline-edit v0.7.1 (http://tamerayd.in/ng-inline-edit) * Copyright 2015 Tamer Aydin (http://tamerayd.in) * Licensed under MIT */ diff --git a/dist/ng-inline-edit.js b/dist/ng-inline-edit.js index 96409b1..e690c68 100644 --- a/dist/ng-inline-edit.js +++ b/dist/ng-inline-edit.js @@ -1,5 +1,5 @@ /** - * ng-inline-edit v0.6.0 (http://tamerayd.in/ng-inline-edit) + * ng-inline-edit v0.7.1 (http://tamerayd.in/ng-inline-edit) * Copyright 2015 Tamer Aydin (http://tamerayd.in) * Licensed under MIT */ @@ -166,6 +166,7 @@ link: function(scope, element, attrs) { scope.model = scope.$parent.$eval(attrs.inlineEdit); scope.isInputTextarea = attrs.hasOwnProperty('inlineEditTextarea'); + scope.isNumber = isNumber; var onBlurBehavior = attrs.hasOwnProperty('inlineEditOnBlur') ? attrs.inlineEditOnBlur : InlineEditConfig.onBlur; @@ -199,7 +200,8 @@ 'ng-class="{\'ng-inline-edit__text--placeholder\': !model}" ' + (attrs.hasOwnProperty('inlineEditOnClick') || InlineEditConfig.editOnClick ? 'ng-click="editText()" ' : '') + - 'ng-if="!editMode">{{(model || placeholder)' + + 'ng-if="!editMode">{{' + + (scope.isNumber(scope.model) || scope.model ? 'model' : 'placeholder') + (attrs.hasOwnProperty('inlineEditFilter') ? ' | ' + attrs.inlineEditFilter : '') + '}}')); @@ -256,6 +258,10 @@ attrs.$observe('inlineEditPlaceholder', function(placeholder) { scope.placeholder = placeholder; }); + + function isNumber(value) { + return !isNaN(parseFloat(value)) && isFinite(value); + } } }; } diff --git a/dist/ng-inline-edit.min.css b/dist/ng-inline-edit.min.css index f84e67a..fc29d20 100644 --- a/dist/ng-inline-edit.min.css +++ b/dist/ng-inline-edit.min.css @@ -1,5 +1,5 @@ /** - * ng-inline-edit v0.6.0 (http://tamerayd.in/ng-inline-edit) + * ng-inline-edit v0.7.1 (http://tamerayd.in/ng-inline-edit) * Copyright 2015 Tamer Aydin (http://tamerayd.in) * Licensed under MIT */ diff --git a/dist/ng-inline-edit.min.js b/dist/ng-inline-edit.min.js index fe1d4c8..1447720 100644 --- a/dist/ng-inline-edit.min.js +++ b/dist/ng-inline-edit.min.js @@ -1,6 +1,6 @@ /** - * ng-inline-edit v0.6.0 (http://tamerayd.in/ng-inline-edit) + * ng-inline-edit v0.7.1 (http://tamerayd.in/ng-inline-edit) * Copyright 2015 Tamer Aydin (http://tamerayd.in) * Licensed under MIT */ -!function(n,i,e){"use strict";i.module("angularInlineEdit.providers",[]).value("InlineEditConfig",{btnEdit:"Edit",btnSave:"",btnCancel:"",editOnClick:!1,onBlur:null}).constant("InlineEditConstants",{CANCEL:"cancel",SAVE:"save"})}(window,window.angular),function(n,i,e){"use strict";i.module("angularInlineEdit.controllers",[]).controller("InlineEditController",["$scope","$document","$timeout",function(n,i,e){n.placeholder="",n.validationError=!1,n.validating=!1,n.isOnBlurBehaviorValid=!1,n.cancelOnBlur=!1,n.editMode=!1,n.inputValue="",n.editText=function(t){n.editMode=!0,n.inputValue="string"==typeof t?t:n.model,e(function(){n.editInput[0].focus(),n.isOnBlurBehaviorValid&&i.bind("click",n.onDocumentClick)},0)},n.applyText=function(t,l){function a(){n.model=r,n.callback({newValue:r}),n.editMode=!1}function d(){n.validationError=!0,e(function(){n.editText(r)},0)}function o(i){n.validating=!1,i&&l&&n.$apply()}var r=n.inputValue;if(n.validationError=!1,t||n.model===r)n.editMode=!1,l&&n.$apply();else{n.validating=!0,l&&n.$apply();var c=n.validate({newValue:n.inputValue});c&&c.then?c.then(a)["catch"](d)["finally"](o):c||"undefined"==typeof c?(a(),o(!0)):(d(),o(!0))}n.isOnBlurBehaviorValid&&i.unbind("click",n.onDocumentClick)},n.onInputKeyup=function(i){if(!n.validating)switch(i.keyCode){case 13:if(n.isInputTextarea)return;n.applyText(!1,!1);break;case 27:n.applyText(!0,!1)}},n.onDocumentClick=function(i){n.validating||i.target!==n.editInput[0]&&n.applyText(n.cancelOnBlur,!0)}}])}(window,window.angular),function(n,i,e){"use strict";i.module("angularInlineEdit.directives",["angularInlineEdit.providers","angularInlineEdit.controllers"]).directive("inlineEdit",["$compile","InlineEditConfig","InlineEditConstants",function(n,e,t){return{restrict:"A",controller:"InlineEditController",scope:{model:"=inlineEdit",callback:"&inlineEditCallback",validate:"&inlineEditValidation"},link:function(l,a,d){l.model=l.$parent.$eval(d.inlineEdit),l.isInputTextarea=d.hasOwnProperty("inlineEditTextarea");var o=d.hasOwnProperty("inlineEditOnBlur")?d.inlineEditOnBlur:e.onBlur;(o===t.CANCEL||o===t.SAVE)&&(l.isOnBlurBehaviorValid=!0,l.cancelOnBlur=o===t.CANCEL);var r=i.element("
"),c=i.element((l.isInputTextarea?"