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?"
'),u=i.element('
');u.append(i.element('
{{(model || placeholder)'+(d.hasOwnProperty("inlineEditFilter")?" | "+d.inlineEditFilter:"")+"}}"));var p=d.hasOwnProperty("inlineEditBtnEdit")?d.inlineEditBtnEdit:e.btnEdit;p&&u.append(i.element('
'+p+""));var s=d.hasOwnProperty("inlineEditBtnSave")?d.inlineEditBtnSave:e.btnSave;s&&u.append(i.element('
'+s+""));var g=d.hasOwnProperty("inlineEditBtnCancel")?d.inlineEditBtnCancel:e.btnCancel;g&&u.append(i.element('
'+g+"")),r.append(c).append(u),a.append(r),l.editInput=c,d.$observe("inlineEdit",function(i){l.model=l.$parent.$eval(i),n(a.contents())(l)}),d.$observe("inlineEditPlaceholder",function(n){l.placeholder=n})}}}])}(window,window.angular),function(n,i,e){"use strict";i.module("angularInlineEdit",["angularInlineEdit.providers","angularInlineEdit.controllers","angularInlineEdit.directives"])}(window,window.angular);
\ No newline at end of file
+!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){function o(n){return!isNaN(parseFloat(n))&&isFinite(n)}l.model=l.$parent.$eval(d.inlineEdit),l.isInputTextarea=d.hasOwnProperty("inlineEditTextarea"),l.isNumber=o;var r=d.hasOwnProperty("inlineEditOnBlur")?d.inlineEditOnBlur:e.onBlur;(r===t.CANCEL||r===t.SAVE)&&(l.isOnBlurBehaviorValid=!0,l.cancelOnBlur=r===t.CANCEL);var c=i.element("
"),u=i.element((l.isInputTextarea?"
'),s=i.element('
');s.append(i.element('
{{'+(l.isNumber(l.model)||l.model?"model":"placeholder")+(d.hasOwnProperty("inlineEditFilter")?" | "+d.inlineEditFilter:"")+"}}"));var p=d.hasOwnProperty("inlineEditBtnEdit")?d.inlineEditBtnEdit:e.btnEdit;p&&s.append(i.element('
'+p+""));var g=d.hasOwnProperty("inlineEditBtnSave")?d.inlineEditBtnSave:e.btnSave;g&&s.append(i.element('
'+g+""));var v=d.hasOwnProperty("inlineEditBtnCancel")?d.inlineEditBtnCancel:e.btnCancel;v&&s.append(i.element('
'+v+"")),c.append(u).append(s),a.append(c),l.editInput=u,d.$observe("inlineEdit",function(i){l.model=l.$parent.$eval(i),n(a.contents())(l)}),d.$observe("inlineEditPlaceholder",function(n){l.placeholder=n})}}}])}(window,window.angular),function(n,i,e){"use strict";i.module("angularInlineEdit",["angularInlineEdit.providers","angularInlineEdit.controllers","angularInlineEdit.directives"])}(window,window.angular);
\ No newline at end of file
diff --git a/package.json b/package.json
index 12debc6..6a8ed53 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "ng-inline-edit",
"description": "Simple inline editing for HTML elements",
- "version": "0.7.0",
+ "version": "0.7.1",
"main": "dist/ng-inline-edit.js",
"keywords": [
"angular",
diff --git a/src/scripts/directives.js b/src/scripts/directives.js
index fd75dc4..3e02ac4 100644
--- a/src/scripts/directives.js
+++ b/src/scripts/directives.js
@@ -19,6 +19,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;
@@ -52,7 +53,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 : '') +
'}}'));
@@ -109,6 +111,10 @@
attrs.$observe('inlineEditPlaceholder', function(placeholder) {
scope.placeholder = placeholder;
});
+
+ function isNumber(value) {
+ return !isNaN(parseFloat(value)) && isFinite(value);
+ }
}
};
}