delete both side

This commit is contained in:
Piyush मिश्रः 2021-05-11 11:28:23 +05:30
parent 6623fda897
commit a2d4e7e70b
7 changed files with 61 additions and 45 deletions

View File

@ -67,7 +67,7 @@ pub struct SendStatus {
pub struct DeleteMsg { pub struct DeleteMsg {
pub kaksh_kunjika: String, pub kaksh_kunjika: String,
pub kunjika: String, pub kunjika: String,
pub msg_id: Vec<u128> pub msg_id: Vec<String>
} }
// Request to send list of users // Request to send list of users

View File

@ -40,7 +40,7 @@ pub struct WsStatus {
#[derive(Clone, Message)] #[derive(Clone, Message)]
#[rtype(result = "()")] #[rtype(result = "()")]
pub struct WsDeleteMsg { pub struct WsDeleteMsg {
pub msg_id: Vec<u128>, pub msg_id: Vec<String>,
pub sender_kunjika: String pub sender_kunjika: String
} }

View File

@ -48,6 +48,7 @@ impl Actor for ChatPinnd {
// for actix broker // for actix broker
self.subscribe_system_async::<ms::pind::SendText>(ctx); self.subscribe_system_async::<ms::pind::SendText>(ctx);
self.subscribe_system_async::<ms::pind::SendImage>(ctx); self.subscribe_system_async::<ms::pind::SendImage>(ctx);
self.subscribe_system_async::<ms::pind::DeleteMsg>(ctx);
self.subscribe_system_async::<ms::pind::SendStatus>(ctx); self.subscribe_system_async::<ms::pind::SendStatus>(ctx);
self.subscribe_system_async::<ms::pind::LeaveUser>(ctx); self.subscribe_system_async::<ms::pind::LeaveUser>(ctx);
} }

View File

@ -156,7 +156,7 @@ impl WsSansad {
}.as_array().unwrap(); }.as_array().unwrap();
for id in ids { for id in ids {
msg_id.push(id.as_str().unwrap().parse::<u128>().unwrap()); msg_id.push(id.as_str().unwrap().to_owned());
} }
drop(ids); drop(ids);
@ -167,6 +167,7 @@ impl WsSansad {
return; return;
} }
}; };
Broker::<SystemBroker>::issue_async(ms::pind::DeleteMsg { Broker::<SystemBroker>::issue_async(ms::pind::DeleteMsg {
kaksh_kunjika, kaksh_kunjika,
kunjika: self.kunjika.to_owned(), kunjika: self.kunjika.to_owned(),

View File

@ -155,7 +155,7 @@
<!-- Selected Clip --> <!-- Selected Clip -->
<div id="selected_clip" class="clip-win selected-clip is-hidden"> <div id="selected_clip" class="clip-win selected-clip is-hidden">
<div style="padding: 4px;"> <div style="padding: 4px;">
<button onclick="Messages.deleteMessages()" class="button outline primary" style="padding: 1rem 1rem;"> <button onclick="deleteMessages()" class="button outline primary" style="padding: 1rem 1rem;">
<img src="img/delete.svg" style="height: 1.6rem;"> <img src="img/delete.svg" style="height: 1.6rem;">
</button> </button>
<button onclick="Messages.copyMessagesToClipboard()" class="button outline primary" style="padding: 1rem 1rem;"> <button onclick="Messages.copyMessagesToClipboard()" class="button outline primary" style="padding: 1rem 1rem;">

View File

@ -47,6 +47,7 @@ socket.onerror = function(event) {
// Listen for messages // Listen for messages
socket.onmessage = function(event) { socket.onmessage = function(event) {
var j = JSON.parse(event.data); var j = JSON.parse(event.data);
console.log(j);
switch(j.cmd) { switch(j.cmd) {
case 'resp': case 'resp':
if(j.result == 'Err') { if(j.result == 'Err') {
@ -88,6 +89,9 @@ socket.onmessage = function(event) {
case 'img': case 'img':
Messages.pushImage(j.kunjika, j.src, j.msg_id); Messages.pushImage(j.kunjika, j.src, j.msg_id);
break; break;
case 'del':
Messages.deleteMessages(j.msg_id);
break;
case 'connected': case 'connected':
vayakti[j.kunjika] = j.name; vayakti[j.kunjika] = j.name;
if(!$('#vayakti_model').hasClass('.is-hidden')) refreshVayaktiList(); if(!$('#vayakti_model').hasClass('.is-hidden')) refreshVayaktiList();
@ -199,6 +203,30 @@ function send() {
autosize($('#send_box')[0]); autosize($('#send_box')[0]);
} }
function deleteMessages() {
var prop = {
title: 'Delete Messages',
text: 'Do you really want to delete?',
checkLabel: 'Delete both side',
check: true
}
dialog(prop, function() {
if($('#dialog_check').prop('checked')) {
var msg_id = [];
$('.message.active').each(function() {
msg_id.push($(this).attr('msgid'));
});
socket.send(JSON.stringify({
cmd: "del",
msg_id: msg_id
}));
} else $('.message.active').remove();
});
$('#selected_clip').addClass('is-hidden');
}
function vayaktiList() { function vayaktiList() {
refreshVayaktiList(); refreshVayaktiList();
$('#vayakti_model').removeClass('is-hidden'); $('#vayakti_model').removeClass('is-hidden');
@ -228,3 +256,26 @@ function autosize(el){
$('#selected_clip').css('bottom', (el.scrollHeight + 30) + 'px'); $('#selected_clip').css('bottom', (el.scrollHeight + 30) + 'px');
},0); },0);
} }
var dialogCallback;
function dialog(prop, call) {
dialogCallback = call;
$('#dialog_title').text(prop.title);
$('#dialog_text').text(prop.text);
$('#dialog_check_label').text(prop.checkLabel);
if(prop.check) $('#dialog_checkbox').removeClass('is-hidden');
else $('#dialog_checkbox').addClass('is-hidden');
$('#dialog').removeClass('is-hidden');
}
$('#dialog_cancel').click(function() {
$('#dialog').addClass('is-hidden');
});
$('#dialog_ok').click(function() {
$('#dialog').addClass('is-hidden');
dialogCallback();
});

View File

@ -147,25 +147,10 @@ let Messages = class {
$('#action_clip').addClass('is-hidden'); $('#action_clip').addClass('is-hidden');
} }
static deleteMessages() { static deleteMessages(msgid) {
var prop = { msgid.forEach(function(id) {
title: 'Delete Messages', $('[msgid='+id+']').remove();
text: 'Do you really want to delete?',
checkLabel: 'Delete both side',
check: true
}
dialog(prop, function() {
if($('#dialog_check').prop('checked')) {
var msg_id = [];
$('.message.active').each(function() {
msg_id.push($(this).attr('msgid'));
});
console.log(msg_id)
} else $('.message.active').remove();
}); });
$('#selected_clip').addClass('is-hidden');
} }
static currentTime() { static currentTime() {
@ -173,25 +158,3 @@ let Messages = class {
return today.getHours()+':'+('0' + today.getMinutes()).slice(-2); return today.getHours()+':'+('0' + today.getMinutes()).slice(-2);
} }
} }
var callback;
function dialog(prop, call) {
callback = call;
$('#dialog_title').text(prop.title);
$('#dialog_text').text(prop.text);
$('#dialog_check_label').text(prop.checkLabel);
if(prop.check) $('#dialog_checkbox').removeClass('is-hidden');
else $('#dialog_checkbox').addClass('is-hidden');
$('#dialog').removeClass('is-hidden');
}
$('#dialog_cancel').click(function() {
$('#dialog').addClass('is-hidden');
});
$('#dialog_ok').click(function() {
$('#dialog').addClass('is-hidden');
callback();
});