'use strict'; /** * @ngdoc directive * @name passmanApp.directive:passwordGen * @description * # passwordGen */ angular.module('passmanApp') .directive('credentialField', ['$timeout', function ($timeout) { return { scope: { value: '=value', secret: '=secret' }, restrict: 'A', replace: 'true', template: "" + '' + '
' + '*' + '{{value}}' + '
' + '
' + '
' + '
' + '
' + '
', 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.value) { if (scope.secret) { scope.valueVisible = false; } if (scope.value.match(regex)) { console.log('is link') scope.isLink = true; } } }); if (!scope.toggle) { if (scope.secret) { scope.toggle = true; } } scope.copy_msg = 'Copy to clipboard'; var timer; scope.onSuccess = function () { scope.copy_msg = 'Copied to clipboard!'; $timeout.cancel(timer); timer = $timeout(function () { scope.copy_msg = 'Copy to clipboard'; }, 5000) } scope.valueVisible = true; scope.toggleVisibility = function () { scope.valueVisible = !scope.valueVisible; }; } }; }]);