Browse Source

Merge pull request #284 from andreapollastri/3.x

FE Rollback
Andrea Pollastri 3 năm trước cách đây
mục cha
commit
a4e73de92d
2 tập tin đã thay đổi với 162 bổ sung209 xóa
  1. 69 79
      resources/views/servers.blade.php
  2. 93 130
      resources/views/sites.blade.php

+ 69 - 79
resources/views/servers.blade.php

@@ -160,97 +160,87 @@
 
 
 
-
 @section('js')
 <script>
     //Get DT Data
     getData('/api/servers');
 
-    let dt = null;
-
     //Datatable
     function dtRender() {
-        if ($.fn.dataTable.isDataTable('#dt')) {
-            dt = $('#dt').DataTable();
-        }
-        else {
-            dt = $('#dt').DataTable({
-                'processing': true,
-                'data': JSON.parse(localStorage.getItem('dtdata')),
-                'columns': [
-                    {data: 'name'},
-                    {data: 'ip'},
-                    {data: 'provider'},
-                    {data: 'location'},
-                    {
-                        data: {
-                            'server_id': 'server_id',
-                            'default': 'default',
-                            'name': 'name',
-                            'status': 'status',
-                            'ip': 'ip'
-                        }
-                    }
-                ],
-                'columnDefs': [
-                    {
-                        'targets': 0,
-                        'className': 'd-none d-md-table-cell',
-                    },
-                    {
-                        'targets': 1,
-                        'className': 'text-center',
-                    },
-                    {
-                        'targets': 2,
-                        'className': 'text-center d-none d-lg-table-cell',
-                    },
-                    {
-                        'targets': 3,
-                        'className': 'text-center d-none d-xl-table-cell',
-                    },
-                    {
-                        'targets': 4,
-                        'className': 'text-center',
-                        'render': function (data, type, row, meta) {
-                            if (data['status'] == 0) {
-                                if (data['default']) {
-                                    return '<span class="btn btn-sm btn-warning mr-3"><i class="fas fa-circle-notch fa-spin fa-fw"></i> <b class="d-none d-sm-inline">Wait...</b></span><span class="disabled btn btn-sm btn-danger"><i class="fas fa-times fa-fw"></i> <b class="d-none d-sm-inline">Delete</b></span>';
-                                } else {
-                                    return '<button data-id="' + data['server_id'] + '" data-ip="' + data['ip'] + '" class="btinstall btn btn-sm btn-secondary mr-3"><i class="fas fa-terminal fa-fw"></i> <b class="d-none d-sm-inline">Install</b></button><button data-id="' + data['server_id'] + '" data-name="' + data['name'] + '" data-ip="' + data['ip'] + '" class="btdelete btn btn-sm btn-danger"><i class="fas fa-times fa-fw"></i> <b class="d-none d-sm-inline">Delete</b></button>';
-                                }
+        $('#dt').DataTable( {
+            'processing': true,
+            'data': JSON.parse(localStorage.getItem('dtdata')),
+            'columns': [
+                { data: 'name' },
+                { data: 'ip' },
+                { data: 'provider' },
+                { data: 'location' },
+                { data: {
+                    'server_id': 'server_id',
+                    'default': 'default',
+                    'name': 'name',
+                    'status': 'status',
+                    'ip': 'ip'
+                }}
+            ],
+            'columnDefs': [
+                {
+                    'targets': 0,
+                    'className': 'd-none d-md-table-cell',
+                },
+                {
+                    'targets': 1,
+                    'className': 'text-center',
+                },
+                {
+                    'targets': 2,
+                    'className': 'text-center d-none d-lg-table-cell',
+                },
+                {
+                    'targets': 3,
+                    'className': 'text-center d-none d-xl-table-cell',
+                },
+                {
+                    'targets': 4,
+                    'className': 'text-center',
+                    'render': function ( data, type, row, meta ) {
+                        if(data['status'] == 0) {
+                            if(data['default']) {
+                                return '<span class="btn btn-sm btn-warning mr-3"><i class="fas fa-circle-notch fa-spin fa-fw"></i> <b class="d-none d-sm-inline">Wait...</b></span><span class="disabled btn btn-sm btn-danger"><i class="fas fa-times fa-fw"></i> <b class="d-none d-sm-inline">Delete</b></span>';
                             } else {
-                                if (data['default']) {
-                                    return '<button data-id="' + data['server_id'] + '" class="btmanage btn btn-sm btn-primary mr-3"><i class="fas fa-cog fa-fw"></i> <b class="d-none d-sm-inline">Manage</b></button><span class="disabled btn btn-sm btn-danger"><i class="fas fa-times fa-fw"></i> <b class="d-none d-sm-inline">Delete</b></span>';
-                                } else {
-                                    return '<button data-id="' + data['server_id'] + '" class="btmanage btn btn-sm btn-primary mr-3"><i class="fas fa-cog fa-fw"></i> <b class="d-none d-sm-inline">Manage</b></button><button data-id="' + data['server_id'] + '" data-name="' + data['name'] + '" data-ip="' + data['ip'] + '" class="btdelete btn btn-sm btn-danger"><i class="fas fa-times fa-fw"></i> <b class="d-none d-sm-inline">Delete</b></button>';
-                                }
+                                return '<button data-id="'+data['server_id']+'" data-ip="'+data['ip']+'" class="btinstall btn btn-sm btn-secondary mr-3"><i class="fas fa-terminal fa-fw"></i> <b class="d-none d-sm-inline">Install</b></button><button data-id="'+data['server_id']+'" data-name="'+data['name']+'" data-ip="'+data['ip']+'" class="btdelete btn btn-sm btn-danger"><i class="fas fa-times fa-fw"></i> <b class="d-none d-sm-inline">Delete</b></button>';
+                            }
+                        } else {
+                            if(data['default']) {
+                                return '<button data-id="'+data['server_id']+'" class="btmanage btn btn-sm btn-primary mr-3"><i class="fas fa-cog fa-fw"></i> <b class="d-none d-sm-inline">Manage</b></button><span class="disabled btn btn-sm btn-danger"><i class="fas fa-times fa-fw"></i> <b class="d-none d-sm-inline">Delete</b></span>';
+                            } else {
+                                return '<button data-id="'+data['server_id']+'" class="btmanage btn btn-sm btn-primary mr-3"><i class="fas fa-cog fa-fw"></i> <b class="d-none d-sm-inline">Manage</b></button><button data-id="'+data['server_id']+'" data-name="'+data['name']+'" data-ip="'+data['ip']+'" class="btdelete btn btn-sm btn-danger"><i class="fas fa-times fa-fw"></i> <b class="d-none d-sm-inline">Delete</b></button>';
                             }
-
                         }
+
                     }
-                ],
-                'bLengthChange': false,
-                'bAutoWidth': true,
-                'responsive': true,
-                'drawCallback': function (settings) {
-                    //Manage Server
-                    $(".btmanage").click(function () {
-                        window.location.href = '/servers/' + $(this).attr('data-id');
-                    });
-                    //Delete Server
-                    $(".btdelete").click(function () {
-                        serverDelete($(this).attr('data-id'), $(this).attr('data-ip'), $(this).attr('data-name'));
-                    });
-                    //Setup Server
-                    $(".btinstall").click(function () {
-                        $('#installserverid').html($(this).attr('data-id'));
-                        $('#installserverssh').html($(this).attr('data-ip'));
-                        $('#installServerModal').modal();
-                    });
                 }
-            });
-        }
+            ],
+            'bLengthChange': false,
+            'bAutoWidth': true,
+            'responsive': true,
+            'drawCallback': function(settings) {
+                //Manage Server
+                $(".btmanage").click(function() {
+                    window.location.href = '/servers/'+$(this).attr('data-id');
+                });
+                //Delete Server
+                $(".btdelete").click(function() {
+                    serverDelete($(this).attr('data-id'),$(this).attr('data-ip'),$(this).attr('data-name'));
+                });
+                //Setup Server
+                $(".btinstall").click(function() {
+                    $('#installserverid').html($(this).attr('data-id'));
+                    $('#installserverssh').html($(this).attr('data-ip'));
+                    $('#installServerModal').modal();
+                });
+            }
+        });
     }
 
     //Delete Server

+ 93 - 130
resources/views/sites.blade.php

@@ -147,72 +147,108 @@
 
 
 
+
+
 @section('js')
 <script>
     //Get DT Data
     getData('/api/sites');
 
-    let dt = null;
-
     //Datatable
     function dtRender() {
-        if ($.fn.dataTable.isDataTable('#dt')) {
-            dt = $('#dt').DataTable();
-        }
-        else {
-            dt = $('#dt').DataTable({
-                'processing': true,
-                'data': JSON.parse(localStorage.getItem('dtdata')),
-                'columns': [
-                    {data: 'domain'},
-                    {data: 'aliases'},
-                    {data: 'server_name'},
-                    {data: 'server_ip'},
-                    {
-                        data: {
-                            'site_id': 'site_id',
-                            'domain': 'domain',
-                        }
-                    }
-                ],
-                'columnDefs': [
-                    {
-                        'targets': 1,
-                        'className': 'd-none d-md-table-cell text-center',
-                    },
-                    {
-                        'targets': 2,
-                        'className': 'text-center d-none d-lg-table-cell',
-                    },
-                    {
-                        'targets': 3,
-                        'className': 'text-center d-none d-xl-table-cell',
-                    },
-                    {
-                        'targets': 4,
-                        'className': 'text-center',
-                        'render': function (data, type, row, meta) {
-                            return '<button data-id="' + data['site_id'] + '" class="btmanage btn btn-sm btn-primary mr-3"><i class="fas fa-cog fa-fw"></i> <b class="d-none d-sm-inline">Manage</b></button><button data-id="' + data['site_id'] + '" data-name="' + data['domain'] + '" class="btdelete btn btn-sm btn-danger"><i class="fas fa-times fa-fw"></i> <b class="d-none d-sm-inline">Delete</b></button>';
-                        }
+        $('#dt').DataTable( {
+            'processing': true,
+            'data': JSON.parse(localStorage.getItem('dtdata')),
+            'columns': [
+                { data: 'domain' },
+                { data: 'aliases' },
+                { data: 'server_name' },
+                { data: 'server_ip' },
+                { data: {
+                    'site_id': 'site_id',
+                    'domain': 'domain',
+                }}
+            ],
+            'columnDefs': [
+                {
+                    'targets': 1,
+                    'className': 'd-none d-md-table-cell text-center',
+                },
+                {
+                    'targets': 2,
+                    'className': 'text-center d-none d-lg-table-cell',
+                },
+                {
+                    'targets': 3,
+                    'className': 'text-center d-none d-xl-table-cell',
+                },
+                {
+                    'targets': 4,
+                    'className': 'text-center',
+                    'render': function ( data, type, row, meta ) {
+                        return '<button data-id="'+data['site_id']+'" class="btmanage btn btn-sm btn-primary mr-3"><i class="fas fa-cog fa-fw"></i> <b class="d-none d-sm-inline">Manage</b></button><button data-id="'+data['site_id']+'" data-name="'+data['domain']+'" class="btdelete btn btn-sm btn-danger"><i class="fas fa-times fa-fw"></i> <b class="d-none d-sm-inline">Delete</b></button>';
                     }
-                ],
-                'bLengthChange': false,
-                'bAutoWidth': true,
-                'responsive': true,
-                'drawCallback': function (settings) {
-                    //Manage Site
-                    $(".btmanage").click(function () {
-                        window.location.href = '/sites/' + $(this).attr('data-id');
-                    });
-                    //Delete Site
-                    $(".btdelete").click(function () {
-                        siteDelete($(this).attr('data-id'), $(this).attr('data-domain'));
-                    });
                 }
+            ],
+            'bLengthChange': false,
+            'bAutoWidth': true,
+            'responsive': true,
+            'drawCallback': function(settings) {
+                //Manage Site
+                $(".btmanage").click(function() {
+                    window.location.href = '/sites/'+$(this).attr('data-id');
+                });
+                //Delete Site
+                $(".btdelete").click(function() {
+                    siteDelete($(this).attr('data-id'),$(this).attr('data-domain'));
+                });
+            }
+        });
+    }
+
+    //Delete Site
+    function siteDelete(site_id,domain) {
+        $('#deletesiteid').val(site_id);
+        $('#deletesitedomain').html(domain);
+        $('#deleteSiteModal').modal();
+        $('#delete').click(function() {
+            $.ajax({
+                url: '/api/sites/'+$('#deletesiteid').val(),
+                type: 'DELETE',
+                contentType: 'application/json',
+                dataType: 'json',
+                beforeSend: function() {
+                    $('#loadingdelete').removeClass('d-none');
+                },
+                complete: function(data) {
+                    setTimeout(function() {
+                        $('#dt').DataTable().clear().destroy();
+                    }, 4500);
+                    setTimeout(function() {
+                        getData('/api/sites',false);
+                    }, 6000);
+                    setTimeout(function() {
+                        $('#deleteSiteModal').modal('toggle');
+                        $('#deletesitedomain').html('');
+                        $('#deletesiteid').val('');
+                        $('#loadingdelete').addClass('d-none');
+                    }, 6500);
+                },
             });
-        }
+        });
     }
 
+    //Auto Update List
+    setInterval(function() {
+        $('#dt').DataTable().clear().destroy();
+        getData('/api/sites',false);
+    }, 45000);
+
+    //Get server domains
+    $('#newsiteserver').change(function() {
+        getDataNoDT('/api/servers/'+$('#newsiteserver').val()+'/domains');
+    });
+
     //Check Domain Conflict
     function domainConflict(domain) {
         conflict = 0;
@@ -240,9 +276,9 @@
                             $('#newsiteserver').append('<option value="'+server.server_id+'">'+server.name+' ('+server.ip+')</option>');
                         }
                     }
-                }
-            });
-        }
+                });
+            }
+        });
     }
     getServers();
 
@@ -270,79 +306,6 @@
         $('#submit').removeClass('disabled');
     });
 
-    //New Site Submit
-    $('#submit').click(function() {
-        validation = true;
-        if(!$('#newsitedomain').val() || $('#newsitedomain').val().length < 5 || domainConflict($('#newsitedomain').val()) > 0) {
-            $('#newsitedomain').addClass('is-invalid');
-            $('#submit').addClass('disabled');
-            validation = false;
-        }
-        if(validation) {
-            $.ajax({
-                url: '/api/sites',
-                type: 'POST',
-                contentType: 'application/json',
-                dataType: 'json',
-                data: JSON.stringify({
-                    'domain':   $('#newsitedomain').val(),
-                    'server_id':$('#newsiteserver').val(),
-                    'php':      $('#newsitephp').val(),
-                    'basepath': $('#newsitebasepath').val()
-                }),
-                beforeSend: function() {
-                    $('#loading').removeClass('d-none');
-                },
-                success: function(data) {
-                    $('#dt').DataTable().clear().destroy();
-                    getData('/api/sites',false);
-                    $('#loading').addClass('d-none');
-                    $('#newsiteip').html(data.server_ip);
-                    $('#newsiteusername').html(data.username);
-                    $('#newsitepassword').html(data.password);
-                    $('#newsitedbname').html(data.database);
-                    $('#newsitedbusername').html(data.database_username);
-                    $('#newsitedbpassword').html(data.database_password);
-                    $('#newsitebasepathuser').html(data.username);
-                    $('#newsitebasepath').html(data.basepath);
-                    $('#newsitedomainok').html(data.domain);
-                    $('#newsitepdf').attr('href',data.pdf);
-                    $('#newsiteform').addClass('d-none');
-                    $('#newsiteok').removeClass('d-none');
-                    $('#newsitedomain').val('');
-                    $('#newsitephp').val('8.0');
-                    $('#newsitebasepath').val('');
-                    getServers();
-                },
-            });
-        }
-    });
-    getServers();
-
-    //New Site
-    $('#newSite').click(function() {
-        $('#loading').addClass('d-none');
-        $('#newsiteform').removeClass('d-none');
-        $('#newsiteok').addClass('d-none');
-        $('#newsiteip').html();
-        $('#newsiteusername').html();
-        $('#newsitepassword').html();
-        $('#newsitedbname').html();
-        $('#newsitedbusername').html();
-        $('#newsitedbpassword').html();
-        $('#newsitebasepathuser').html();
-        $('#newsitebasepath').html();
-        $('#newsitedomainok').html();
-        $('#newsitepdf').attr('href','#');
-        $('#newSiteModal').modal();
-    });
-
-    //New Site Validation
-    $('#newsitedomain').keyup(function() {
-        $('#newsitedomain').removeClass('is-invalid');
-        $('#submit').removeClass('disabled');
-    });
-
     //New Site Submit
     $('#submit').click(function() {
         validation = true;