47 lines
1.7 KiB
JavaScript
47 lines
1.7 KiB
JavaScript
angular.module('kityminderEditor')
|
|
.controller('hyperlink.ctrl', function ($scope, $modalInstance, link) {
|
|
|
|
var urlRegex = '^(?!mailto:)(?:(?:http|https|ftp)://)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$';
|
|
$scope.R_URL = new RegExp(urlRegex, 'i');
|
|
|
|
$scope.url = link.url || '';
|
|
$scope.title = link.title || '';
|
|
|
|
setTimeout(function() {
|
|
var $linkUrl = $('#link-url');
|
|
$linkUrl.focus();
|
|
$linkUrl[0].setSelectionRange(0, $scope.url.length);
|
|
}, 30);
|
|
|
|
$scope.shortCut = function(e) {
|
|
e.stopPropagation();
|
|
|
|
if (e.keyCode == 13) {
|
|
$scope.ok();
|
|
} else if (e.keyCode == 27) {
|
|
$scope.cancel();
|
|
}
|
|
};
|
|
|
|
$scope.ok = function () {
|
|
if($scope.R_URL.test($scope.url)) {
|
|
$modalInstance.close({
|
|
url: $scope.url,
|
|
title: $scope.title
|
|
});
|
|
} else {
|
|
$scope.urlPassed = false;
|
|
|
|
var $linkUrl = $('#link-url');
|
|
$linkUrl.focus();
|
|
$linkUrl[0].setSelectionRange(0, $scope.url.length);
|
|
}
|
|
editor.receiver.selectAll();
|
|
};
|
|
|
|
$scope.cancel = function () {
|
|
$modalInstance.dismiss('cancel');
|
|
editor.receiver.selectAll();
|
|
};
|
|
|
|
}); |