Merge pull request #1617 from albertgasset/MOBILE-2634

Mobile 2634
main
Juan Leyva 2018-11-22 15:01:37 +01:00 committed by GitHub
commit c6cae89d98
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 59 additions and 29 deletions

View File

@ -148,9 +148,9 @@
"addon.files.sitefiles": "moodle", "addon.files.sitefiles": "moodle",
"addon.messageoutput_airnotifier.processorsettingsdesc": "local_moodlemobileapp", "addon.messageoutput_airnotifier.processorsettingsdesc": "local_moodlemobileapp",
"addon.messages.addcontact": "message", "addon.messages.addcontact": "message",
"addon.messages.blockcontact": "message",
"addon.messages.blockcontactconfirm": "local_moodlemobileapp",
"addon.messages.blocknoncontacts": "message", "addon.messages.blocknoncontacts": "message",
"addon.messages.blockuser": "message",
"addon.messages.blockuserconfirm": "message",
"addon.messages.contactableprivacy": "message", "addon.messages.contactableprivacy": "message",
"addon.messages.contactableprivacy_coursemember": "message", "addon.messages.contactableprivacy_coursemember": "message",
"addon.messages.contactableprivacy_onlycontacts": "message", "addon.messages.contactableprivacy_onlycontacts": "message",
@ -179,7 +179,8 @@
"addon.messages.type_online": "local_moodlemobileapp", "addon.messages.type_online": "local_moodlemobileapp",
"addon.messages.type_search": "local_moodlemobileapp", "addon.messages.type_search": "local_moodlemobileapp",
"addon.messages.type_strangers": "local_moodlemobileapp", "addon.messages.type_strangers": "local_moodlemobileapp",
"addon.messages.unblockcontact": "message", "addon.messages.unblockuser": "message",
"addon.messages.unblockuserconfirm": "message",
"addon.messages.warningmessagenotsent": "local_moodlemobileapp", "addon.messages.warningmessagenotsent": "local_moodlemobileapp",
"addon.mod_assign.acceptsubmissionstatement": "local_moodlemobileapp", "addon.mod_assign.acceptsubmissionstatement": "local_moodlemobileapp",
"addon.mod_assign.addattempt": "assign", "addon.mod_assign.addattempt": "assign",

View File

@ -1,8 +1,8 @@
{ {
"addcontact": "Add contact", "addcontact": "Add contact",
"blockcontact": "Block contact",
"blockcontactconfirm": "You will no longer receive messages from this contact.",
"blocknoncontacts": "Prevent non-contacts from messaging me", "blocknoncontacts": "Prevent non-contacts from messaging me",
"blockuser": "Block user",
"blockuserconfirm": "Are you sure you want to block {{$a}}?",
"contactableprivacy": "Accept messages from:", "contactableprivacy": "Accept messages from:",
"contactableprivacy_coursemember": "My contacts and anyone in my courses", "contactableprivacy_coursemember": "My contacts and anyone in my courses",
"contactableprivacy_onlycontacts": "My contacts only", "contactableprivacy_onlycontacts": "My contacts only",
@ -31,6 +31,7 @@
"type_online": "Online", "type_online": "Online",
"type_search": "Search results", "type_search": "Search results",
"type_strangers": "Others", "type_strangers": "Others",
"unblockcontact": "Unblock contact", "unblockuser": "Unblock user",
"unblockuserconfirm": "Are you sure you want to unblock {{$a}}?",
"warningmessagenotsent": "Couldn't send message(s) to user {{user}}. {{error}}" "warningmessagenotsent": "Couldn't send message(s) to user {{user}}. {{error}}"
} }

View File

@ -70,7 +70,7 @@ export class AddonMessagesProvider {
} }
/** /**
* Block a contact. * Block a user.
* *
* @param {number} userId User ID of the person to block. * @param {number} userId User ID of the person to block.
* @param {string} [siteId] Site ID. If not defined, use current site. * @param {string} [siteId] Site ID. If not defined, use current site.
@ -78,11 +78,22 @@ export class AddonMessagesProvider {
*/ */
blockContact(userId: number, siteId?: string): Promise<any> { blockContact(userId: number, siteId?: string): Promise<any> {
return this.sitesProvider.getSite(siteId).then((site) => { return this.sitesProvider.getSite(siteId).then((site) => {
let promise;
if (site.wsAvailable('core_message_block_user')) {
// Since Moodle 3.6
const params = {
userid: site.getUserId(),
blockeduserid: userId,
};
promise = site.write('core_message_block_user', params);
} else {
const params = { const params = {
userids: [userId] userids: [userId]
}; };
promise = site.write('core_message_block_contacts', params);
}
return site.write('core_message_block_contacts', params).then(() => { return promise.then(() => {
return this.invalidateAllContactsCache(site.getUserId(), site.getId()); return this.invalidateAllContactsCache(site.getUserId(), site.getId());
}); });
}); });
@ -1157,14 +1168,25 @@ export class AddonMessagesProvider {
*/ */
unblockContact(userId: number, siteId?: string): Promise<any> { unblockContact(userId: number, siteId?: string): Promise<any> {
return this.sitesProvider.getSite(siteId).then((site) => { return this.sitesProvider.getSite(siteId).then((site) => {
let promise;
if (site.wsAvailable('core_message_unblock_user')) {
// Since Moodle 3.6
const params = {
userid: site.getUserId(),
unblockeduserid: userId,
};
promise = site.write('core_message_unblock_user', params);
} else {
const params = { const params = {
userids: [userId] userids: [userId]
}, };
preSets = { const preSets = {
responseExpected: false responseExpected: false
}; };
promise = site.write('core_message_unblock_contacts', params, preSets);
}
return site.write('core_message_unblock_contacts', params, preSets).then(() => { return promise.then(() => {
return this.invalidateAllContactsCache(site.getUserId(), site.getId()); return this.invalidateAllContactsCache(site.getUserId(), site.getId());
}); });
}); });

View File

@ -96,12 +96,17 @@ export class AddonMessagesBlockContactUserHandler implements CoreUserProfileHand
this.messagesProvider.isBlocked(user.id).then((isBlocked) => { this.messagesProvider.isBlocked(user.id).then((isBlocked) => {
if (isBlocked) { if (isBlocked) {
return this.messagesProvider.unblockContact(user.id); const template = this.translate.instant('addon.messages.unblockuserconfirm', {$a: user.fullname});
} else { const okText = this.translate.instant('addon.messages.unblockuser');
const template = this.translate.instant('addon.messages.blockcontactconfirm'),
title = this.translate.instant('addon.messages.blockcontact');
return this.domUtils.showConfirm(template, title, title).then(() => { return this.domUtils.showConfirm(template, undefined, okText).then(() => {
return this.messagesProvider.unblockContact(user.id);
});
} else {
const template = this.translate.instant('addon.messages.blockuserconfirm', {$a: user.fullname});
const okText = this.translate.instant('addon.messages.blockuser');
return this.domUtils.showConfirm(template, undefined, okText).then(() => {
return this.messagesProvider.blockContact(user.id); return this.messagesProvider.blockContact(user.id);
}); });
} }
@ -129,7 +134,7 @@ export class AddonMessagesBlockContactUserHandler implements CoreUserProfileHand
return this.messagesProvider.isBlocked(userId).then((isBlocked) => { return this.messagesProvider.isBlocked(userId).then((isBlocked) => {
if (isBlocked) { if (isBlocked) {
this.updateButton(userId, { this.updateButton(userId, {
title: 'addon.messages.unblockcontact', title: 'addon.messages.unblockuser',
class: 'addon-messages-unblockcontact-handler', class: 'addon-messages-unblockcontact-handler',
icon: 'checkmark-circle', icon: 'checkmark-circle',
hidden: false, hidden: false,
@ -137,7 +142,7 @@ export class AddonMessagesBlockContactUserHandler implements CoreUserProfileHand
}); });
} else { } else {
this.updateButton(userId, { this.updateButton(userId, {
title: 'addon.messages.blockcontact', title: 'addon.messages.blockuser',
class: 'addon-messages-blockcontact-handler', class: 'addon-messages-blockcontact-handler',
icon: 'close-circle', icon: 'close-circle',
hidden: false, hidden: false,

View File

@ -148,9 +148,9 @@
"addon.files.sitefiles": "Site files", "addon.files.sitefiles": "Site files",
"addon.messageoutput_airnotifier.processorsettingsdesc": "Configure devices", "addon.messageoutput_airnotifier.processorsettingsdesc": "Configure devices",
"addon.messages.addcontact": "Add contact", "addon.messages.addcontact": "Add contact",
"addon.messages.blockcontact": "Block contact",
"addon.messages.blockcontactconfirm": "You will no longer receive messages from this contact.",
"addon.messages.blocknoncontacts": "Prevent non-contacts from messaging me", "addon.messages.blocknoncontacts": "Prevent non-contacts from messaging me",
"addon.messages.blockuser": "Block user",
"addon.messages.blockuserconfirm": "Are you sure you want to block {{$a}}?",
"addon.messages.contactableprivacy": "Accept messages from:", "addon.messages.contactableprivacy": "Accept messages from:",
"addon.messages.contactableprivacy_coursemember": "My contacts and anyone in my courses", "addon.messages.contactableprivacy_coursemember": "My contacts and anyone in my courses",
"addon.messages.contactableprivacy_onlycontacts": "My contacts only", "addon.messages.contactableprivacy_onlycontacts": "My contacts only",
@ -179,7 +179,8 @@
"addon.messages.type_online": "Online", "addon.messages.type_online": "Online",
"addon.messages.type_search": "Search results", "addon.messages.type_search": "Search results",
"addon.messages.type_strangers": "Others", "addon.messages.type_strangers": "Others",
"addon.messages.unblockcontact": "Unblock contact", "addon.messages.unblockuser": "Unblock user",
"addon.messages.unblockuserconfirm": "Are you sure you want to unblock {{$a}}?",
"addon.messages.warningmessagenotsent": "Couldn't send message(s) to user {{user}}. {{error}}", "addon.messages.warningmessagenotsent": "Couldn't send message(s) to user {{user}}. {{error}}",
"addon.mod_assign.acceptsubmissionstatement": "Please accept the submission statement.", "addon.mod_assign.acceptsubmissionstatement": "Please accept the submission statement.",
"addon.mod_assign.addattempt": "Allow another attempt", "addon.mod_assign.addattempt": "Allow another attempt",