forked from om/chatcontrol_dk
Add offline-info message
So that visitors will be even less likely to miss the contact list
This commit is contained in:
parent
589b1aafbf
commit
97165d10f3
100
img/chatapp.svg
100
img/chatapp.svg
|
@ -235,8 +235,89 @@ function ImageChatMessage(symbol_id, is_myself) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// A class for holding a final message that says that the chat partner is offline
|
||||||
|
///
|
||||||
|
/// *ChatMessages are owned by a Dialog.
|
||||||
|
function OfflineChatMessage(dollar_message, _is_myself) {
|
||||||
|
let offline_message = dollar_message.substring(1);
|
||||||
|
let container = document.getElementById('messages');
|
||||||
|
|
||||||
|
// attributes
|
||||||
|
this.height = 0; // height on screen when fully visible
|
||||||
|
this.group = null; // a <g> with a transform=translate(0,y_shift) attribute
|
||||||
|
|
||||||
|
this.draw = function(y_offset, y_shift) {
|
||||||
|
let group = create_svg_node('g', {'transform': `translate(0, ${y_shift})`});
|
||||||
|
let height_so_far = y_offset;
|
||||||
|
|
||||||
|
function post_process(element) {
|
||||||
|
enable_scrolling(element);
|
||||||
|
height_so_far += line_height;
|
||||||
|
group.appendChild(element);
|
||||||
|
redraw_on_top(element);
|
||||||
|
}
|
||||||
|
|
||||||
|
let x = 101;
|
||||||
|
let bar = create_svg_node('rect', {
|
||||||
|
'x': `${x}%`,
|
||||||
|
'y': `${height_so_far + line_height}`,
|
||||||
|
'fill': '#CCCCCC',
|
||||||
|
'width': '90%',
|
||||||
|
'height': '4px'
|
||||||
|
});
|
||||||
|
post_process(bar);
|
||||||
|
height_so_far += 5; // spacing
|
||||||
|
|
||||||
|
let text = create_svg_node('text', {
|
||||||
|
'x': `${x}%`,
|
||||||
|
'y': `${height_so_far + line_height}`,
|
||||||
|
'font-size': `${line_height}px`,
|
||||||
|
'text-anchor': 'start'
|
||||||
|
});
|
||||||
|
text.appendChild(document.createTextNode(offline_message));
|
||||||
|
post_process(text);
|
||||||
|
|
||||||
|
let back_link_text = create_svg_node('text', {
|
||||||
|
'x': `${x}%`,
|
||||||
|
'y': `${height_so_far + line_height}`,
|
||||||
|
'font-size': `${line_height}px`,
|
||||||
|
'text-anchor': 'start',
|
||||||
|
'style': 'text-decoration: underline',
|
||||||
|
'fill': 'blue'
|
||||||
|
});
|
||||||
|
let back_link = create_svg_node('a', {
|
||||||
|
'href': 'javascript: swipe_viewport()',
|
||||||
|
});
|
||||||
|
|
||||||
|
let link_text = 'tilbage til kontaktlisten';
|
||||||
|
if(current_language == 'en') {
|
||||||
|
link_text = 'back to the contact list';
|
||||||
|
}
|
||||||
|
back_link_text.appendChild(document.createTextNode(link_text));
|
||||||
|
back_link.appendChild(back_link_text);
|
||||||
|
post_process(back_link);
|
||||||
|
|
||||||
|
container.appendChild(group);
|
||||||
|
this.height = height_so_far - y_offset;
|
||||||
|
this.group = group;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
this.shift_y_pos = function(by) {
|
||||||
|
redraw_on_top(document.getElementById('contact_name_box'));
|
||||||
|
this.group.setAttribute('transform', `translate(0, ${by})`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function create_chat_message(content, is_myself) {
|
function create_chat_message(content, is_myself) {
|
||||||
let constr = (content.startsWith('#'))? ImageChatMessage: TextChatMessage;
|
let constr = null;
|
||||||
|
if(content.startsWith('#')) {
|
||||||
|
constr = ImageChatMessage;
|
||||||
|
} else if(content.startsWith('$')) {
|
||||||
|
constr = OfflineChatMessage;
|
||||||
|
} else {
|
||||||
|
constr = TextChatMessage;
|
||||||
|
}
|
||||||
return new constr(content, is_myself);
|
return new constr(content, is_myself);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -394,9 +475,14 @@ function Dialog() {
|
||||||
release_send_button();
|
release_send_button();
|
||||||
await post_message(this, message, true);
|
await post_message(this, message, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.you = async function(message) {
|
this.you = async function(message) {
|
||||||
await post_message(this, message, false);
|
await post_message(this, message, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.end = async function(message) {
|
||||||
|
await post_message(this, `$${message}`, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function type_message(dialog, message) {
|
async function type_message(dialog, message) {
|
||||||
|
@ -501,6 +587,7 @@ async function dialog_ven_da() {
|
||||||
await d.me('Alle vores beskeder skal scannes på grund af børn på nettet? Det lyder dumt!', true);
|
await d.me('Alle vores beskeder skal scannes på grund af børn på nettet? Det lyder dumt!', true);
|
||||||
await d.you('Her kan du læse mere om det:');
|
await d.you('Her kan du læse mere om det:');
|
||||||
await d.you('https://chatcontrol.dk');
|
await d.you('https://chatcontrol.dk');
|
||||||
|
await d.end('din ven er offline nu');
|
||||||
}
|
}
|
||||||
|
|
||||||
async function dialog_ven_en() {
|
async function dialog_ven_en() {
|
||||||
|
@ -520,6 +607,7 @@ async function dialog_ven_en() {
|
||||||
await d.me('All of our messages will be scanned because of children on the internet? That sounds really stupid!', true);
|
await d.me('All of our messages will be scanned because of children on the internet? That sounds really stupid!', true);
|
||||||
await d.you('Here you can read more about it:');
|
await d.you('Here you can read more about it:');
|
||||||
await d.you('https://chatcontrol.dk');
|
await d.you('https://chatcontrol.dk');
|
||||||
|
await d.end('Your friend is offline now');
|
||||||
}
|
}
|
||||||
|
|
||||||
async function dialog_mor() {
|
async function dialog_mor() {
|
||||||
|
@ -546,6 +634,7 @@ async function dialog_mor_da() {
|
||||||
await d.me('Det vil ikke være bare os to, som har adgang til vores private billeder');
|
await d.me('Det vil ikke være bare os to, som har adgang til vores private billeder');
|
||||||
await d.you('Det overrasker mig. Men så tænker jeg at jeg vil bare give dig en USB-nøgle næste gang du kommer på besøg');
|
await d.you('Det overrasker mig. Men så tænker jeg at jeg vil bare give dig en USB-nøgle næste gang du kommer på besøg');
|
||||||
await d.me('God idé. Tak :-)');
|
await d.me('God idé. Tak :-)');
|
||||||
|
await d.end('Din mor er offline nu');
|
||||||
}
|
}
|
||||||
|
|
||||||
async function dialog_mor_en() {
|
async function dialog_mor_en() {
|
||||||
|
@ -564,6 +653,7 @@ async function dialog_mor_en() {
|
||||||
await d.me('It won\'t be just us two who will have access to our private pictures');
|
await d.me('It won\'t be just us two who will have access to our private pictures');
|
||||||
await d.you('That surprises me. But then I think I will give you a USB stick next time you visit me');
|
await d.you('That surprises me. But then I think I will give you a USB stick next time you visit me');
|
||||||
await d.me('Good idea! Thanks :-)');
|
await d.me('Good idea! Thanks :-)');
|
||||||
|
await d.end('Your mom is offline now');
|
||||||
}
|
}
|
||||||
|
|
||||||
async function dialog_kaereste() {
|
async function dialog_kaereste() {
|
||||||
|
@ -589,6 +679,7 @@ async function dialog_kaereste_da() {
|
||||||
await d.me("Men i fremtiden vil det faktisk blive obligatorisk at scanne beskeder i EU");
|
await d.me("Men i fremtiden vil det faktisk blive obligatorisk at scanne beskeder i EU");
|
||||||
await d.me('Og hvis der er beskeder som "ligner" børneporno får politiet en kopi af dem');
|
await d.me('Og hvis der er beskeder som "ligner" børneporno får politiet en kopi af dem');
|
||||||
await d.you('Jeg vil heller ikke have at politiet får mine nøgenbilleder. Det er min krop og jeg vil selv bestemme over den!');
|
await d.you('Jeg vil heller ikke have at politiet får mine nøgenbilleder. Det er min krop og jeg vil selv bestemme over den!');
|
||||||
|
await d.end('Din kæreste er offline nu');
|
||||||
}
|
}
|
||||||
|
|
||||||
async function dialog_kaereste_en() {
|
async function dialog_kaereste_en() {
|
||||||
|
@ -606,6 +697,7 @@ async function dialog_kaereste_en() {
|
||||||
await d.me('But in the future it will also become mandatory to scan chat messages in the EU');
|
await d.me('But in the future it will also become mandatory to scan chat messages in the EU');
|
||||||
await d.me('And if a message looks like child pornography then the police will get a copy of it');
|
await d.me('And if a message looks like child pornography then the police will get a copy of it');
|
||||||
await d.you("I don't want to share my nudes with the police. This is my body and I decide who I share it with!");
|
await d.you("I don't want to share my nudes with the police. This is my body and I decide who I share it with!");
|
||||||
|
await d.end('Your better half is offline now');
|
||||||
}
|
}
|
||||||
|
|
||||||
async function dialog_politi() {
|
async function dialog_politi() {
|
||||||
|
@ -627,6 +719,7 @@ async function dialog_politi_da() {
|
||||||
await d.you('Jeg vil heller ikke have at mine kolleger se hvad jeg skriver til min kæreste, kun fordi jeg hypotetisk kunne gøre noget illegalt');
|
await d.you('Jeg vil heller ikke have at mine kolleger se hvad jeg skriver til min kæreste, kun fordi jeg hypotetisk kunne gøre noget illegalt');
|
||||||
await d.you('Tænk bare hvor absurd idén er: Hvorfor aflytter vi ikke bare alle telefoner? Der vil være nogle forbrydelser vi vil opdage!');
|
await d.you('Tænk bare hvor absurd idén er: Hvorfor aflytter vi ikke bare alle telefoner? Der vil være nogle forbrydelser vi vil opdage!');
|
||||||
await d.you('Men så har vi masseovervågning og ikke længere et frit samfund.');
|
await d.you('Men så har vi masseovervågning og ikke længere et frit samfund.');
|
||||||
|
await d.end('Politibejenten er offline nu');
|
||||||
}
|
}
|
||||||
|
|
||||||
async function dialog_politi_en() {
|
async function dialog_politi_en() {
|
||||||
|
@ -640,6 +733,7 @@ async function dialog_politi_en() {
|
||||||
await d.you("I don't like that my collegues can potentially see what I write to by partner, just because I could potentially do something illegal while chatting");
|
await d.you("I don't like that my collegues can potentially see what I write to by partner, just because I could potentially do something illegal while chatting");
|
||||||
await d.you("Just think about how absurd the idea is: Why don't we wiretap all phones? There will be some crimes that we will detect!");
|
await d.you("Just think about how absurd the idea is: Why don't we wiretap all phones? There will be some crimes that we will detect!");
|
||||||
await d.you('But then we have total surveillance and no longer a free society.');
|
await d.you('But then we have total surveillance and no longer a free society.');
|
||||||
|
await d.end('The police officer is offline now');
|
||||||
}
|
}
|
||||||
|
|
||||||
async function dialog_support() {
|
async function dialog_support() {
|
||||||
|
@ -664,6 +758,7 @@ async function dialog_support_da() {
|
||||||
await d.you('Men det er desværre mit job at vedligeholde driften af overvågningen');
|
await d.you('Men det er desværre mit job at vedligeholde driften af overvågningen');
|
||||||
await d.me('Det løser ikke mit problem. Men tak for informationen. Jeg vil se hvad jeg kan gøre for at undgå overvågning i fremtiden', true);
|
await d.me('Det løser ikke mit problem. Men tak for informationen. Jeg vil se hvad jeg kan gøre for at undgå overvågning i fremtiden', true);
|
||||||
await d.you('Beklager at jeg ikke kan gøre mere. Men jeg håber at du forstår situationen');
|
await d.you('Beklager at jeg ikke kan gøre mere. Men jeg håber at du forstår situationen');
|
||||||
|
await d.end('Chatsupporten er offline nu');
|
||||||
}
|
}
|
||||||
|
|
||||||
async function dialog_support_en() {
|
async function dialog_support_en() {
|
||||||
|
@ -680,6 +775,7 @@ async function dialog_support_en() {
|
||||||
await d.you('But it is unfortunately my job to keep the surveillance working');
|
await d.you('But it is unfortunately my job to keep the surveillance working');
|
||||||
await d.me('That does not solve the problem. But thank you for the information. I will look for ways to avoid the surveillance in the future', true);
|
await d.me('That does not solve the problem. But thank you for the information. I will look for ways to avoid the surveillance in the future', true);
|
||||||
await d.you('I apologize that I can not offer something better. But I hope you understand the situation');
|
await d.you('I apologize that I can not offer something better. But I hope you understand the situation');
|
||||||
|
await d.end('The chat support is offline now');
|
||||||
}
|
}
|
||||||
|
|
||||||
async function dialog_nabopige() {
|
async function dialog_nabopige() {
|
||||||
|
@ -710,6 +806,7 @@ async function dialog_nabopige_da() {
|
||||||
await d.you('Det er bedre hvis man har gode voksne venner som man har tillid til, end hvis der er en computer som læser alt hvad man skriver');
|
await d.you('Det er bedre hvis man har gode voksne venner som man har tillid til, end hvis der er en computer som læser alt hvad man skriver');
|
||||||
await d.me('helt enig');
|
await d.me('helt enig');
|
||||||
await d.me('børn har også brug for fortrolighed!');
|
await d.me('børn har også brug for fortrolighed!');
|
||||||
|
await d.end('Pigen er afsted nu');
|
||||||
}
|
}
|
||||||
|
|
||||||
async function dialog_nabopige_en() {
|
async function dialog_nabopige_en() {
|
||||||
|
@ -732,6 +829,7 @@ async function dialog_nabopige_en() {
|
||||||
await d.you('It is better to have adult friends whom I can trust that a computer who reads everything that I write.');
|
await d.you('It is better to have adult friends whom I can trust that a computer who reads everything that I write.');
|
||||||
await d.me('Completely agree');
|
await d.me('Completely agree');
|
||||||
await d.me('Children also need their secrets and confidentiality');
|
await d.me('Children also need their secrets and confidentiality');
|
||||||
|
await d.end('The girl is gone now');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 32 KiB |
Loading…
Reference in a new issue