mirror of
https://github.com/zero-peak/ZeroOmega.git
synced 2025-03-13 00:28:12 -04:00
Improve condition form in popup for IP literals. Fix #301.
This commit is contained in:
parent
13cadab9fa
commit
67bd3fc7f8
@ -263,19 +263,42 @@ module.controller 'PopupCtrl', ($scope, $window, $q, omegaTarget,
|
||||
omegaTarget.state('currentProfileCanAddRule')
|
||||
).then (value) ->
|
||||
$scope.currentProfileCanAddRule = value
|
||||
if $scope.currentProfileCanAddRule
|
||||
currentDomain = $scope.currentDomain
|
||||
currentDomainEscaped = currentDomain.replace('.', '\\.')
|
||||
|
||||
$scope.prepareConditionForm = ->
|
||||
currentDomain = $scope.currentDomain
|
||||
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 =
|
||||
'HostWildcardCondition': '*.' + currentDomain
|
||||
'HostRegexCondition': '(^|\\.)' + currentDomainEscaped + '$'
|
||||
'UrlWildcardCondition': '*://*.' + currentDomain + '/*'
|
||||
'UrlRegexCondition': '://([^/.]+\\.)*' + currentDomainEscaped + '/'
|
||||
'UrlRegexCondition':
|
||||
'://([^/.]+\\.)*' + currentDomainEscaped + '(:\\d+)?/'
|
||||
'KeywordCondition': currentDomain
|
||||
$scope.rule =
|
||||
condition:
|
||||
conditionType: 'HostWildcardCondition'
|
||||
pattern: conditionSuggestion['HostWildcardCondition']
|
||||
profileName: preselectedProfileNameForCondition
|
||||
$scope.$watch 'rule.condition.conditionType', (type) ->
|
||||
$scope.rule.condition.pattern = conditionSuggestion[type]
|
||||
|
||||
$scope.rule =
|
||||
condition:
|
||||
conditionType: 'HostWildcardCondition'
|
||||
pattern: conditionSuggestion['HostWildcardCondition']
|
||||
profileName: preselectedProfileNameForCondition
|
||||
$scope.$watch 'rule.condition.conditionType', (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')
|
||||
li.divider(ng-show='!!currentDomain && validResultProfiles.length')
|
||||
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 {{'popup_addCondition' | tr}}
|
||||
|
Loading…
Reference in New Issue
Block a user