Я новичок в разработке Apex. Я пытаюсь создать компонент молнии, где пользователю представлены флажки записей, и пытаюсь создать записи для записей, выбранных на компоненте.
У меня проблемы с этой функцией сохранения, когда кажется, что она неправильно запускает / выполняет код на стороне сервера. когда я пытаюсь вызвать другой метод в том же классе Apex, функция, кажется, проходит через.
Можете ли вы помочь мне понять, что не так?
FolderShareConfig.cmp
<aura:component implements="force:lightningQuickAction, force:hasRecordId" controller="FolderShareConfig">
<aura:handler name="init" value="{!this}" action="{!c.init}"/>
<aura:attribute name='recordId' type='String'/>
<aura:attribute name='hasShareList' type='User[]' />
<aura:attribute name='hasNoShareList' type='User[]' />
<h2>Remove access from:</h2>
<aura:iteration items="{!v.hasShareList}" var="userWithShare">
<lightning:input aura:id="remCheck" type="checkbox" label="{!userWithShare.Name}" checked="{!true}"></lightning:input>
</aura:iteration>
<hr></hr>
<h2>Grant access to:</h2>
<aura:iteration items="{!v.hasNoShareList}" var="userWithNoShare">
<lightning:input aura:id="addCheck" type="checkbox" label="{!userWithNoShare.Name}"></lightning:input>
</aura:iteration>
<lightning:button label="Save" onclick="{!c.save}"></lightning:button>
FolderShareConfigController . js
({
init : function(component, event, helper) {
var action = component.get("c.getFolderShareList");
action.setParams({'folderId': component.get('v.recordId')});
action.setCallback(this, function (response) {
var state = response.getState();
if (state === "SUCCESS") {
console.log(response.getReturnValue());
let responseMap = JSON.parse(response.getReturnValue());
component.set('v.hasShareList', responseMap['has-share']);
component.set('v.hasNoShareList', responseMap['no-share']);
}else if (state === "ERROR") {
var errors = response.getError();
}
});
$A.enqueueAction(action);
},
save : function(component, event, helper) {
var action = component.get("c.createFolderShare");
alert('hello1');
var addcheckCmp = component.find("addCheck");
alert('hello2');
var checkboxesChecked = [];
for (var i=0; i<checkboxes.length; i++){
if (checkboxes[i].get("v.value")== true){
checkboxesChecked.push(checkboxes[i])
}
};
action.setParams({
'folderId': component.get('v.recordId')
});
action.setCallback(this, function(response) {
var state = response.getState();
if (state === "SUCCESS") {
var name = response.getReturnValue();
alert("Share Configured Successfully");
}
else if (state === "ERROR")
{
alert("Share Configuration Failed. Please try again.");
}
});
$A.enqueueAction(action);
}
})
FolderShareConfig.apx c
public without sharing class FolderShareConfig {
@AuraEnabled
public static String getFolderShareList(String folderId){
Map<Id, User> allUserMap = new Map<Id, User>([SELECT Id, Name FROM User order by Name ASC]);
List<Folder__Share> shares = [select id, parentid, UserOrGroup.Name, UserOrGroupId from Folder__share where parentid =: folderId ORDER BY UserOrGroup.Name asc];
Map<String, List<User>> userMap = new Map<String, List<User>>{
'has-share' => new List<User>(),
'no-share' => new List<User>()
};
Set<Id> sharedUserIdSet = new Set<Id>();
for(Folder__Share share: shares){
if(allUserMap.containsKey(share.UserOrGroupId)){
sharedUserIdSet.add(share.UserOrGroupId);
userMap.get('has-share').add(allUserMap.get(share.UserOrGroupId));
}
}
for(User u: allUserMap.values()){
if(!sharedUserIdSet.contains(u.Id)){
userMap.get('no-share').add(u);
}
}
return JSON.serialize(userMap);
}
public static String createFolderShare(String[] checkboxesChecked){
system.debug (checkboxesChecked);
return JSON.serialize(checkboxesChecked);
//for (Integer i=0;i<3;i++)
//{
// Folder__Share fs = new Folder__Share(UserOrGroupId, AccessLevel = 'Read Only', ParentId = :folderId)
//}
//try{
// insert ;
//return ;
// } catch(Exception e) {
// system.debug('Error:' + e);
// return null;
// }
}
}