The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/app/user-status/client/admin/userStatusInfo.js

119 lines
2.9 KiB

import { Meteor } from 'meteor/meteor';
import { Template } from 'meteor/templating';
import { ReactiveVar } from 'meteor/reactive-var';
import { t, handleError } from '../../../utils';
import { modal } from '../../../ui-utils';
Template.userStatusInfo.helpers({
name() {
const userStatus = Template.instance().userStatus.get();
return userStatus.name;
},
userStatus() {
return Template.instance().userStatus.get();
},
editingUserStatus() {
return Template.instance().editingUserStatus.get();
},
userStatusToEdit() {
const instance = Template.instance();
return {
tabBar: this.tabBar,
userStatus: instance.userStatus.get(),
onSuccess: instance.onSuccess,
back(name) {
instance.editingUserStatus.set();
if (name != null) {
const userStatus = instance.userStatus.get();
if (userStatus != null && userStatus.name != null && userStatus.name !== name) {
return instance.loadedName.set(name);
}
}
},
};
},
});
Template.userStatusInfo.events({
'click .thumb'(e) {
$(e.currentTarget).toggleClass('bigger');
},
'click .delete'(e, instance) {
e.stopPropagation();
e.preventDefault();
const userStatus = instance.userStatus.get();
if (userStatus != null) {
const { _id } = userStatus;
modal.open({
title: t('Are_you_sure'),
text: t('Custom_User_Status_Delete_Warning'),
type: 'warning',
showCancelButton: true,
confirmButtonColor: '#DD6B55',
confirmButtonText: t('Yes_delete_it'),
cancelButtonText: t('Cancel'),
closeOnConfirm: false,
html: false,
}, function() {
Meteor.call('deleteCustomUserStatus', _id, (error/* , result */) => {
if (error) {
return handleError(error);
}
modal.open({
title: t('Deleted'),
text: t('Custom_User_Status_Has_Been_Deleted'),
type: 'success',
timer: 2000,
showConfirmButton: false,
});
instance.onSuccess();
instance.tabBar.close();
});
});
}
},
'click .edit-user-satus'(e, instance) {
e.stopPropagation();
e.preventDefault();
instance.editingUserStatus.set(instance.userStatus.get()._id);
},
});
Template.userStatusInfo.onCreated(function() {
this.userStatus = new ReactiveVar();
this.editingUserStatus = new ReactiveVar();
this.loadedName = new ReactiveVar();
this.tabBar = Template.currentData().tabBar;
this.onSuccess = Template.currentData().onSuccess;
this.autorun(() => {
const data = Template.currentData();
if (data != null && data.clear != null) {
this.clear = data.clear;
}
});
this.autorun(() => {
const data = Template.currentData().status;
const userStatus = this.userStatus.get();
if (userStatus != null && userStatus.name != null) {
this.loadedName.set(userStatus.name);
} else if (data != null && data.name != null) {
this.loadedName.set(data.name);
}
});
this.autorun(() => {
const data = Template.currentData().status;
this.userStatus.set(data);
});
});