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
2b78d334
Commit
2b78d334
authored
Apr 11, 2016
by
Elias Nahum
Committed by
Juorder Antonio
May 27, 2016
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
recognize lockout accounts and apply pagination
parent
bd954f1d
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
72 additions
and
13 deletions
+72
-13
path.json
path.json
+1
-1
info_general_mailbox.jsx
src/components/mailbox/info_general_mailbox.jsx
+2
-1
mailbox.jsx
src/components/mailbox/mailbox.jsx
+45
-9
stats_mailbox.jsx
src/components/mailbox/stats_mailbox.jsx
+1
-1
client.jsx
src/utils/client.jsx
+5
-1
utils.jsx
src/utils/utils.jsx
+18
-0
No files found.
path.json
View file @
2b78d334
module.exports
=
{
"main"
:{
"js"
:
"/898860bundle.js"
}}
module.exports
=
{
"main"
:{
"js"
:
"/950474bundle.js"
}}
\ No newline at end of file
\ No newline at end of file
src/components/mailbox/info_general_mailbox.jsx
View file @
2b78d334
...
@@ -51,7 +51,7 @@ export default class BlockGeneralInfoMailbox extends React.Component {
...
@@ -51,7 +51,7 @@ export default class BlockGeneralInfoMailbox extends React.Component {
if
(
window
.
manager_config
.
plans
[
cosID
.
name
])
{
if
(
window
.
manager_config
.
plans
[
cosID
.
name
])
{
cosName
=
Utils
.
titleCase
(
cosID
.
name
);
cosName
=
Utils
.
titleCase
(
cosID
.
name
);
statusCos
=
'label btn-xs
margin-left
'
+
window
.
manager_config
.
plans
[
cosID
.
name
].
statusCos
;
statusCos
=
'label btn-xs '
+
window
.
manager_config
.
plans
[
cosID
.
name
].
statusCos
;
}
}
if
(
this
.
state
.
hasDomain
)
{
if
(
this
.
state
.
hasDomain
)
{
...
@@ -67,6 +67,7 @@ export default class BlockGeneralInfoMailbox extends React.Component {
...
@@ -67,6 +67,7 @@ export default class BlockGeneralInfoMailbox extends React.Component {
const
archive
=
attrs
.
zimbraArchiveAccount
;
const
archive
=
attrs
.
zimbraArchiveAccount
;
const
isAdminDelegated
=
attrs
.
zimbraIsDelegatedAdminAccount
===
'TRUE'
;
const
isAdminDelegated
=
attrs
.
zimbraIsDelegatedAdminAccount
===
'TRUE'
;
if
(
isAdminDelegated
)
{
if
(
isAdminDelegated
)
{
statusCos
+=
' margin-left'
;
AdminStatus
=
(
AdminStatus
=
(
<
StatusLabel
classes=
{
'label btn-xs btn-warning2'
}
>
<
StatusLabel
classes=
{
'label btn-xs btn-warning2'
}
>
{
'Administrador'
}
{
'Administrador'
}
...
...
src/components/mailbox/mailbox.jsx
View file @
2b78d334
...
@@ -51,7 +51,7 @@ export default class Mailboxes extends React.Component {
...
@@ -51,7 +51,7 @@ export default class Mailboxes extends React.Component {
this
.
optionStatus
=
{
this
.
optionStatus
=
{
active
:
'Active'
,
active
:
'Active'
,
locked
:
'Inactiva'
,
locked
:
'Inactiva'
,
lock
ed
out
:
'Bloqueada'
,
lockout
:
'Bloqueada'
,
closed
:
'Cerrada'
closed
:
'Cerrada'
};
};
this
.
optionPlans
=
window
.
manager_config
.
plans
;
this
.
optionPlans
=
window
.
manager_config
.
plans
;
...
@@ -187,6 +187,8 @@ export default class Mailboxes extends React.Component {
...
@@ -187,6 +187,8 @@ export default class Mailboxes extends React.Component {
}
}
getAccounts
(
domainName
,
maxResult
)
{
getAccounts
(
domainName
,
maxResult
)
{
//const promises = [];
const
attrs
=
{
const
attrs
=
{
maxResults
:
maxResult
maxResults
:
maxResult
};
};
...
@@ -202,6 +204,19 @@ export default class Mailboxes extends React.Component {
...
@@ -202,6 +204,19 @@ export default class Mailboxes extends React.Component {
this
.
domainName
=
domainName
;
this
.
domainName
=
domainName
;
}
}
/*const attrsForLockOut = Object.assign({}, attrs);
attrsForLockOut.query = 'zimbraAccountStatus=lockout';
attrsForLockOut.limit = 10;
attrsForLockOut.countOnly = true;
promises.push(Client.getAllAccountsByBatch(attrsForLockOut));
Client.batchRequest(promises, (exito) => {
console.log('exito', exito);
}, (err) => {
console.log('error', err);
});*/
new
Promise
((
resolve
,
reject
)
=>
{
new
Promise
((
resolve
,
reject
)
=>
{
if
(
domainName
)
{
if
(
domainName
)
{
const
hasMailboxForDomain
=
MailboxStore
.
getMailboxByDomainId
(
this
.
domainId
);
const
hasMailboxForDomain
=
MailboxStore
.
getMailboxByDomainId
(
this
.
domainId
);
...
@@ -211,7 +226,9 @@ export default class Mailboxes extends React.Component {
...
@@ -211,7 +226,9 @@ export default class Mailboxes extends React.Component {
}
}
return
Client
.
getAllAccounts
(
attrs
,
(
success
)
=>
{
return
Client
.
getAllAccounts
(
attrs
,
(
success
)
=>
{
MailboxStore
.
setMailboxesByDomain
(
this
.
domainId
,
success
);
const
data
=
Utils
.
extractLockOuts
(
success
);
MailboxStore
.
setMailboxesByDomain
(
this
.
domainId
,
data
);
return
resolve
(
success
);
return
resolve
(
success
);
},
(
error
)
=>
{
},
(
error
)
=>
{
return
reject
(
error
);
return
reject
(
error
);
...
@@ -223,8 +240,10 @@ export default class Mailboxes extends React.Component {
...
@@ -223,8 +240,10 @@ export default class Mailboxes extends React.Component {
}
}
return
Client
.
getAllAccounts
(
attrs
,
(
success
)
=>
{
return
Client
.
getAllAccounts
(
attrs
,
(
success
)
=>
{
MailboxStore
.
setMailboxes
(
success
);
const
data
=
Utils
.
extractLockOuts
(
success
);
return
resolve
(
success
);
MailboxStore
.
setMailboxes
(
data
);
return
resolve
(
data
);
},
(
error
)
=>
{
},
(
error
)
=>
{
return
reject
(
error
);
return
reject
(
error
);
});
});
...
@@ -238,9 +257,9 @@ export default class Mailboxes extends React.Component {
...
@@ -238,9 +257,9 @@ export default class Mailboxes extends React.Component {
const
tables
=
this
.
buildTableFromData
(
items
,
[
'Todas'
,
'Bloqueadas'
]);
const
tables
=
this
.
buildTableFromData
(
items
,
[
'Todas'
,
'Bloqueadas'
]);
if
(
tables
.
lockedAler
t
)
{
if
(
items
.
lockou
t
)
{
GlobalActions
.
emitMessage
({
GlobalActions
.
emitMessage
({
error
:
tables
.
lockedAlert
.
message
,
error
:
`
${
items
.
lockout
.
length
}
casillas bloqueadas.`
,
typeError
:
messageType
.
LOCKED
typeError
:
messageType
.
LOCKED
});
});
}
}
...
@@ -463,12 +482,22 @@ export default class Mailboxes extends React.Component {
...
@@ -463,12 +482,22 @@ export default class Mailboxes extends React.Component {
let
lockedAccounts
=
[];
let
lockedAccounts
=
[];
const
tabs
=
{};
const
tabs
=
{};
let
partialAccounts
=
accounts
;
let
partialAccounts
=
accounts
;
let
partialLockOut
=
data
.
lockout
?
data
.
lockout
:
0
;
const
limitLockout
=
data
.
lockout
?
data
.
lockout
.
length
:
0
;
const
hasPageLockOut
=
limitLockout
>
Constants
.
QueryOptions
.
DEFAULT_LIMIT
;
if
(
hasPage
)
{
if
(
hasPage
)
{
partialAccounts
=
accounts
.
slice
(
this
.
state
.
offset
,
(
this
.
state
.
page
*
Constants
.
QueryOptions
.
DEFAULT_LIMIT
));
partialAccounts
=
accounts
.
slice
(
this
.
state
.
offset
,
(
this
.
state
.
page
*
Constants
.
QueryOptions
.
DEFAULT_LIMIT
));
limit
=
partialAccounts
.
length
;
limit
=
partialAccounts
.
length
;
}
}
if
(
hasPageLockOut
)
{
partialLockOut
=
partialLockOut
.
slice
(
this
.
state
.
offset
,
(
this
.
state
.
page
*
Constants
.
QueryOptions
.
DEFAULT_LIMIT
));
partialLockOut
=
partialLockOut
.
map
((
lockout
)
=>
{
return
this
.
buildRow
(
lockout
,
'label label-locked m-r'
,
'Bloqueada'
);
});
}
const
response
=
{};
const
response
=
{};
for
(
let
i
=
0
;
i
<
limit
;
i
++
)
{
for
(
let
i
=
0
;
i
<
limit
;
i
++
)
{
...
@@ -490,7 +519,7 @@ export default class Mailboxes extends React.Component {
...
@@ -490,7 +519,7 @@ export default class Mailboxes extends React.Component {
}
}
}
}
const
all
=
`
${
arrayTabNames
.
shift
()}
(
${
totalAccounts
}
)`
;
const
all
=
`
${
arrayTabNames
.
shift
()}
(
${
totalAccounts
}
)`
;
const
locked
=
`
${
arrayTabNames
.
shift
()}
(
${
l
ockedAccounts
.
length
}
)`
;
const
locked
=
`
${
arrayTabNames
.
shift
()}
(
${
l
imitLockout
}
)`
;
// create structure html for all accountsç
// create structure html for all accountsç
let
exportBtn
=
null
;
let
exportBtn
=
null
;
...
@@ -537,7 +566,6 @@ export default class Mailboxes extends React.Component {
...
@@ -537,7 +566,6 @@ export default class Mailboxes extends React.Component {
];
];
let
activePagination
=
null
;
let
activePagination
=
null
;
let
lockedPagination
=
null
;
if
(
hasPage
)
{
if
(
hasPage
)
{
const
totalPage
=
Math
.
ceil
(
totalAccounts
/
QueryOptions
.
DEFAULT_LIMIT
);
const
totalPage
=
Math
.
ceil
(
totalAccounts
/
QueryOptions
.
DEFAULT_LIMIT
);
activePagination
=
{
activePagination
=
{
...
@@ -545,6 +573,14 @@ export default class Mailboxes extends React.Component {
...
@@ -545,6 +573,14 @@ export default class Mailboxes extends React.Component {
};
};
}
}
let
lockedPagination
=
null
;
if
(
hasPageLockOut
)
{
const
totalPageLockOut
=
Math
.
ceil
(
limitLockout
/
QueryOptions
.
DEFAULT_LIMIT
);
lockedPagination
=
{
total
:
totalPageLockOut
};
}
const
status
=
Object
.
keys
(
this
.
optionStatus
).
map
((
item
,
i
)
=>
{
const
status
=
Object
.
keys
(
this
.
optionStatus
).
map
((
item
,
i
)
=>
{
return
(
return
(
<
option
<
option
...
@@ -601,7 +637,7 @@ export default class Mailboxes extends React.Component {
...
@@ -601,7 +637,7 @@ export default class Mailboxes extends React.Component {
const
panelActive
=
this
.
insertToPanel
(
tableActive
,
'panel-all'
,
btn
,
filter
);
const
panelActive
=
this
.
insertToPanel
(
tableActive
,
'panel-all'
,
btn
,
filter
);
// create structure html for all locked accounts
// create structure html for all locked accounts
const
tableLocked
=
this
.
makeTable
(
lockedAccounts
,
lockedPagination
);
const
tableLocked
=
this
.
makeTable
(
partialLockOut
,
lockedPagination
);
const
panelLocked
=
this
.
insertToPanel
(
tableLocked
,
'panel-locked'
);
const
panelLocked
=
this
.
insertToPanel
(
tableLocked
,
'panel-locked'
);
arrayTabNames
.
push
(
all
,
locked
);
arrayTabNames
.
push
(
all
,
locked
);
...
...
src/components/mailbox/stats_mailbox.jsx
View file @
2b78d334
...
@@ -33,7 +33,7 @@ export default class BlockGeneralInfoMailbox extends React.Component {
...
@@ -33,7 +33,7 @@ export default class BlockGeneralInfoMailbox extends React.Component {
this
.
date
=
Utils
.
dateFormatted
(
this
.
props
.
data
.
attrs
.
zimbraCreateTimestamp
);
this
.
date
=
Utils
.
dateFormatted
(
this
.
props
.
data
.
attrs
.
zimbraCreateTimestamp
);
switch
(
this
.
props
.
data
.
attrs
.
zimbraAccountStatus
)
{
switch
(
this
.
props
.
data
.
attrs
.
zimbraAccountStatus
)
{
case
'lock
ed
out'
:
case
'lockout'
:
this
.
status
=
'Bloqueada'
;
this
.
status
=
'Bloqueada'
;
this
.
className
=
'label-locked mailbox-status'
;
this
.
className
=
'label-locked mailbox-status'
;
break
;
break
;
...
...
src/utils/client.jsx
View file @
2b78d334
...
@@ -360,6 +360,10 @@ export function getAllAccounts(opts, success, error) {
...
@@ -360,6 +360,10 @@ export function getAllAccounts(opts, success, error) {
);
);
}
}
export
function
getAllAccountsByBatch
(
attrs
)
{
return
ZimbraStore
.
getCurrent
().
getAllAccounts
(
attrs
);
}
export
function
getAccount
(
id
,
success
,
error
)
{
export
function
getAccount
(
id
,
success
,
error
)
{
initZimbra
().
then
(
initZimbra
().
then
(
(
zimbra
)
=>
{
(
zimbra
)
=>
{
...
@@ -572,7 +576,7 @@ export function batchRequest(requestArray, success, error) {
...
@@ -572,7 +576,7 @@ export function batchRequest(requestArray, success, error) {
}
}
return
success
(
data
);
return
success
(
data
);
});
}
,
{
onError
:
'continue'
}
);
},
},
(
err
)
=>
{
(
err
)
=>
{
const
e
=
handleError
(
'batchRequest'
,
err
);
const
e
=
handleError
(
'batchRequest'
,
err
);
...
...
src/utils/utils.jsx
View file @
2b78d334
...
@@ -655,3 +655,21 @@ export function getAttrsBySectionFromConfig(section, asObject) {
...
@@ -655,3 +655,21 @@ export function getAttrsBySectionFromConfig(section, asObject) {
return
false
;
return
false
;
}
}
export
function
extractLockOuts
(
object
)
{
if
(
object
&&
object
.
account
)
{
const
lockout
=
object
.
account
.
filter
((
account
)
=>
{
if
(
account
.
attrs
.
zimbraAccountStatus
===
'lockout'
)
{
return
true
;
}
return
false
;
});
if
(
lockout
.
length
>
0
)
{
object
.
lockout
=
lockout
;
}
}
return
object
;
}
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