diff options
author | brantje <brantje@gmail.com> | 2016-10-07 13:09:54 +0300 |
---|---|---|
committer | brantje <brantje@gmail.com> | 2016-10-07 13:09:54 +0300 |
commit | 5ddfd200d9fdfe3b4c3534110c209b3cdfe65a9c (patch) | |
tree | eb4fa2603eba54f256396ca0ae75db507cd412c5 /js/app/directives | |
parent | fc9a41d119d0bdbcd41728bb3d7348a037f0978f (diff) |
Auto detect urls
Diffstat (limited to 'js/app/directives')
-rw-r--r-- | js/app/directives/credentialfield.js | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/js/app/directives/credentialfield.js b/js/app/directives/credentialfield.js index 02306e7c..1271c9b5 100644 --- a/js/app/directives/credentialfield.js +++ b/js/app/directives/credentialfield.js @@ -18,18 +18,29 @@ angular.module('passmanApp') replace: 'true', template: "" + '<span class="credential_field">' + - '<div class="value">' + + '<div class="value" ng-class="{\'ellipsis\': isLink}">' + '<span ng-repeat="n in [] | range:value.length" ng-if="!valueVisible">*</span>' + '<span ng-if="valueVisible">{{value}}</span>' + '</div>' + '<div class="tools">' + '<div class="cell" ng-if="toggle" tooltip="\'Toggle visibility\'" ng-click="toggleVisibility()"><i class="fa" ng-class="{\'fa-eye\': !valueVisible, \'fa-eye-slash\': valueVisible }"></i></div>' + + '<div class="cell" ng-if="isLink"><a ng-href="{{value}}" target="_blank"><i tooltip="\'Open in new window\'" class="link fa fa-external-link"></i></a></div>' + '<div class="cell" ngclipboard-success="onSuccess(e);" ngclipboard-error="onError(e);" ngclipboard data-clipboard-text="{{value}}"><i tooltip="copy_msg" class="fa fa-clipboard"></i></div>' + '</div></span>', link: function (scope, elem, attrs, modelCtrl) { + var expression = /(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})/gi; + var regex = new RegExp(expression); + scope.$watch("value", function () { - if (scope.secret) { - scope.valueVisible = false; + if(scope.value) { + if (scope.secret) { + scope.valueVisible = false; + } + if (scope.value.match(regex)) { + console.log('is link') + scope.isLink = true; + + } } }); if (!scope.toggle) { |