Selaa lähdekoodia

:art: render HTML

mudler 3 vuotta sitten
vanhempi
commit
dc95652ddd
1 muutettua tiedostoa jossa 364 lisäystä ja 7 poistoa
  1. 364 7
      api/public/index.html

+ 364 - 7
api/public/index.html

@@ -252,11 +252,40 @@
 
 
 
+
         <div class="w-full px-4 md:px-0 md:mt-8 mb-16 text-gray-800 leading-normal"
 
                 x-data="machines()"
                 x-init="$interval(updateItems, 1500)"
                 >
+
+
+            <!-- Notification toast -->
+            <div
+                x-show="open"
+                class="w-96 p-4 rounded h-32 fixed bottom-4 right-4 transform-gpu transition-transform duration-400 ease"
+                x-class="success ? 'bg-green-500' : 'bg-red-500'"
+                x-transition:enter-start="opacity-0 translate-y-full"
+                x-transition:enter-end="opacity-100 translate-y-0"
+                x-transition:leave-start="translate-y-0"
+                x-transition:leave="transition transform ease-in duration-300"
+                x-transition:leave-end="opacity-0 translate-y-full"
+                >
+                <div class="bg-white border-gray-300 dark:border-slate-800 dark:bg-slate-900 border p-3 flex items-start shadow-lg rounded-md space-x-2">
+                  <svg class="flex-shrink-0 h-6 w-6 text-green-400" stroke="currentColor" viewBox="0 0 20 20">
+                    <path stroke-width="1" d="M10.219,1.688c-4.471,0-8.094,3.623-8.094,8.094s3.623,8.094,8.094,8.094s8.094-3.623,8.094-8.094S14.689,1.688,10.219,1.688 M10.219,17.022c-3.994,0-7.242-3.247-7.242-7.241c0-3.994,3.248-7.242,7.242-7.242c3.994,0,7.241,3.248,7.241,7.242C17.46,13.775,14.213,17.022,10.219,17.022 M15.099,7.03c-0.167-0.167-0.438-0.167-0.604,0.002L9.062,12.48l-2.269-2.277c-0.166-0.167-0.437-0.167-0.603,0c-0.166,0.166-0.168,0.437-0.002,0.603l2.573,2.578c0.079,0.08,0.188,0.125,0.3,0.125s0.222-0.045,0.303-0.125l5.736-5.751C15.268,7.466,15.265,7.196,15.099,7.03"></path>
+                  </svg>
+                  <div class="flex-1 space-y-1">
+                    <p class="text-base leading-6 font-medium text-gray-700 dark:text-gray-400" x-text="title"></p>
+                    <p class="text-sm leading-5 text-gray-600 dark:text-gray-400" x-text="message"></p>
+                  </div>
+                  <svg class="flex-shrink-0 h-5 w-5 text-gray-400 cursor-pointer" x-on:click="isShow = false" stroke="currentColor" viewBox="0 0 20 20">
+                    <path stroke-width="1.2" d="M15.898,4.045c-0.271-0.272-0.713-0.272-0.986,0l-4.71,4.711L5.493,4.045c-0.272-0.272-0.714-0.272-0.986,0s-0.272,0.714,0,0.986l4.709,4.711l-4.71,4.711c-0.272,0.271-0.272,0.713,0,0.986c0.136,0.136,0.314,0.203,0.492,0.203c0.179,0,0.357-0.067,0.493-0.203l4.711-4.711l4.71,4.711c0.137,0.136,0.314,0.203,0.494,0.203c0.178,0,0.355-0.067,0.492-0.203c0.273-0.273,0.273-0.715,0-0.986l-4.711-4.711l4.711-4.711C16.172,4.759,16.172,4.317,15.898,4.045z"></path>
+                  </svg>
+                </div>
+            </div>
+
+
             <div class="w-full mt-12 p-3 dark:bg-gray-900 border dark:border-gray-800 rounded shadow">
                 <div class="border-b bg-white-200 dark:bg-gray-900 dark:border-gray-800 p-3">
                     <h5 class="font-bold uppercase dark:text-gray-600">Nodes</h5>
@@ -304,7 +333,9 @@
                             
                                 <th class="w-1/3 text-left py-3 px-4 uppercase font-semibold text-sm">Version</th>
                             
-
+                            
+                                <th class="w-1/3 text-left py-3 px-4 uppercase font-semibold text-sm"></th>
+                                
                             </tr>
                         </thead>
                         <tbody class="text-black dark:text-white">
@@ -325,6 +356,19 @@
                                     
                                         <td x-text="d.Version" class="text-left py-3 px-4"></td>
                                     
+                                    
+
+                                    <!-- Action menu -->
+                                    <td class="text-left py-3 px-4" >
+                                         <button
+                                          class="px-3 py-2 rounded"
+                                          type="button"
+                                          x-on:click="deleteItem(d.Address)"
+                                          >
+                                          <i class="fa-solid fa-trash-can"></i>
+                                          </button>
+                                    </td>
+                                    
                                    </tr>
                              </template>                          
                         </tbody>
@@ -491,11 +535,40 @@
 
 
 
+
         <div class="w-full px-4 md:px-0 md:mt-8 mb-16 text-gray-800 leading-normal"
 
                 x-data="dns()"
                 x-init="$interval(updateItems, 1500)"
                 >
+
+
+            <!-- Notification toast -->
+            <div
+                x-show="open"
+                class="w-96 p-4 rounded h-32 fixed bottom-4 right-4 transform-gpu transition-transform duration-400 ease"
+                x-class="success ? 'bg-green-500' : 'bg-red-500'"
+                x-transition:enter-start="opacity-0 translate-y-full"
+                x-transition:enter-end="opacity-100 translate-y-0"
+                x-transition:leave-start="translate-y-0"
+                x-transition:leave="transition transform ease-in duration-300"
+                x-transition:leave-end="opacity-0 translate-y-full"
+                >
+                <div class="bg-white border-gray-300 dark:border-slate-800 dark:bg-slate-900 border p-3 flex items-start shadow-lg rounded-md space-x-2">
+                  <svg class="flex-shrink-0 h-6 w-6 text-green-400" stroke="currentColor" viewBox="0 0 20 20">
+                    <path stroke-width="1" d="M10.219,1.688c-4.471,0-8.094,3.623-8.094,8.094s3.623,8.094,8.094,8.094s8.094-3.623,8.094-8.094S14.689,1.688,10.219,1.688 M10.219,17.022c-3.994,0-7.242-3.247-7.242-7.241c0-3.994,3.248-7.242,7.242-7.242c3.994,0,7.241,3.248,7.241,7.242C17.46,13.775,14.213,17.022,10.219,17.022 M15.099,7.03c-0.167-0.167-0.438-0.167-0.604,0.002L9.062,12.48l-2.269-2.277c-0.166-0.167-0.437-0.167-0.603,0c-0.166,0.166-0.168,0.437-0.002,0.603l2.573,2.578c0.079,0.08,0.188,0.125,0.3,0.125s0.222-0.045,0.303-0.125l5.736-5.751C15.268,7.466,15.265,7.196,15.099,7.03"></path>
+                  </svg>
+                  <div class="flex-1 space-y-1">
+                    <p class="text-base leading-6 font-medium text-gray-700 dark:text-gray-400" x-text="title"></p>
+                    <p class="text-sm leading-5 text-gray-600 dark:text-gray-400" x-text="message"></p>
+                  </div>
+                  <svg class="flex-shrink-0 h-5 w-5 text-gray-400 cursor-pointer" x-on:click="isShow = false" stroke="currentColor" viewBox="0 0 20 20">
+                    <path stroke-width="1.2" d="M15.898,4.045c-0.271-0.272-0.713-0.272-0.986,0l-4.71,4.711L5.493,4.045c-0.272-0.272-0.714-0.272-0.986,0s-0.272,0.714,0,0.986l4.709,4.711l-4.71,4.711c-0.272,0.271-0.272,0.713,0,0.986c0.136,0.136,0.314,0.203,0.492,0.203c0.179,0,0.357-0.067,0.493-0.203l4.711-4.711l4.71,4.711c0.137,0.136,0.314,0.203,0.494,0.203c0.178,0,0.355-0.067,0.492-0.203c0.273-0.273,0.273-0.715,0-0.986l-4.711-4.711l4.711-4.711C16.172,4.759,16.172,4.317,15.898,4.045z"></path>
+                  </svg>
+                </div>
+            </div>
+
+
             <div class="w-full mt-12 p-3 dark:bg-gray-900 border dark:border-gray-800 rounded shadow">
                 <div class="border-b bg-white-200 dark:bg-gray-900 dark:border-gray-800 p-3">
                     <h5 class="font-bold uppercase dark:text-gray-600">DNS</h5>
@@ -535,7 +608,9 @@
                             
                                 <th class="w-1/3 text-left py-3 px-4 uppercase font-semibold text-sm">Records</th>
                             
-
+                            
+                                <th class="w-1/3 text-left py-3 px-4 uppercase font-semibold text-sm"></th>
+                                
                             </tr>
                         </thead>
                         <tbody class="text-black dark:text-white">
@@ -548,6 +623,19 @@
                                     
                                         <td x-text="JSON.stringify(d.Records)" class="text-left py-3 px-4"></td>
                                     
+                                    
+
+                                    <!-- Action menu -->
+                                    <td class="text-left py-3 px-4" >
+                                         <button
+                                          class="px-3 py-2 rounded"
+                                          type="button"
+                                          x-on:click="deleteItem(d.Regex)"
+                                          >
+                                          <i class="fa-solid fa-trash-can"></i>
+                                          </button>
+                                    </td>
+                                    
                                    </tr>
                              </template>                          
                         </tbody>
@@ -689,11 +777,40 @@
 
 
 
+
         <div class="w-full px-4 md:px-0 md:mt-8 mb-16 text-gray-800 leading-normal"
 
                 x-data="services()"
                 x-init="$interval(updateItems, 1500)"
                 >
+
+
+            <!-- Notification toast -->
+            <div
+                x-show="open"
+                class="w-96 p-4 rounded h-32 fixed bottom-4 right-4 transform-gpu transition-transform duration-400 ease"
+                x-class="success ? 'bg-green-500' : 'bg-red-500'"
+                x-transition:enter-start="opacity-0 translate-y-full"
+                x-transition:enter-end="opacity-100 translate-y-0"
+                x-transition:leave-start="translate-y-0"
+                x-transition:leave="transition transform ease-in duration-300"
+                x-transition:leave-end="opacity-0 translate-y-full"
+                >
+                <div class="bg-white border-gray-300 dark:border-slate-800 dark:bg-slate-900 border p-3 flex items-start shadow-lg rounded-md space-x-2">
+                  <svg class="flex-shrink-0 h-6 w-6 text-green-400" stroke="currentColor" viewBox="0 0 20 20">
+                    <path stroke-width="1" d="M10.219,1.688c-4.471,0-8.094,3.623-8.094,8.094s3.623,8.094,8.094,8.094s8.094-3.623,8.094-8.094S14.689,1.688,10.219,1.688 M10.219,17.022c-3.994,0-7.242-3.247-7.242-7.241c0-3.994,3.248-7.242,7.242-7.242c3.994,0,7.241,3.248,7.241,7.242C17.46,13.775,14.213,17.022,10.219,17.022 M15.099,7.03c-0.167-0.167-0.438-0.167-0.604,0.002L9.062,12.48l-2.269-2.277c-0.166-0.167-0.437-0.167-0.603,0c-0.166,0.166-0.168,0.437-0.002,0.603l2.573,2.578c0.079,0.08,0.188,0.125,0.3,0.125s0.222-0.045,0.303-0.125l5.736-5.751C15.268,7.466,15.265,7.196,15.099,7.03"></path>
+                  </svg>
+                  <div class="flex-1 space-y-1">
+                    <p class="text-base leading-6 font-medium text-gray-700 dark:text-gray-400" x-text="title"></p>
+                    <p class="text-sm leading-5 text-gray-600 dark:text-gray-400" x-text="message"></p>
+                  </div>
+                  <svg class="flex-shrink-0 h-5 w-5 text-gray-400 cursor-pointer" x-on:click="isShow = false" stroke="currentColor" viewBox="0 0 20 20">
+                    <path stroke-width="1.2" d="M15.898,4.045c-0.271-0.272-0.713-0.272-0.986,0l-4.71,4.711L5.493,4.045c-0.272-0.272-0.714-0.272-0.986,0s-0.272,0.714,0,0.986l4.709,4.711l-4.71,4.711c-0.272,0.271-0.272,0.713,0,0.986c0.136,0.136,0.314,0.203,0.492,0.203c0.179,0,0.357-0.067,0.493-0.203l4.711-4.711l4.71,4.711c0.137,0.136,0.314,0.203,0.494,0.203c0.178,0,0.355-0.067,0.492-0.203c0.273-0.273,0.273-0.715,0-0.986l-4.711-4.711l4.711-4.711C16.172,4.759,16.172,4.317,15.898,4.045z"></path>
+                  </svg>
+                </div>
+            </div>
+
+
             <div class="w-full mt-12 p-3 dark:bg-gray-900 border dark:border-gray-800 rounded shadow">
                 <div class="border-b bg-white-200 dark:bg-gray-900 dark:border-gray-800 p-3">
                     <h5 class="font-bold uppercase dark:text-gray-600">TCP Tunnels</h5>
@@ -733,7 +850,7 @@
                             
                                 <th class="w-1/3 text-left py-3 px-4 uppercase font-semibold text-sm">PeerID</th>
                             
-
+                            
                             </tr>
                         </thead>
                         <tbody class="text-black dark:text-white">
@@ -746,6 +863,7 @@
                                     
                                         <td x-text="d.PeerID" class="text-left py-3 px-4"></td>
                                     
+                                    
                                    </tr>
                              </template>                          
                         </tbody>
@@ -882,11 +1000,40 @@
 
 
 
+
         <div class="w-full px-4 md:px-0 md:mt-8 mb-16 text-gray-800 leading-normal"
 
                 x-data="files()"
                 x-init="$interval(updateItems, 1500)"
                 >
+
+
+            <!-- Notification toast -->
+            <div
+                x-show="open"
+                class="w-96 p-4 rounded h-32 fixed bottom-4 right-4 transform-gpu transition-transform duration-400 ease"
+                x-class="success ? 'bg-green-500' : 'bg-red-500'"
+                x-transition:enter-start="opacity-0 translate-y-full"
+                x-transition:enter-end="opacity-100 translate-y-0"
+                x-transition:leave-start="translate-y-0"
+                x-transition:leave="transition transform ease-in duration-300"
+                x-transition:leave-end="opacity-0 translate-y-full"
+                >
+                <div class="bg-white border-gray-300 dark:border-slate-800 dark:bg-slate-900 border p-3 flex items-start shadow-lg rounded-md space-x-2">
+                  <svg class="flex-shrink-0 h-6 w-6 text-green-400" stroke="currentColor" viewBox="0 0 20 20">
+                    <path stroke-width="1" d="M10.219,1.688c-4.471,0-8.094,3.623-8.094,8.094s3.623,8.094,8.094,8.094s8.094-3.623,8.094-8.094S14.689,1.688,10.219,1.688 M10.219,17.022c-3.994,0-7.242-3.247-7.242-7.241c0-3.994,3.248-7.242,7.242-7.242c3.994,0,7.241,3.248,7.241,7.242C17.46,13.775,14.213,17.022,10.219,17.022 M15.099,7.03c-0.167-0.167-0.438-0.167-0.604,0.002L9.062,12.48l-2.269-2.277c-0.166-0.167-0.437-0.167-0.603,0c-0.166,0.166-0.168,0.437-0.002,0.603l2.573,2.578c0.079,0.08,0.188,0.125,0.3,0.125s0.222-0.045,0.303-0.125l5.736-5.751C15.268,7.466,15.265,7.196,15.099,7.03"></path>
+                  </svg>
+                  <div class="flex-1 space-y-1">
+                    <p class="text-base leading-6 font-medium text-gray-700 dark:text-gray-400" x-text="title"></p>
+                    <p class="text-sm leading-5 text-gray-600 dark:text-gray-400" x-text="message"></p>
+                  </div>
+                  <svg class="flex-shrink-0 h-5 w-5 text-gray-400 cursor-pointer" x-on:click="isShow = false" stroke="currentColor" viewBox="0 0 20 20">
+                    <path stroke-width="1.2" d="M15.898,4.045c-0.271-0.272-0.713-0.272-0.986,0l-4.71,4.711L5.493,4.045c-0.272-0.272-0.714-0.272-0.986,0s-0.272,0.714,0,0.986l4.709,4.711l-4.71,4.711c-0.272,0.271-0.272,0.713,0,0.986c0.136,0.136,0.314,0.203,0.492,0.203c0.179,0,0.357-0.067,0.493-0.203l4.711-4.711l4.71,4.711c0.137,0.136,0.314,0.203,0.494,0.203c0.178,0,0.355-0.067,0.492-0.203c0.273-0.273,0.273-0.715,0-0.986l-4.711-4.711l4.711-4.711C16.172,4.759,16.172,4.317,15.898,4.045z"></path>
+                  </svg>
+                </div>
+            </div>
+
+
             <div class="w-full mt-12 p-3 dark:bg-gray-900 border dark:border-gray-800 rounded shadow">
                 <div class="border-b bg-white-200 dark:bg-gray-900 dark:border-gray-800 p-3">
                     <h5 class="font-bold uppercase dark:text-gray-600">Files</h5>
@@ -926,7 +1073,7 @@
                             
                                 <th class="w-1/3 text-left py-3 px-4 uppercase font-semibold text-sm">PeerID</th>
                             
-
+                            
                             </tr>
                         </thead>
                         <tbody class="text-black dark:text-white">
@@ -939,6 +1086,7 @@
                                     
                                         <td x-text="d.PeerID" class="text-left py-3 px-4"></td>
                                     
+                                    
                                    </tr>
                              </template>                          
                         </tbody>
@@ -1066,11 +1214,40 @@
 
 
 
+
         <div class="w-full px-4 md:px-0 md:mt-8 mb-16 text-gray-800 leading-normal"
 
                 x-data="nodes()"
                 x-init="$interval(updateItems, 1500)"
                 >
+
+
+            <!-- Notification toast -->
+            <div
+                x-show="open"
+                class="w-96 p-4 rounded h-32 fixed bottom-4 right-4 transform-gpu transition-transform duration-400 ease"
+                x-class="success ? 'bg-green-500' : 'bg-red-500'"
+                x-transition:enter-start="opacity-0 translate-y-full"
+                x-transition:enter-end="opacity-100 translate-y-0"
+                x-transition:leave-start="translate-y-0"
+                x-transition:leave="transition transform ease-in duration-300"
+                x-transition:leave-end="opacity-0 translate-y-full"
+                >
+                <div class="bg-white border-gray-300 dark:border-slate-800 dark:bg-slate-900 border p-3 flex items-start shadow-lg rounded-md space-x-2">
+                  <svg class="flex-shrink-0 h-6 w-6 text-green-400" stroke="currentColor" viewBox="0 0 20 20">
+                    <path stroke-width="1" d="M10.219,1.688c-4.471,0-8.094,3.623-8.094,8.094s3.623,8.094,8.094,8.094s8.094-3.623,8.094-8.094S14.689,1.688,10.219,1.688 M10.219,17.022c-3.994,0-7.242-3.247-7.242-7.241c0-3.994,3.248-7.242,7.242-7.242c3.994,0,7.241,3.248,7.241,7.242C17.46,13.775,14.213,17.022,10.219,17.022 M15.099,7.03c-0.167-0.167-0.438-0.167-0.604,0.002L9.062,12.48l-2.269-2.277c-0.166-0.167-0.437-0.167-0.603,0c-0.166,0.166-0.168,0.437-0.002,0.603l2.573,2.578c0.079,0.08,0.188,0.125,0.3,0.125s0.222-0.045,0.303-0.125l5.736-5.751C15.268,7.466,15.265,7.196,15.099,7.03"></path>
+                  </svg>
+                  <div class="flex-1 space-y-1">
+                    <p class="text-base leading-6 font-medium text-gray-700 dark:text-gray-400" x-text="title"></p>
+                    <p class="text-sm leading-5 text-gray-600 dark:text-gray-400" x-text="message"></p>
+                  </div>
+                  <svg class="flex-shrink-0 h-5 w-5 text-gray-400 cursor-pointer" x-on:click="isShow = false" stroke="currentColor" viewBox="0 0 20 20">
+                    <path stroke-width="1.2" d="M15.898,4.045c-0.271-0.272-0.713-0.272-0.986,0l-4.71,4.711L5.493,4.045c-0.272-0.272-0.714-0.272-0.986,0s-0.272,0.714,0,0.986l4.709,4.711l-4.71,4.711c-0.272,0.271-0.272,0.713,0,0.986c0.136,0.136,0.314,0.203,0.492,0.203c0.179,0,0.357-0.067,0.493-0.203l4.711-4.711l4.71,4.711c0.137,0.136,0.314,0.203,0.494,0.203c0.178,0,0.355-0.067,0.492-0.203c0.273-0.273,0.273-0.715,0-0.986l-4.711-4.711l4.711-4.711C16.172,4.759,16.172,4.317,15.898,4.045z"></path>
+                  </svg>
+                </div>
+            </div>
+
+
             <div class="w-full mt-12 p-3 dark:bg-gray-900 border dark:border-gray-800 rounded shadow">
                 <div class="border-b bg-white-200 dark:bg-gray-900 dark:border-gray-800 p-3">
                     <h5 class="font-bold uppercase dark:text-gray-600">Nodes</h5>
@@ -1110,7 +1287,7 @@
                             
                                 <th class="w-1/3 text-left py-3 px-4 uppercase font-semibold text-sm">Online</th>
                             
-
+                            
                             </tr>
                         </thead>
                         <tbody class="text-black dark:text-white">
@@ -1123,6 +1300,7 @@
                                     
                                         <td x-text="d.Online" class="text-left py-3 px-4"></td>
                                     
+                                    
                                    </tr>
                              </template>                          
                         </tbody>
@@ -1246,11 +1424,40 @@
 
 
 
+
         <div class="w-full px-4 md:px-0 md:mt-8 mb-16 text-gray-800 leading-normal"
 
                 x-data="peerstore()"
                 x-init="$interval(updateItems, 1500)"
                 >
+
+
+            <!-- Notification toast -->
+            <div
+                x-show="open"
+                class="w-96 p-4 rounded h-32 fixed bottom-4 right-4 transform-gpu transition-transform duration-400 ease"
+                x-class="success ? 'bg-green-500' : 'bg-red-500'"
+                x-transition:enter-start="opacity-0 translate-y-full"
+                x-transition:enter-end="opacity-100 translate-y-0"
+                x-transition:leave-start="translate-y-0"
+                x-transition:leave="transition transform ease-in duration-300"
+                x-transition:leave-end="opacity-0 translate-y-full"
+                >
+                <div class="bg-white border-gray-300 dark:border-slate-800 dark:bg-slate-900 border p-3 flex items-start shadow-lg rounded-md space-x-2">
+                  <svg class="flex-shrink-0 h-6 w-6 text-green-400" stroke="currentColor" viewBox="0 0 20 20">
+                    <path stroke-width="1" d="M10.219,1.688c-4.471,0-8.094,3.623-8.094,8.094s3.623,8.094,8.094,8.094s8.094-3.623,8.094-8.094S14.689,1.688,10.219,1.688 M10.219,17.022c-3.994,0-7.242-3.247-7.242-7.241c0-3.994,3.248-7.242,7.242-7.242c3.994,0,7.241,3.248,7.241,7.242C17.46,13.775,14.213,17.022,10.219,17.022 M15.099,7.03c-0.167-0.167-0.438-0.167-0.604,0.002L9.062,12.48l-2.269-2.277c-0.166-0.167-0.437-0.167-0.603,0c-0.166,0.166-0.168,0.437-0.002,0.603l2.573,2.578c0.079,0.08,0.188,0.125,0.3,0.125s0.222-0.045,0.303-0.125l5.736-5.751C15.268,7.466,15.265,7.196,15.099,7.03"></path>
+                  </svg>
+                  <div class="flex-1 space-y-1">
+                    <p class="text-base leading-6 font-medium text-gray-700 dark:text-gray-400" x-text="title"></p>
+                    <p class="text-sm leading-5 text-gray-600 dark:text-gray-400" x-text="message"></p>
+                  </div>
+                  <svg class="flex-shrink-0 h-5 w-5 text-gray-400 cursor-pointer" x-on:click="isShow = false" stroke="currentColor" viewBox="0 0 20 20">
+                    <path stroke-width="1.2" d="M15.898,4.045c-0.271-0.272-0.713-0.272-0.986,0l-4.71,4.711L5.493,4.045c-0.272-0.272-0.714-0.272-0.986,0s-0.272,0.714,0,0.986l4.709,4.711l-4.71,4.711c-0.272,0.271-0.272,0.713,0,0.986c0.136,0.136,0.314,0.203,0.492,0.203c0.179,0,0.357-0.067,0.493-0.203l4.711-4.711l4.71,4.711c0.137,0.136,0.314,0.203,0.494,0.203c0.178,0,0.355-0.067,0.492-0.203c0.273-0.273,0.273-0.715,0-0.986l-4.711-4.711l4.711-4.711C16.172,4.759,16.172,4.317,15.898,4.045z"></path>
+                  </svg>
+                </div>
+            </div>
+
+
             <div class="w-full mt-12 p-3 dark:bg-gray-900 border dark:border-gray-800 rounded shadow">
                 <div class="border-b bg-white-200 dark:bg-gray-900 dark:border-gray-800 p-3">
                     <h5 class="font-bold uppercase dark:text-gray-600">Peer store</h5>
@@ -1288,7 +1495,7 @@
                             
                                 <th class="w-1/3 text-left py-3 px-4 uppercase font-semibold text-sm">PeerID</th>
                             
-
+                            
                             </tr>
                         </thead>
                         <tbody class="text-black dark:text-white">
@@ -1299,6 +1506,7 @@
                                     
                                         <td x-text="d.ID" class="text-left py-3 px-4"></td>
                                     
+                                    
                                    </tr>
                              </template>                          
                         </tbody>
@@ -1577,11 +1785,40 @@
 
 
 
+
         <div class="w-full px-4 md:px-0 md:mt-8 mb-16 text-gray-800 leading-normal"
 
                 x-data="users()"
                 x-init="$interval(updateItems, 1500)"
                 >
+
+
+            <!-- Notification toast -->
+            <div
+                x-show="open"
+                class="w-96 p-4 rounded h-32 fixed bottom-4 right-4 transform-gpu transition-transform duration-400 ease"
+                x-class="success ? 'bg-green-500' : 'bg-red-500'"
+                x-transition:enter-start="opacity-0 translate-y-full"
+                x-transition:enter-end="opacity-100 translate-y-0"
+                x-transition:leave-start="translate-y-0"
+                x-transition:leave="transition transform ease-in duration-300"
+                x-transition:leave-end="opacity-0 translate-y-full"
+                >
+                <div class="bg-white border-gray-300 dark:border-slate-800 dark:bg-slate-900 border p-3 flex items-start shadow-lg rounded-md space-x-2">
+                  <svg class="flex-shrink-0 h-6 w-6 text-green-400" stroke="currentColor" viewBox="0 0 20 20">
+                    <path stroke-width="1" d="M10.219,1.688c-4.471,0-8.094,3.623-8.094,8.094s3.623,8.094,8.094,8.094s8.094-3.623,8.094-8.094S14.689,1.688,10.219,1.688 M10.219,17.022c-3.994,0-7.242-3.247-7.242-7.241c0-3.994,3.248-7.242,7.242-7.242c3.994,0,7.241,3.248,7.241,7.242C17.46,13.775,14.213,17.022,10.219,17.022 M15.099,7.03c-0.167-0.167-0.438-0.167-0.604,0.002L9.062,12.48l-2.269-2.277c-0.166-0.167-0.437-0.167-0.603,0c-0.166,0.166-0.168,0.437-0.002,0.603l2.573,2.578c0.079,0.08,0.188,0.125,0.3,0.125s0.222-0.045,0.303-0.125l5.736-5.751C15.268,7.466,15.265,7.196,15.099,7.03"></path>
+                  </svg>
+                  <div class="flex-1 space-y-1">
+                    <p class="text-base leading-6 font-medium text-gray-700 dark:text-gray-400" x-text="title"></p>
+                    <p class="text-sm leading-5 text-gray-600 dark:text-gray-400" x-text="message"></p>
+                  </div>
+                  <svg class="flex-shrink-0 h-5 w-5 text-gray-400 cursor-pointer" x-on:click="isShow = false" stroke="currentColor" viewBox="0 0 20 20">
+                    <path stroke-width="1.2" d="M15.898,4.045c-0.271-0.272-0.713-0.272-0.986,0l-4.71,4.711L5.493,4.045c-0.272-0.272-0.714-0.272-0.986,0s-0.272,0.714,0,0.986l4.709,4.711l-4.71,4.711c-0.272,0.271-0.272,0.713,0,0.986c0.136,0.136,0.314,0.203,0.492,0.203c0.179,0,0.357-0.067,0.493-0.203l4.711-4.711l4.71,4.711c0.137,0.136,0.314,0.203,0.494,0.203c0.178,0,0.355-0.067,0.492-0.203c0.273-0.273,0.273-0.715,0-0.986l-4.711-4.711l4.711-4.711C16.172,4.759,16.172,4.317,15.898,4.045z"></path>
+                  </svg>
+                </div>
+            </div>
+
+
             <div class="w-full mt-12 p-3 dark:bg-gray-900 border dark:border-gray-800 rounded shadow">
                 <div class="border-b bg-white-200 dark:bg-gray-900 dark:border-gray-800 p-3">
                     <h5 class="font-bold uppercase dark:text-gray-600">Connected users</h5>
@@ -1621,7 +1858,7 @@
                             
                                 <th class="w-1/3 text-left py-3 px-4 uppercase font-semibold text-sm">Time</th>
                             
-
+                            
                             </tr>
                         </thead>
                         <tbody class="text-black dark:text-white">
@@ -1634,6 +1871,7 @@
                                     
                                         <td x-text="d.Timestamp" class="text-left py-3 px-4"></td>
                                     
+                                    
                                    </tr>
                              </template>                          
                         </tbody>
@@ -1867,11 +2105,33 @@
 
 
 
+
     function machines(){
         return {
             data: [
              
             ],
+            open: false,
+            title: "",
+            message: "",
+            success: false,
+            openToast(title, message, success) {
+                this.title = title
+                this.message = message
+                this.success = success
+                this.open = true
+                setTimeout(() => {
+                    this.open = false
+                }, 5000)
+            },
+            
+            deleteItem(item) {
+              fetch('/api/ledger/machines/'.concat("",item), {
+                method: 'DELETE',
+              });
+              this.openToast("Delete", "Announcing deletion to the blockchain, please wait", true);
+            },
+            
             updateItems() {
               fetch('/api/machines')
                 .then(response => response.json())
@@ -1932,11 +2192,26 @@
 
 
 
+
     function peerstore(){
         return {
             data: [
              
             ],
+            open: false,
+            title: "",
+            message: "",
+            success: false,
+            openToast(title, message, success) {
+                this.title = title
+                this.message = message
+                this.success = success
+                this.open = true
+                setTimeout(() => {
+                    this.open = false
+                }, 5000)
+            },
+            
             updateItems() {
               fetch('/api/peerstore')
                 .then(response => response.json())
@@ -1997,11 +2272,26 @@
 
 
 
+
     function nodes(){
         return {
             data: [
              
             ],
+            open: false,
+            title: "",
+            message: "",
+            success: false,
+            openToast(title, message, success) {
+                this.title = title
+                this.message = message
+                this.success = success
+                this.open = true
+                setTimeout(() => {
+                    this.open = false
+                }, 5000)
+            },
+            
             updateItems() {
               fetch('/api/nodes')
                 .then(response => response.json())
@@ -2062,11 +2352,26 @@
 
 
 
+
     function users(){
         return {
             data: [
              
             ],
+            open: false,
+            title: "",
+            message: "",
+            success: false,
+            openToast(title, message, success) {
+                this.title = title
+                this.message = message
+                this.success = success
+                this.open = true
+                setTimeout(() => {
+                    this.open = false
+                }, 5000)
+            },
+            
             updateItems() {
               fetch('/api/users')
                 .then(response => response.json())
@@ -2127,11 +2432,33 @@
 
 
 
+
     function dns(){
         return {
             data: [
              
             ],
+            open: false,
+            title: "",
+            message: "",
+            success: false,
+            openToast(title, message, success) {
+                this.title = title
+                this.message = message
+                this.success = success
+                this.open = true
+                setTimeout(() => {
+                    this.open = false
+                }, 5000)
+            },
+            
+            deleteItem(item) {
+              fetch('/api/ledger/dns/'.concat("",item), {
+                method: 'DELETE',
+              });
+              this.openToast("Delete", "Announcing deletion to the blockchain, please wait", true);
+            },
+            
             updateItems() {
               fetch('/api/dns')
                 .then(response => response.json())
@@ -2192,11 +2519,26 @@
 
 
 
+
     function services(){
         return {
             data: [
              
             ],
+            open: false,
+            title: "",
+            message: "",
+            success: false,
+            openToast(title, message, success) {
+                this.title = title
+                this.message = message
+                this.success = success
+                this.open = true
+                setTimeout(() => {
+                    this.open = false
+                }, 5000)
+            },
+            
             updateItems() {
               fetch('/api/services')
                 .then(response => response.json())
@@ -2257,11 +2599,26 @@
 
 
 
+
     function files(){
         return {
             data: [
              
             ],
+            open: false,
+            title: "",
+            message: "",
+            success: false,
+            openToast(title, message, success) {
+                this.title = title
+                this.message = message
+                this.success = success
+                this.open = true
+                setTimeout(() => {
+                    this.open = false
+                }, 5000)
+            },
+            
             updateItems() {
               fetch('/api/files')
                 .then(response => response.json())