Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Z
zimbra-admin-api-js
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Public
zimbra-admin-api-js
Commits
d9b6094c
Commit
d9b6094c
authored
Aug 27, 2016
by
Juorder Gonzalez
Committed by
GitHub
Aug 27, 2016
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #275 from ZBoxApp/manager_performance
add pagination to antisapm section
parents
34619210
32f4ea47
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
153 additions
and
6 deletions
+153
-6
antispam.jsx
src/components/domain/antispam.jsx
+153
-6
No files found.
src/components/domain/antispam.jsx
View file @
d9b6094c
...
...
@@ -23,6 +23,7 @@ export default class AntiSpam extends React.Component {
this
.
domain
=
this
.
isStoreEnabled
?
DomainStore
.
getCurrent
()
:
this
.
props
.
data
;
this
.
blackList
=
[];
this
.
whiteList
=
[];
this
.
limit
=
10
;
if
(
this
.
domain
.
attrs
.
amavisBlacklistSender
)
{
this
.
blackList
=
Array
.
isArray
(
this
.
domain
.
attrs
.
amavisBlacklistSender
)
?
this
.
domain
.
attrs
.
amavisBlacklistSender
:
this
.
domain
.
attrs
.
amavisBlacklistSender
.
trim
().
split
(
' '
);
...
...
@@ -31,6 +32,42 @@ export default class AntiSpam extends React.Component {
if
(
this
.
domain
.
attrs
.
amavisWhitelistSender
)
{
this
.
whiteList
=
Array
.
isArray
(
this
.
domain
.
attrs
.
amavisWhitelistSender
)
?
this
.
domain
.
attrs
.
amavisWhitelistSender
:
this
.
domain
.
attrs
.
amavisWhitelistSender
.
trim
().
split
(
' '
);
}
this
.
state
=
{
whiteListPaginate
:
{
page
:
1
,
total
:
this
.
whiteList
.
length
,
offset
:
0
},
blackListPaginate
:
{
page
:
1
,
total
:
this
.
blackList
.
length
,
offset
:
0
}
};
}
onChangePage
(
target
,
value
)
{
const
paginator
=
this
.
state
[
`
${
target
}
ListPaginate`
];
let
{
page
}
=
paginator
;
page
+=
value
;
if
(
page
<
1
)
{
page
=
1
;
}
if
(
page
>
Math
.
ceil
(
paginator
.
total
/
this
.
limit
))
{
page
=
paginator
.
page
;
}
let
newState
=
{...
this
.
state
[
`
${
target
}
ListPaginate`
],
page
,
offset
:
((
page
-
1
)
*
this
.
limit
)
};
newState
=
{...
this
.
state
,
[
`
${
target
}
ListPaginate`
]:
{...
newState
}};
this
.
setState
(
newState
);
}
handleDelete
(
e
,
item
,
action
)
{
...
...
@@ -64,7 +101,7 @@ export default class AntiSpam extends React.Component {
handleSave
(
e
,
action
)
{
const
attrs
=
{};
const
isEmail
=
/^
(([^
<>()
\[\]\\
.,;:
\s
@
"
]
+
(\.[^
<>()
\[\]\\
.,;:
\s
@"
]
+
)
*
)
|
(
".+"
))
@
((\[[
0-9
]{1,3}\.[
0-9
]{1,3}\.[
0-9
]{1,3}\.[
0-9
]{1,3}
]
)
|
(([
a-zA-Z
\-
0-9
]
+
\.)
+
[
a-zA-Z
]{2,}))
$/
;
const
isEmail
=
/^
(([^
<>()
\[\]\\
.,;:
\s
@
'
]
+
(\.[^
<>()
\[\]\\
.,;:
\s
@'
]
+
)
*
)
|
(
'.+'
))
@
((\[[
0-9
]{1,3}\.[
0-9
]{1,3}\.[
0-9
]{1,3}\.[
0-9
]{1,3}
]
)
|
(([
a-zA-Z
\-
0-9
]
+
\.)
+
[
a-zA-Z
]{2,}))
$/
;
const
isDomain
=
/^
[
a-zA-Z0-9
][
a-zA-Z0-9-
]{1,61}[
a-zA-Z0-9
](?:\.[
a-zA-Z
]{2,})
+$/
;
const
invalidInput
=
/ñ/gi
;
const
target
=
action
===
'black'
?
'lista negra'
:
'lista blanca'
;
...
...
@@ -154,8 +191,26 @@ export default class AntiSpam extends React.Component {
this
.
whiteList
=
returns
;
}
const
paginator
=
this
.
state
[
`
${
action
}
ListPaginate`
];
const
total
=
this
[
`
${
action
}
List`
].
length
;
let
page
=
Math
.
ceil
(
total
/
this
.
limit
);
let
offset
=
paginator
.
offset
;
if
(
page
>
paginator
.
page
)
{
page
--
;
}
offset
=
((
page
-
1
)
*
this
.
limit
);
const
newState
=
{...
this
.
state
[
`
${
action
}
ListPaginate`
],
total
:
this
[
`
${
action
}
List`
].
length
||
0
,
page
,
offset
};
this
.
setState
({
update
:
tru
e
[
action
+
'ListPaginate'
]:
newStat
e
});
}).
catch
((
err
)
=>
{
EventStore
.
emitMessage
({
...
...
@@ -177,9 +232,15 @@ export default class AntiSpam extends React.Component {
render
()
{
let
whiteList
=
null
;
let
blackList
=
null
;
let
sliceList
=
null
;
let
whiteListControls
=
null
;
let
blackListControls
=
null
;
const
{
whiteListPaginate
,
blackListPaginate
}
=
this
.
state
;
if
(
this
.
blackList
&&
this
.
blackList
.
length
>
0
)
{
blackList
=
this
.
blackList
.
map
((
black
,
i
)
=>
{
sliceList
=
this
.
blackList
.
slice
(
blackListPaginate
.
offset
,
blackListPaginate
.
page
*
this
.
limit
);
blackList
=
sliceList
.
map
((
black
,
i
)
=>
{
return
(
<
tr
key=
{
`black-${i}`
}
...
...
@@ -203,6 +264,41 @@ export default class AntiSpam extends React.Component {
</
tr
>
);
});
if
(
blackListPaginate
.
total
>
this
.
limit
)
{
const
until
=
(
blackListPaginate
.
page
*
this
.
limit
)
<
blackListPaginate
.
total
?
blackListPaginate
.
page
*
this
.
limit
:
blackListPaginate
.
total
;
blackListControls
=
(
<
td
>
<
div
className=
'row'
>
<
div
className=
'col-xs-6'
>
<
span
>
{
`${blackListPaginate.offset + 1} - ${until} de ${blackListPaginate.total}`
}
</
span
>
</
div
>
<
div
className=
'col-xs-6'
>
<
div
className=
'text-right'
>
<
button
className=
{
'btn btn-info btn-sm'
}
onClick=
{
()
=>
{
this
.
onChangePage
(
'black'
,
-
1
);
}
}
>
Anterior
</
button
>
<
button
className=
{
'btn btn-info btn-sm'
}
onClick=
{
()
=>
{
this
.
onChangePage
(
'black'
,
1
);
}
}
>
Siguiente
</
button
>
</
div
>
</
div
>
</
div
>
</
td
>
);
}
}
else
{
blackList
=
(
<
tr
>
...
...
@@ -214,7 +310,9 @@ export default class AntiSpam extends React.Component {
}
if
(
this
.
whiteList
&&
this
.
whiteList
.
length
>
0
)
{
whiteList
=
this
.
whiteList
.
map
((
white
,
i
)
=>
{
sliceList
=
this
.
whiteList
.
slice
(
whiteListPaginate
.
offset
,
whiteListPaginate
.
page
*
this
.
limit
);
whiteList
=
sliceList
.
map
((
white
,
i
)
=>
{
return
(
<
tr
key=
{
`white-${i}`
}
...
...
@@ -238,6 +336,43 @@ export default class AntiSpam extends React.Component {
</
tr
>
);
});
if
(
whiteListPaginate
.
total
>
this
.
limit
)
{
const
until
=
(
whiteListPaginate
.
page
*
this
.
limit
)
<
whiteListPaginate
.
total
?
whiteListPaginate
.
page
*
this
.
limit
:
whiteListPaginate
.
total
;
whiteListControls
=
(
<
td
>
<
div
className=
'row'
>
<
div
className=
'col-xs-6'
>
<
span
>
{
`${whiteListPaginate.offset + 1} - ${until} de ${whiteListPaginate.total}`
}
</
span
>
</
div
>
<
div
className=
'col-xs-6'
>
<
div
className=
'text-right'
>
<
button
className=
{
'btn btn-info btn-sm'
}
onClick=
{
()
=>
{
this
.
onChangePage
(
'white'
,
-
1
);
}
}
>
Anterior
</
button
>
<
button
className=
{
'btn btn-info btn-sm'
}
onClick=
{
()
=>
{
this
.
onChangePage
(
'white'
,
1
);
}
}
>
Siguiente
</
button
>
</
div
>
</
div
>
</
div
>
</
td
>
);
}
}
else
{
whiteList
=
(
<
tr
>
...
...
@@ -297,7 +432,13 @@ export default class AntiSpam extends React.Component {
</
thead
>
<
tbody
>
{
whiteList
}
{
whiteList
}
{
whiteListControls
&&
(
<
tr
>
{
whiteListControls
}
</
tr
>
)
}
</
tbody
>
</
table
>
</
div
>
...
...
@@ -350,7 +491,13 @@ export default class AntiSpam extends React.Component {
</
thead
>
<
tbody
>
{
blackList
}
{
blackList
}
{
blackListControls
&&
(
<
tr
>
{
blackListControls
}
</
tr
>
)
}
</
tbody
>
</
table
>
</
div
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment