File size: 3,586 Bytes
752c636
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
function add_request_row(username,request_message)
{
//#access_requests_table
// <tr>
//    <td>abc</td>
//    <td>Please give access :(</td>
//
//    <td>
//        <button class="accept"><i class="fa-solid fa-check"></i></button>
//        <button class="reject"><i class="fa-solid fa-close"></i></button>
//    </td>
// </tr>
    var table_row=document.createElement("tr");
    var username_tag=document.createElement("td");
    username_tag.innerText=username;
    var request_message_tag=document.createElement("td");
    request_message_tag.innerText=request_message;
    
    var review_tag=document.createElement("td");
    review_tag.innerHTML='<button class="accept" onclick="perform_action(this);"><i class="fa-solid fa-check"></i></button>\
                          <button class="reject" onclick="perform_action(this);"><i class="fa-solid fa-close"></i></button>';
    table_row.appendChild(username_tag);
    table_row.appendChild(request_message_tag);
    table_row.appendChild(review_tag);
    document.querySelector("#access_requests_table").appendChild(table_row);
}





fetch("get_all_requests/").then(function(response){
    return response.json();
}).then(function(response){
    console.log(response);
    if ('username' in response)
    {
        for(var i=0;i<response['username'].length;i++)
        {
            if (response['access_key'][i]==null)
                add_request_row(response['username'][i],response['request_message'][i])
            else
                add_access_row(response['username'][i],response['request_message'][i])
        }
        
    }
    
})



function perform_action(elem){
    // console.log(elem);
    console.log(elem.getAttribute("class"));   
    var row=elem.parentNode.parentNode;
    // username:row.firstChild.innerText

    if (elem.getAttribute("class")=="reject")
    {
        const response = confirm("Are you sure you want to do that?");
        if (!response)
        {
            return;
        }
    }

    var formdata=new FormData();
    formdata.append("username",row.firstChild.innerText);
    formdata.append("mode",elem.getAttribute("class"));
    fetch("update_requests/",{
        method:"POST",
        body:formdata
    }).then(function(response){
        return response.json();
    }).then(function(response){
        console.log("response:",response);
        if (elem.getAttribute("class")=="accept")
        {
            add_access_row(row.firstChild.innerText,row.querySelector("td:nth-child(2)").innerText);
        }
        else if (elem.getAttribute("class")=="revoke")
        {
            add_request_row(row.firstChild.innerText,row.firstChild.dataset.request_message);
        }
        row.remove();
    })
    
    
    
}





function add_access_row(username,request_message)
{
//#access_requests_table
// <tr>
//    <td>username</td>
//    <td>
//        <button class="reject"><i class="fa-solid fa-close"></i></button>
//    </td>
// </tr>
    var table_row=document.createElement("tr");
    var username_tag=document.createElement("td");
    username_tag.innerText=username;
    username_tag.dataset.request_message=request_message;
    var remove_access_tag=document.createElement("td");
    remove_access_tag.innerHTML='<button class="revoke" onclick="perform_action(this);"><i class="fa-solid fa-close"></i></button>';
    table_row.appendChild(username_tag);
    table_row.appendChild(remove_access_tag);
    document.querySelector("#access_granted_table").appendChild(table_row);
}


// add_access_row('username')
// add_access_row('anuj')
// add_access_row('abc')