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
d3ead1ca
Commit
d3ead1ca
authored
May 31, 2016
by
Juorder Antonio
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix add and remove members and allowers in distribution list
parent
fab81c33
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
136 additions
and
230 deletions
+136
-230
path.json
path.json
+1
-1
distribution_lists.jsx
src/components/distribution/distribution_lists.jsx
+118
-212
panel_actions.jsx
src/components/panel_actions.jsx
+9
-7
panel_actions_allows.jsx
src/components/panel_actions_allows.jsx
+7
-9
utils.jsx
src/utils/utils.jsx
+1
-1
No files found.
path.json
View file @
d3ead1ca
module.exports
=
{
"main"
:{
"js"
:
"/220021bundle.js"
}}
module.exports
=
{
"main"
:{
"js"
:
"/976919bundle.js"
}}
\ No newline at end of file
\ No newline at end of file
src/components/distribution/distribution_lists.jsx
View file @
d3ead1ca
...
@@ -28,16 +28,16 @@ export default class DistributionLists extends React.Component {
...
@@ -28,16 +28,16 @@ export default class DistributionLists extends React.Component {
constructor
(
props
)
{
constructor
(
props
)
{
super
(
props
);
super
(
props
);
this
.
isStoreEnabled
=
true
;
this
.
isStoreEnabled
=
window
.
manager_config
.
enableStores
;
this
.
getDistributionLists
=
this
.
getDistributionLists
.
bind
(
this
);
this
.
getDistributionLists
=
this
.
getDistributionLists
.
bind
(
this
);
this
.
showMessage
=
this
.
showMessage
.
bind
(
this
);
this
.
showMessage
=
this
.
showMessage
.
bind
(
this
);
this
.
onDeleteMember
=
this
.
onDeleteMember
.
bind
(
this
);
this
.
onDeleteMember
=
this
.
onDeleteMember
.
bind
(
this
);
this
.
onDeleteOwner
=
this
.
onDeleteOwner
.
bind
(
this
);
this
.
onDeleteOwner
=
this
.
onDeleteOwner
.
bind
(
this
);
this
.
onSubmitMembers
=
this
.
onSubmitMembers
.
bind
(
this
);
this
.
onCancelMember
=
this
.
onCancelMember
.
bind
(
this
);
this
.
onCancelMember
=
this
.
onCancelMember
.
bind
(
this
);
this
.
onCancelOwner
=
this
.
onCancelOwner
.
bind
(
this
);
this
.
onCancelOwner
=
this
.
onCancelOwner
.
bind
(
this
);
this
.
onExportMembers
=
this
.
onExportMembers
.
bind
(
this
);
this
.
onExportMembers
=
this
.
onExportMembers
.
bind
(
this
);
this
.
onExportAllowers
=
this
.
onExportAllowers
.
bind
(
this
);
this
.
onExportAllowers
=
this
.
onExportAllowers
.
bind
(
this
);
this
.
makeRequest
=
this
.
makeRequest
.
bind
(
this
);
this
.
domain
=
null
;
this
.
domain
=
null
;
this
.
isGlobalAdmin
=
UserStore
.
isGlobalAdmin
();
this
.
isGlobalAdmin
=
UserStore
.
isGlobalAdmin
();
...
@@ -63,6 +63,54 @@ export default class DistributionLists extends React.Component {
...
@@ -63,6 +63,54 @@ export default class DistributionLists extends React.Component {
Utils
.
exportAsCSV
(
data
,
'allowers'
,
title
,
true
);
Utils
.
exportAsCSV
(
data
,
'allowers'
,
title
,
true
);
}
}
makeRequest
(
response
,
dl
,
resolve
,
store
)
{
const
keys
=
Object
.
keys
(
response
).
sort
();
const
item
=
keys
[
0
];
const
res
=
store
||
{};
const
action
=
item
.
match
(
/
(
remove|add
)
/gi
);
if
(
action
)
{
var
element
=
response
[
item
];
if
(
element
&&
element
.
length
)
{
const
pop
=
element
.
pop
();
const
target
=
typeof
pop
===
'object'
?
pop
.
name
||
pop
.
id
:
pop
;
const
label
=
action
[
0
]
===
'remove'
?
'eliminar'
:
'agregar'
;
return
dl
[
item
](
target
,
(
er
,
success
)
=>
{
if
(
success
)
{
if
(
res
.
completed
)
{
res
.
completed
.
push
({
action
:
label
,
target
});
}
else
{
res
.
completed
=
[{
action
:
label
,
target
}];
}
const
api
=
success
.
api
?
success
:
dl
;
return
this
.
makeRequest
(
response
,
api
,
resolve
,
res
);
}
er
.
action
=
label
;
er
.
target
=
target
;
if
(
res
.
error
)
{
res
.
error
.
push
(
er
);
}
else
{
res
.
error
=
[
er
];
}
return
this
.
makeRequest
(
response
,
dl
,
resolve
,
res
);
});
}
else
{
Reflect
.
deleteProperty
(
response
,
item
);
return
this
.
makeRequest
(
response
,
dl
,
resolve
,
res
);
}
}
res
.
data
=
dl
;
return
resolve
(
res
);
}
getDistributionLists
()
{
getDistributionLists
()
{
const
domain
=
this
.
isStoreEnabled
?
DomainStore
.
getCurrent
()
:
null
;
const
domain
=
this
.
isStoreEnabled
?
DomainStore
.
getCurrent
()
:
null
;
const
id
=
this
.
props
.
params
.
id
;
const
id
=
this
.
props
.
params
.
id
;
...
@@ -109,7 +157,7 @@ export default class DistributionLists extends React.Component {
...
@@ -109,7 +157,7 @@ export default class DistributionLists extends React.Component {
DomainStore
.
setMembers
(
data
.
distributionsList
.
members
);
DomainStore
.
setMembers
(
data
.
distributionsList
.
members
);
}
}
this
.
setState
({
return
this
.
setState
({
distributionsList
:
data
.
distributionsList
,
distributionsList
:
data
.
distributionsList
,
members
:
this
.
isStoreEnabled
?
DomainStore
.
getMembers
()
:
data
.
distributionsList
.
members
,
members
:
this
.
isStoreEnabled
?
DomainStore
.
getMembers
()
:
data
.
distributionsList
.
members
,
owners
:
this
.
isStoreEnabled
?
DomainStore
.
getOwners
()
:
data
.
owners
,
owners
:
this
.
isStoreEnabled
?
DomainStore
.
getOwners
()
:
data
.
owners
,
...
@@ -125,233 +173,73 @@ export default class DistributionLists extends React.Component {
...
@@ -125,233 +173,73 @@ export default class DistributionLists extends React.Component {
});
});
}
}
onSubmitOwners
(
response
)
{
onSubmitActions
(
response
)
{
if
(
response
.
refresh
)
{
return
new
Promise
((
resolve
)
=>
{
response
.
refresh
.
forEach
((
member
)
=>
{
return
this
.
makeRequest
(
response
,
this
.
state
.
distributionsList
,
resolve
);
if
(
this
.
isStoreEnabled
)
{
}).
then
((
data
)
=>
{
DomainStore
.
addOwners
(
member
);
}
});
}
this
.
multipleActionsOwners
(
response
,
this
.
state
.
distributionsList
).
then
((
res
)
=>
{
//const newOwners = this.isStoreEnabled ? DomainStore.getOwners() : null;
const
errors
=
[];
const
errors
=
[];
const
limit
=
res
.
length
;
if
(
data
.
error
)
{
data
.
error
.
forEach
((
err
)
=>
{
for
(
let
i
=
0
;
i
<
limit
;
i
++
)
{
const
items
=
res
[
i
];
if
(
items
.
error
)
{
const
action
=
(
items
.
action
===
'remove'
)
?
'eliminar'
:
'agregar'
;
errors
.
push
({
errors
.
push
({
error
:
`Hubo un error al
${
action
}
${
items
.
item
}
, debido a :
${
items
.
erro
r
.
extra
.
reason
}
`
,
error
:
`Hubo un error al
${
err
.
action
}
${
err
.
target
}
, debido a :
${
er
r
.
extra
.
reason
}
`
,
type
:
MessagesType
.
ERROR
type
:
MessagesType
.
ERROR
});
});
}
}
);
}
}
if
(
errors
.
length
!==
limit
)
{
if
(
data
.
completed
)
{
errors
.
push
({
errors
.
push
({
error
:
'Se han guardado los datos
para permitidos
éxitosamente.'
,
error
:
'Se han guardado los datos éxitosamente.'
,
type
:
MessagesType
.
SUCCESS
type
:
MessagesType
.
SUCCESS
});
});
}
}
if
(
this
.
state
.
domain
)
{
const
dl
=
data
.
data
;
const
id
=
this
.
props
.
params
.
id
;
Client
.
getDistributionList
(
id
,
(
success
)
=>
{
success
.
getOwners
((
error
,
owners
)
=>
{
if
(
owners
)
{
if
(
this
.
isStoreEnabled
)
{
DomainStore
.
setOwners
(
owners
);
}
this
.
setState
({
owners
,
error
:
errors
});
response
.
reset
();
if
(
response
.
target
.
match
(
/owner/gi
))
{
}
return
dl
.
getOwners
((
err
,
owners
)
=>
{
});
if
(
owners
)
{
},
(
err
)
=>
{
this
.
setState
({
return
err
;
owners
,
error
:
errors
.
length
>
0
?
errors
:
null
,
distributionsList
:
dl
});
}
});
});
}
}
});
}
onSubmitMembers
(
response
)
{
if
(
response
.
refresh
)
{
response
.
refresh
.
forEach
((
member
)
=>
{
if
(
this
.
isStoreEnabled
)
{
DomainStore
.
addMember
(
member
);
}
});
}
this
.
multipleActionsMembers
(
response
,
this
.
state
.
distributionsList
).
then
((
res
)
=>
{
const
id
=
this
.
props
.
params
.
id
;
const
newMembers
=
this
.
isStoreEnabled
?
DomainStore
.
getMembers
()
:
null
;
return
Client
.
getDistributionList
(
id
,
(
success
)
=>
{
const
errors
=
[];
const
dl
=
success
;
const
limit
=
res
.
length
;
for
(
let
i
=
0
;
i
<
limit
;
i
++
)
{
const
items
=
res
[
i
];
if
(
items
.
error
)
{
const
action
=
(
items
.
action
===
'remove'
)
?
'eliminar'
:
'agregar'
;
errors
.
push
({
error
:
`Hubo un error al
${
action
}
${
items
.
item
}
, debido a :
${
items
.
error
.
extra
.
reason
}
`
,
type
:
MessagesType
.
ERROR
});
}
}
if
(
errors
.
length
!==
limit
)
{
return
this
.
setState
({
errors
.
push
({
error
:
errors
.
length
>
0
?
errors
:
null
,
error
:
'Se han guardado los datos para miembros éxitosamente.'
,
distributionsList
:
dl
,
type
:
MessagesType
.
SUCCESS
members
:
dl
.
members
});
},
(
error
)
=>
{
return
GlobalActions
.
emitMessage
({
error
:
error
.
message
,
typeError
:
MessagesType
.
ERROR
});
});
}
this
.
setState
({
members
:
newMembers
,
error
:
errors
});
});
}).
finally
(()
=>
{
response
.
reset
();
response
.
reset
();
});
});
}
}
multipleActionsMembers
(
response
,
account
)
{
const
promises
=
[];
if
(
response
.
add
||
response
.
remove
)
{
if
(
response
.
add
)
{
const
add
=
new
Promise
((
resolve
)
=>
{
account
.
addMembers
(
response
.
add
,
(
error
)
=>
{
const
res
=
{};
if
(
error
)
{
res
.
isCompleted
=
false
;
res
.
action
=
'add'
;
res
.
error
=
error
;
return
resolve
(
res
);
}
response
.
add
.
forEach
((
member
)
=>
{
if
(
this
.
isStoreEnabled
)
{
DomainStore
.
addMember
(
member
);
}
});
res
.
isCompleted
=
true
;
res
.
action
=
'add'
;
return
resolve
(
res
);
});
});
promises
.
push
(
add
);
}
if
(
response
.
remove
)
{
const
remove
=
new
Promise
((
resolve
)
=>
{
account
.
removeMembers
(
response
.
remove
,
(
error
)
=>
{
const
res
=
{};
if
(
error
)
{
res
.
isCompleted
=
false
;
res
.
action
=
'remove'
;
res
.
error
=
error
;
return
resolve
(
res
);
}
response
.
remove
.
forEach
((
member
)
=>
{
if
(
this
.
isStoreEnabled
)
{
DomainStore
.
removeMember
(
member
);
}
});
res
.
isCompleted
=
true
;
res
.
action
=
'remove'
;
return
resolve
(
res
);
});
});
promises
.
push
(
remove
);
}
}
return
Promise
.
all
(
promises
);
}
multipleActionsOwners
(
response
,
account
)
{
const
promises
=
[];
for
(
const
key
in
response
)
{
if
(
response
.
hasOwnProperty
(
key
)
&&
key
===
'add'
)
{
const
array
=
response
[
key
];
const
limit
=
array
.
length
;
for
(
let
index
=
0
;
index
<
limit
;
index
++
)
{
const
res
=
{};
const
newPermitido
=
array
[
index
];
const
promesa
=
new
Promise
((
resolve
)
=>
{
account
.
addOwner
(
newPermitido
,
(
error
)
=>
{
if
(
error
)
{
res
.
isCompleted
=
false
;
res
.
item
=
newPermitido
;
res
.
action
=
key
;
res
.
error
=
error
;
}
else
{
res
.
isCompleted
=
true
;
res
.
item
=
newPermitido
;
res
.
action
=
key
;
}
return
resolve
(
res
);
});
});
promises
.
push
(
promesa
);
}
}
if
(
response
.
hasOwnProperty
(
key
)
&&
key
===
'remove'
)
{
const
array
=
response
[
key
];
const
limit
=
array
.
length
;
for
(
let
index
=
0
;
index
<
limit
;
index
++
)
{
const
res
=
{};
const
permitido
=
array
[
index
].
name
||
array
[
index
].
id
;
const
promesa
=
new
Promise
((
resolve
)
=>
{
account
.
removeOwner
(
permitido
,
(
error
)
=>
{
if
(
error
)
{
res
.
isCompleted
=
false
;
res
.
item
=
response
[
key
][
index
];
res
.
action
=
key
;
res
.
error
=
error
;
}
else
{
res
.
isCompleted
=
true
;
res
.
item
=
response
[
key
][
index
];
res
.
action
=
key
;
}
return
resolve
(
res
);
});
});
promises
.
push
(
promesa
);
}
}
}
return
Promise
.
all
(
promises
);
}
onDeleteMember
(
member
)
{
onDeleteMember
(
member
)
{
if
(
this
.
isStoreEnabled
)
{
if
(
this
.
isStoreEnabled
)
{
DomainStore
.
removeMember
(
member
);
DomainStore
.
removeMember
(
member
);
}
}
const
currentMembers
=
this
.
isStoreEnabled
?
DomainStore
.
getMembers
()
:
null
;
let
currentMembers
=
this
.
isStoreEnabled
?
DomainStore
.
getMembers
()
:
null
;
if
(
!
currentMembers
)
{
currentMembers
=
this
.
state
.
members
.
filter
((
target
)
=>
{
return
target
!==
member
;
});
}
this
.
setState
({
this
.
setState
({
members
:
currentMembers
,
members
:
currentMembers
,
...
@@ -367,7 +255,12 @@ export default class DistributionLists extends React.Component {
...
@@ -367,7 +255,12 @@ export default class DistributionLists extends React.Component {
}
}
});
});
const
newMembers
=
this
.
isStoreEnabled
?
DomainStore
.
getMembers
()
:
null
;
let
newMembers
=
this
.
isStoreEnabled
?
DomainStore
.
getMembers
()
:
null
;
if
(
!
newMembers
)
{
newMembers
=
this
.
state
.
members
;
newMembers
.
push
(...
response
);
}
this
.
setState
({
this
.
setState
({
members
:
newMembers
,
members
:
newMembers
,
...
@@ -382,7 +275,14 @@ export default class DistributionLists extends React.Component {
...
@@ -382,7 +275,14 @@ export default class DistributionLists extends React.Component {
if
(
this
.
isStoreEnabled
)
{
if
(
this
.
isStoreEnabled
)
{
DomainStore
.
removeOwner
(
owner
);
DomainStore
.
removeOwner
(
owner
);
}
}
const
currentOwners
=
this
.
isStoreEnabled
?
DomainStore
.
getOwners
()
:
null
;
let
currentOwners
=
this
.
isStoreEnabled
?
DomainStore
.
getOwners
()
:
null
;
if
(
!
currentOwners
)
{
currentOwners
=
this
.
state
.
owners
.
filter
((
target
)
=>
{
return
target
!==
owner
;
});
}
this
.
setState
({
this
.
setState
({
owners
:
currentOwners
,
owners
:
currentOwners
,
...
@@ -398,7 +298,11 @@ export default class DistributionLists extends React.Component {
...
@@ -398,7 +298,11 @@ export default class DistributionLists extends React.Component {
}
}
});
});
const
newOwners
=
this
.
isStoreEnabled
?
DomainStore
.
getOwners
()
:
null
;
let
newOwners
=
this
.
isStoreEnabled
?
DomainStore
.
getOwners
()
:
null
;
if
(
!
newOwners
)
{
newOwners
=
this
.
state
.
owners
;
newOwners
.
push
(...
response
);
}
this
.
setState
({
this
.
setState
({
owners
:
newOwners
,
owners
:
newOwners
,
...
@@ -435,7 +339,7 @@ export default class DistributionLists extends React.Component {
...
@@ -435,7 +339,7 @@ export default class DistributionLists extends React.Component {
const
domain
=
this
.
state
.
domain
;
const
domain
=
this
.
state
.
domain
;
const
owners
=
this
.
state
.
owners
;
const
owners
=
this
.
state
.
owners
;
const
arrayMembers
=
this
.
state
.
members
;
const
arrayMembers
=
this
.
state
.
members
;
const
membersFormatted
=
Utils
.
getMembers
(
data
.
m
embers
,
'Miembros'
);
const
membersFormatted
=
Utils
.
getMembers
(
arrayM
embers
,
'Miembros'
);
if
(
owners
.
length
>
0
)
{
if
(
owners
.
length
>
0
)
{
isPrivate
=
(
isPrivate
=
(
...
@@ -489,7 +393,7 @@ export default class DistributionLists extends React.Component {
...
@@ -489,7 +393,7 @@ export default class DistributionLists extends React.Component {
name=
{
'Miembros'
}
name=
{
'Miembros'
}
data=
{
arrayMembers
}
data=
{
arrayMembers
}
onApplyChanges=
{
(
response
)
=>
{
onApplyChanges=
{
(
response
)
=>
{
this
.
onSubmit
Member
s
(
response
);
this
.
onSubmit
Action
s
(
response
);
}
}
}
}
hasExport=
{
true
}
hasExport=
{
true
}
isEmail=
{
true
}
isEmail=
{
true
}
...
@@ -502,6 +406,7 @@ export default class DistributionLists extends React.Component {
...
@@ -502,6 +406,7 @@ export default class DistributionLists extends React.Component {
onExport=
{
(
members
)
=>
{
onExport=
{
(
members
)
=>
{
this
.
onExportMembers
(
members
);
this
.
onExportMembers
(
members
);
}
}
}
}
nameFunc=
{
'Members'
}
/>
/>
);
);
...
@@ -510,7 +415,7 @@ export default class DistributionLists extends React.Component {
...
@@ -510,7 +415,7 @@ export default class DistributionLists extends React.Component {
name=
{
'Permitidos'
}
name=
{
'Permitidos'
}
data=
{
owners
}
data=
{
owners
}
onApplyChanges=
{
(
response
)
=>
{
onApplyChanges=
{
(
response
)
=>
{
this
.
onSubmit
Owner
s
(
response
);
this
.
onSubmit
Action
s
(
response
);
}
}
}
}
hasExport=
{
true
}
hasExport=
{
true
}
isEmail=
{
true
}
isEmail=
{
true
}
...
@@ -523,6 +428,7 @@ export default class DistributionLists extends React.Component {
...
@@ -523,6 +428,7 @@ export default class DistributionLists extends React.Component {
onExport=
{
(
allowers
)
=>
{
onExport=
{
(
allowers
)
=>
{
this
.
onExportAllowers
(
allowers
);
this
.
onExportAllowers
(
allowers
);
}
}
}
}
nameFunc=
{
'Owner'
}
/>
/>
);
);
}
}
...
@@ -581,14 +487,14 @@ export default class DistributionLists extends React.Component {
...
@@ -581,14 +487,14 @@ export default class DistributionLists extends React.Component {
permitidos
:
allows
permitidos
:
allows
};
};
const
not
=
false
;
/*
const not = false;
//if (!this.isGlobalAdmin) {
//if (!this.isGlobalAdmin) {
if (not) {
if (not) {
tabNamesArray = ['Miembros'];
tabNamesArray = ['Miembros'];
tabs = {
tabs = {
miembros: members
miembros: members
};
};
}
}
*/
panelTabs
=
(
panelTabs
=
(
<
PanelTab
<
PanelTab
...
...
src/components/panel_actions.jsx
View file @
d3ead1ca
...
@@ -274,21 +274,22 @@ export default class PanelActions extends React.Component {
...
@@ -274,21 +274,22 @@ export default class PanelActions extends React.Component {
onSubmit
()
{
onSubmit
()
{
const
response
=
{};
const
response
=
{};
response
.
reset
=
this
.
reset
;
response
.
reset
=
this
.
reset
;
response
.
target
=
this
.
props
.
nameFunc
;
this
.
refs
.
savebutton
.
setAttribute
(
'disabled'
,
'disabled'
);
/*
this.refs.savebutton.setAttribute('disabled', 'disabled');
this
.
refs
.
savebutton
.
innerHTML
=
'Aplicando Cambios...'
;
this.refs.savebutton.innerHTML = 'Aplicando Cambios...';
*/
if
(
this
.
forAdd
.
length
>
0
)
{
if
(
this
.
forAdd
.
length
>
0
)
{
response
.
add
=
this
.
forAdd
;
response
[
'add'
+
Utils
.
titleCase
(
this
.
props
.
nameFunc
)]
=
this
.
forAdd
;
}
}
if
(
this
.
forRemove
.
length
>
0
)
{
if
(
this
.
forRemove
.
length
>
0
)
{
response
.
remove
=
this
.
forRemove
;
response
[
'remove'
+
Utils
.
titleCase
(
this
.
props
.
nameFunc
)]
=
this
.
forRemove
;
}
}
if
(
this
.
refresh
.
length
>
0
)
{
/*
if (this.refresh.length > 0) {
response.refresh = this.refresh;
response.refresh = this.refresh;
}
}
*/
this
.
props
.
onApplyChanges
(
response
);
this
.
props
.
onApplyChanges
(
response
);
}
}
...
@@ -656,7 +657,8 @@ PanelActions.propTypes = {
...
@@ -656,7 +657,8 @@ PanelActions.propTypes = {
hasExport
:
React
.
PropTypes
.
bool
,
hasExport
:
React
.
PropTypes
.
bool
,
showNameOnButton
:
React
.
PropTypes
.
bool
,
showNameOnButton
:
React
.
PropTypes
.
bool
,
onExport
:
React
.
PropTypes
.
func
,
onExport
:
React
.
PropTypes
.
func
,
isEmail
:
React
.
PropTypes
.
bool
isEmail
:
React
.
PropTypes
.
bool
,
nameFunc
:
React
.
PropTypes
.
string
.
isRequired
};
};
PanelActions
.
defaultProps
=
{
PanelActions
.
defaultProps
=
{
...
...
src/components/panel_actions_allows.jsx
View file @
d3ead1ca
...
@@ -267,20 +267,17 @@ export default class PanelActions extends React.Component {
...
@@ -267,20 +267,17 @@ export default class PanelActions extends React.Component {
onSubmit
()
{
onSubmit
()
{
const
response
=
{};
const
response
=
{};
response
.
reset
=
this
.
reset
;
response
.
reset
=
this
.
reset
;
response
.
target
=
this
.
props
.
nameFunc
;
this
.
refs
.
savebutton
.
setAttribute
(
'disabled'
,
'disabled'
);
//
this.refs.savebutton.setAttribute('disabled', 'disabled');
this
.
refs
.
savebutton
.
innerHTML
=
'Aplicando Cambios...'
;
//
this.refs.savebutton.innerHTML = 'Aplicando Cambios...';
if
(
this
.
forAdd
.
length
>
0
)
{
if
(
this
.
forAdd
.
length
>
0
)
{
response
.
add
=
this
.
forAdd
;
response
[
'add'
+
Utils
.
titleCase
(
this
.
props
.
nameFunc
)]
=
this
.
forAdd
;
}
}
if
(
this
.
forRemove
.
length
>
0
)
{
if
(
this
.
forRemove
.
length
>
0
)
{
response
.
remove
=
this
.
forRemove
;
response
[
'remove'
+
Utils
.
titleCase
(
this
.
props
.
nameFunc
)]
=
this
.
forRemove
;
}
if
(
this
.
refresh
.
length
>
0
)
{
response
.
refresh
=
this
.
refresh
;
}
}
if
(
this
.
props
.
onApplyChanges
)
{
if
(
this
.
props
.
onApplyChanges
)
{
...
@@ -656,7 +653,8 @@ PanelActions.propTypes = {
...
@@ -656,7 +653,8 @@ PanelActions.propTypes = {
hasExport
:
React
.
PropTypes
.
bool
,
hasExport
:
React
.
PropTypes
.
bool
,
showNameOnButton
:
React
.
PropTypes
.
bool
,
showNameOnButton
:
React
.
PropTypes
.
bool
,
onExport
:
React
.
PropTypes
.
func
,
onExport
:
React
.
PropTypes
.
func
,
isEmail
:
React
.
PropTypes
.
bool
isEmail
:
React
.
PropTypes
.
bool
,
nameFunc
:
React
.
PropTypes
.
string
.
isRequired
};
};
PanelActions
.
defaultProps
=
{
PanelActions
.
defaultProps
=
{
...
...
src/utils/utils.jsx
View file @
d3ead1ca
...
@@ -375,7 +375,7 @@ export function exportAsCSV(data, target, title, hasLabel) {
...
@@ -375,7 +375,7 @@ export function exportAsCSV(data, target, title, hasLabel) {
for
(
var
j
=
0
;
j
<
keys
.
length
;
j
++
)
{
for
(
var
j
=
0
;
j
<
keys
.
length
;
j
++
)
{
let
col
=
null
;
let
col
=
null
;
if
(
typeof
item
===
'object'
)
{
if
(
typeof
item
===
'object'
&&
item
.
attrs
)
{
col
=
status
[
item
.
attrs
[
keys
[
j
]]]
||
item
.
attrs
[
keys
[
j
]];
col
=
status
[
item
.
attrs
[
keys
[
j
]]]
||
item
.
attrs
[
keys
[
j
]];
}
}
...
...
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