mute user works, not forever so far

This commit is contained in:
simplonco
2023-01-16 05:36:23 +01:00
parent 9a08c305cb
commit 7433490ac6
7 changed files with 338 additions and 146 deletions

View File

@@ -1,10 +1,75 @@
<script>
<script lang="ts">
import { layout } from './Store_chat';
import { layout, settings_user } from './Store_chat';
import { setMute } from './Request_rooms';
import Button from './Element_button.svelte';
import Warning from './Element_warning.svelte';
export let back = "";
let response: FetchResponse;
let show_error = false;
let minutes: number = 0;
let hours: number = 0;
let days: number = 0;
async function handleSubmit(evt)
{
let formIsValid = evt.target.checkValidity();
if (!formIsValid)
return;
console.log("minutes:", minutes);
console.log("hours:", hours);
console.log("days:", days);
let duration = minutes * (1000 * 60) + hours * (1000 * 60 * 60) + days * (1000 * 60 * 60 * 24);
console.log("duration:", duration);
let date_start = new Date();
let date_limit = new Date(date_start.getTime() + duration);
let time: string = `${date_limit.getFullYear()}/${date_limit.getMonth() + 1}/${date_limit.getDate()} at ${date_limit.getHours()}:${date_limit.getMinutes()}`;
console.log("time:", time);
response = await setMute(date_limit, $settings_user, time);
// print error
if (response.status >= 300 || response.error)
show_error = response.error;
layout.set("room");
/*
function remaining_time()
{
const seconds_elem = document.getElementById("add");
const seconds_value = seconds_elem.value;
if (seconds_value)
{
date_start = new Date();
date_limit = new Date(date_start.getTime() + seconds_value * 1000);
seconds_elem.value = "";
}
else if (!date_start)
return;
const now_date = new Date();
const date_diff = date_limit - now_date;
const diff = `
${Math.floor(date_diff / (1000 * 1 * 60 * 60 * 24))}d
${Math.floor(date_diff / (1000 * 1 * 60 * 60))}h
${Math.floor(date_diff / (1000 * 1 * 60))}m
${Math.floor(date_diff / (1000 * 1))}s`;
document.getElementById("limit").innerHTML = diff.toString();
document.getElementById("remains").innerHTML = date_diff > 0;
}
*/
}
</script>
<div class="grid_box">
@@ -16,7 +81,7 @@
<!-- user -->
<Button my_class="user deactivate">
&lt;user&gt;
{$settings_user}
</Button>
<!-- close -->
@@ -25,11 +90,12 @@
</Button>
<!-- panel_mute -->
<!-- MUTE -->
<div class="panel panel_mute __border_top">
{#if show_error}
<Warning content={response.message}/>
{/if}
<p class="__center">mute this user for a time :</p>
<form>
<form on:submit|preventDefault={handleSubmit}>
<!-- forever -->
<input id="chat_mute_forever" class="__check_change_next" type="checkbox">
<label for="chat_mute_forever" class="_checkbox"><p>forever</p></label>
@@ -37,143 +103,143 @@
<!-- minutes -->
<label for="chat_mute_minutes" class="_select">
<p>minutes :</p>
<select id="chat_mute_minutes">
<option value="01">00</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="30">30</option>
<option value="31">31</option>
<option value="32">32</option>
<option value="33">33</option>
<option value="34">34</option>
<option value="35">35</option>
<option value="36">36</option>
<option value="37">37</option>
<option value="40">40</option>
<option value="41">41</option>
<option value="42">42</option>
<option value="43">43</option>
<option value="44">44</option>
<option value="45">45</option>
<option value="46">46</option>
<option value="47">47</option>
<option value="50">50</option>
<option value="51">51</option>
<option value="52">52</option>
<option value="53">53</option>
<option value="54">54</option>
<option value="55">55</option>
<option value="56">56</option>
<option value="57">57</option>
<option value="60">60</option>
<select id="chat_mute_minutes" bind:value={minutes}>
<option>00</option>
<option>01</option>
<option>02</option>
<option>03</option>
<option>04</option>
<option>05</option>
<option>06</option>
<option>07</option>
<option>10</option>
<option>11</option>
<option>12</option>
<option>13</option>
<option>14</option>
<option>15</option>
<option>16</option>
<option>17</option>
<option>20</option>
<option>21</option>
<option>22</option>
<option>23</option>
<option>24</option>
<option>25</option>
<option>26</option>
<option>27</option>
<option>30</option>
<option>31</option>
<option>32</option>
<option>33</option>
<option>34</option>
<option>35</option>
<option>36</option>
<option>37</option>
<option>40</option>
<option>41</option>
<option>42</option>
<option>43</option>
<option>44</option>
<option>45</option>
<option>46</option>
<option>47</option>
<option>50</option>
<option>51</option>
<option>52</option>
<option>53</option>
<option>54</option>
<option>55</option>
<option>56</option>
<option>57</option>
<option>60</option>
</select>
</label>
<!-- hours -->
<label for="chat_mute_hours" class="_select">
<p>hours :</p>
<select id="chat_mute_hours">
<option value="01">00</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="30">30</option>
<option value="31">31</option>
<option value="32">32</option>
<option value="33">33</option>
<option value="34">34</option>
<option value="35">35</option>
<option value="36">36</option>
<option value="37">37</option>
<option value="40">40</option>
<option value="41">41</option>
<option value="42">42</option>
<option value="43">43</option>
<option value="44">44</option>
<option value="45">45</option>
<option value="46">46</option>
<option value="47">47</option>
<option value="50">50</option>
<option value="51">51</option>
<option value="52">52</option>
<option value="53">53</option>
<option value="54">54</option>
<option value="55">55</option>
<option value="56">56</option>
<option value="57">57</option>
<option value="60">60</option>
<option>00</option>
<option>01</option>
<option>02</option>
<option>03</option>
<option>04</option>
<option>05</option>
<option>06</option>
<option>07</option>
<option>10</option>
<option>11</option>
<option>12</option>
<option>13</option>
<option>14</option>
<option>15</option>
<option>16</option>
<option>17</option>
<option>20</option>
<option>21</option>
<option>22</option>
<option>23</option>
<option>24</option>
<option>25</option>
<option>26</option>
<option>27</option>
<option>30</option>
<option>31</option>
<option>32</option>
<option>33</option>
<option>34</option>
<option>35</option>
<option>36</option>
<option>37</option>
<option>40</option>
<option>41</option>
<option>42</option>
<option>43</option>
<option>44</option>
<option>45</option>
<option>46</option>
<option>47</option>
<option>50</option>
<option>51</option>
<option>52</option>
<option>53</option>
<option>54</option>
<option>55</option>
<option>56</option>
<option>57</option>
<option>60</option>
</select>
</label>
<!-- days -->
<label for="chat_mute_days" class="_select">
<p>days :</p>
<select id="chat_mute_days">
<option value="00">00</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="30">30</option>
<option value="31">31</option>
<option>00</option>
<option>01</option>
<option>02</option>
<option>03</option>
<option>04</option>
<option>05</option>
<option>06</option>
<option>07</option>
<option>10</option>
<option>11</option>
<option>12</option>
<option>13</option>
<option>14</option>
<option>15</option>
<option>16</option>
<option>17</option>
<option>20</option>
<option>21</option>
<option>22</option>
<option>23</option>
<option>24</option>
<option>25</option>
<option>26</option>
<option>27</option>
<option>30</option>
<option>31</option>
</select>
</label>
</div>

View File

@@ -40,10 +40,6 @@
show_error = response.error;
layout.set("room");
}
async function ban_mute_user()
{
to_print("in ban_mute_user");
}
</script>
@@ -88,7 +84,7 @@
<Button on:click={make_user_admin}>
make admin
</Button>
<Button on:click={ban_mute_user}>
<Button new_layout="mute">
{mute}
</Button>
{/if}

View File

@@ -165,7 +165,7 @@ export async function leave_room(): Promise<void>
let response: FetchResponse = await fetch_chat_request('leave', FetchMethod.DELETE);
}
export async function make_admin(username): Promise<boolean>
export async function make_admin(username): Promise<FetchResponse>
{
to_print("in is_admin");
@@ -186,3 +186,24 @@ to_print("is_admin return:", response.is_admin);
return response.is_admin;
}
export async function setMute(date_limit: Date, username: string, time: string): Promise<FetchResponse>
{
to_print("in is_admin");
let body =
{
mute:
{
name: username,
date: date_limit,
},
time: time,
}
to_print("setmute send body:", body);
let response: FetchResponse = await fetch_chat_request('setmute', FetchMethod.POST, body );
to_print("setmute return:", response);
return response;
}