mirror of
https://github.com/zero-peak/ZeroOmega.git
synced 2025-03-13 08:28:13 -04:00
Improve condition form in popup for IP literals. Fix #301.
This commit is contained in:
parent
13cadab9fa
commit
67bd3fc7f8
@ -263,15 +263,36 @@ module.controller 'PopupCtrl', ($scope, $window, $q, omegaTarget,
|
|||||||
omegaTarget.state('currentProfileCanAddRule')
|
omegaTarget.state('currentProfileCanAddRule')
|
||||||
).then (value) ->
|
).then (value) ->
|
||||||
$scope.currentProfileCanAddRule = value
|
$scope.currentProfileCanAddRule = value
|
||||||
if $scope.currentProfileCanAddRule
|
|
||||||
|
$scope.prepareConditionForm = ->
|
||||||
currentDomain = $scope.currentDomain
|
currentDomain = $scope.currentDomain
|
||||||
currentDomainEscaped = currentDomain.replace('.', '\\.')
|
currentDomainEscaped = currentDomain.replace(/\./g, '\\.')
|
||||||
|
domainLooksLikeIp = false
|
||||||
|
if currentDomain.indexOf(':') >= 0
|
||||||
|
domainLooksLikeIp = true
|
||||||
|
if currentDomain[0] != '['
|
||||||
|
currentDomain = '[' + currentDomain + ']'
|
||||||
|
currentDomainEscaped = currentDomain.replace(/\./g, '\\.')
|
||||||
|
.replace(/\[/g, '\\[').replace(/\]/g, '\\]')
|
||||||
|
else if currentDomain[currentDomain.length - 1] >= 0
|
||||||
|
domainLooksLikeIp = true
|
||||||
|
|
||||||
|
if domainLooksLikeIp
|
||||||
|
conditionSuggestion =
|
||||||
|
'HostWildcardCondition': currentDomain
|
||||||
|
'HostRegexCondition': '^' + currentDomainEscaped + '$'
|
||||||
|
'UrlWildcardCondition': '*://' + currentDomain + '/*'
|
||||||
|
'UrlRegexCondition': '://' + currentDomainEscaped + '(:\\d+)?/'
|
||||||
|
'KeywordCondition': currentDomain
|
||||||
|
else
|
||||||
conditionSuggestion =
|
conditionSuggestion =
|
||||||
'HostWildcardCondition': '*.' + currentDomain
|
'HostWildcardCondition': '*.' + currentDomain
|
||||||
'HostRegexCondition': '(^|\\.)' + currentDomainEscaped + '$'
|
'HostRegexCondition': '(^|\\.)' + currentDomainEscaped + '$'
|
||||||
'UrlWildcardCondition': '*://*.' + currentDomain + '/*'
|
'UrlWildcardCondition': '*://*.' + currentDomain + '/*'
|
||||||
'UrlRegexCondition': '://([^/.]+\\.)*' + currentDomainEscaped + '/'
|
'UrlRegexCondition':
|
||||||
|
'://([^/.]+\\.)*' + currentDomainEscaped + '(:\\d+)?/'
|
||||||
'KeywordCondition': currentDomain
|
'KeywordCondition': currentDomain
|
||||||
|
|
||||||
$scope.rule =
|
$scope.rule =
|
||||||
condition:
|
condition:
|
||||||
conditionType: 'HostWildcardCondition'
|
conditionType: 'HostWildcardCondition'
|
||||||
@ -279,3 +300,5 @@ module.controller 'PopupCtrl', ($scope, $window, $q, omegaTarget,
|
|||||||
profileName: preselectedProfileNameForCondition
|
profileName: preselectedProfileNameForCondition
|
||||||
$scope.$watch 'rule.condition.conditionType', (type) ->
|
$scope.$watch 'rule.condition.conditionType', (type) ->
|
||||||
$scope.rule.condition.pattern = conditionSuggestion[type]
|
$scope.rule.condition.pattern = conditionSuggestion[type]
|
||||||
|
|
||||||
|
$scope.showConditionForm = true
|
||||||
|
@ -59,7 +59,7 @@ html(lang='en' ng-app='omegaPopup' ng-controller='PopupCtrl' ng-csp)
|
|||||||
span(omega-profile-inline='p' options='availableProfiles' disp-name='dispNameFilter')
|
span(omega-profile-inline='p' options='availableProfiles' disp-name='dispNameFilter')
|
||||||
li.divider(ng-show='!!currentDomain && validResultProfiles.length')
|
li.divider(ng-show='!!currentDomain && validResultProfiles.length')
|
||||||
li(ng-show='!!currentProfileCanAddRule')
|
li(ng-show='!!currentProfileCanAddRule')
|
||||||
a(href='#' role='button' ng-click='showConditionForm = true' data-shortcut='addRule')
|
a(href='#' role='button' ng-click='prepareConditionForm()' data-shortcut='addRule')
|
||||||
span.glyphicon.glyphicon-plus
|
span.glyphicon.glyphicon-plus
|
||||||
= ' '
|
= ' '
|
||||||
span {{'popup_addCondition' | tr}}
|
span {{'popup_addCondition' | tr}}
|
||||||
|
Loading…
Reference in New Issue
Block a user