api code global jain
This commit is contained in:
109
public/js/pages/crud/datatables/data-sources/ajax-client-side.js
vendored
Normal file
109
public/js/pages/crud/datatables/data-sources/ajax-client-side.js
vendored
Normal file
@@ -0,0 +1,109 @@
|
||||
'use strict';
|
||||
var KTDatatablesDataSourceAjaxClient = function() {
|
||||
|
||||
var initTable1 = function() {
|
||||
var table = $('#kt_datatable');
|
||||
|
||||
// begin first table
|
||||
table.DataTable({
|
||||
responsive: true,
|
||||
ajax: {
|
||||
url: HOST_URL + '/api/datatables/demos/default.php',
|
||||
type: 'POST',
|
||||
data: {
|
||||
pagination: {
|
||||
perpage: 50,
|
||||
},
|
||||
},
|
||||
},
|
||||
columns: [
|
||||
{data: 'OrderID'},
|
||||
{data: 'Country'},
|
||||
{data: 'ShipCity'},
|
||||
{data: 'CompanyName'},
|
||||
{data: 'ShipDate'},
|
||||
{data: 'Status'},
|
||||
{data: 'Type'},
|
||||
{data: 'Actions', responsivePriority: -1},
|
||||
],
|
||||
columnDefs: [
|
||||
{
|
||||
targets: -1,
|
||||
title: 'Actions',
|
||||
orderable: false,
|
||||
render: function(data, type, full, meta) {
|
||||
return '\
|
||||
<div class="dropdown dropdown-inline">\
|
||||
<a href="javascript:;" class="btn btn-sm btn-clean btn-icon" data-toggle="dropdown">\
|
||||
<i class="la la-cog"></i>\
|
||||
</a>\
|
||||
<div class="dropdown-menu dropdown-menu-sm dropdown-menu-right">\
|
||||
<ul class="nav nav-hoverable flex-column">\
|
||||
<li class="nav-item"><a class="nav-link" href="#"><i class="nav-icon la la-edit"></i><span class="nav-text">Edit Details</span></a></li>\
|
||||
<li class="nav-item"><a class="nav-link" href="#"><i class="nav-icon la la-leaf"></i><span class="nav-text">Update Status</span></a></li>\
|
||||
<li class="nav-item"><a class="nav-link" href="#"><i class="nav-icon la la-print"></i><span class="nav-text">Print</span></a></li>\
|
||||
</ul>\
|
||||
</div>\
|
||||
</div>\
|
||||
<a href="javascript:;" class="btn btn-sm btn-clean btn-icon" title="Edit details">\
|
||||
<i class="la la-edit"></i>\
|
||||
</a>\
|
||||
<a href="javascript:;" class="btn btn-sm btn-clean btn-icon" title="Delete">\
|
||||
<i class="la la-trash"></i>\
|
||||
</a>\
|
||||
';
|
||||
},
|
||||
},
|
||||
{
|
||||
width: '75px',
|
||||
targets: -3,
|
||||
render: function(data, type, full, meta) {
|
||||
var status = {
|
||||
1: {'title': 'Pending', 'class': 'label-light-primary'},
|
||||
2: {'title': 'Delivered', 'class': ' label-light-danger'},
|
||||
3: {'title': 'Canceled', 'class': ' label-light-primary'},
|
||||
4: {'title': 'Success', 'class': ' label-light-success'},
|
||||
5: {'title': 'Info', 'class': ' label-light-info'},
|
||||
6: {'title': 'Danger', 'class': ' label-light-danger'},
|
||||
7: {'title': 'Warning', 'class': ' label-light-warning'},
|
||||
};
|
||||
if (typeof status[data] === 'undefined') {
|
||||
return data;
|
||||
}
|
||||
return '<span class="label label-lg font-weight-bold' + status[data].class + ' label-inline">' + status[data].title + '</span>';
|
||||
},
|
||||
},
|
||||
{
|
||||
width: '75px',
|
||||
targets: -2,
|
||||
render: function(data, type, full, meta) {
|
||||
var status = {
|
||||
1: {'title': 'Online', 'state': 'danger'},
|
||||
2: {'title': 'Retail', 'state': 'primary'},
|
||||
3: {'title': 'Direct', 'state': 'success'},
|
||||
};
|
||||
if (typeof status[data] === 'undefined') {
|
||||
return data;
|
||||
}
|
||||
return '<span class="label label-' + status[data].state + ' label-dot mr-2"></span>' +
|
||||
'<span class="font-weight-bold text-' + status[data].state + '">' + status[data].title + '</span>';
|
||||
},
|
||||
},
|
||||
],
|
||||
});
|
||||
};
|
||||
|
||||
return {
|
||||
|
||||
//main function to initiate the module
|
||||
init: function() {
|
||||
initTable1();
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
}();
|
||||
|
||||
jQuery(document).ready(function() {
|
||||
KTDatatablesDataSourceAjaxClient.init();
|
||||
});
|
||||
1
public/js/pages/crud/datatables/data-sources/ajax-client-side.min.js
vendored
Normal file
1
public/js/pages/crud/datatables/data-sources/ajax-client-side.min.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
"use strict";var KTDatatablesDataSourceAjaxClient={init:function(){$("#kt_datatable").DataTable({responsive:!0,ajax:{url:HOST_URL+"/api/datatables/demos/default.php",type:"POST",data:{pagination:{perpage:50}}},columns:[{data:"OrderID"},{data:"Country"},{data:"ShipCity"},{data:"CompanyName"},{data:"ShipDate"},{data:"Status"},{data:"Type"},{data:"Actions",responsivePriority:-1}],columnDefs:[{targets:-1,title:"Actions",orderable:!1,render:function(t,a,l,e){return'\t\t\t\t\t\t\t<div class="dropdown dropdown-inline">\t\t\t\t\t\t\t\t<a href="javascript:;" class="btn btn-sm btn-clean btn-icon" data-toggle="dropdown">\t <i class="la la-cog"></i>\t </a>\t\t\t\t\t\t\t \t<div class="dropdown-menu dropdown-menu-sm dropdown-menu-right">\t\t\t\t\t\t\t\t\t<ul class="nav nav-hoverable flex-column">\t\t\t\t\t\t\t \t\t<li class="nav-item"><a class="nav-link" href="#"><i class="nav-icon la la-edit"></i><span class="nav-text">Edit Details</span></a></li>\t\t\t\t\t\t\t \t\t<li class="nav-item"><a class="nav-link" href="#"><i class="nav-icon la la-leaf"></i><span class="nav-text">Update Status</span></a></li>\t\t\t\t\t\t\t \t\t<li class="nav-item"><a class="nav-link" href="#"><i class="nav-icon la la-print"></i><span class="nav-text">Print</span></a></li>\t\t\t\t\t\t\t\t\t</ul>\t\t\t\t\t\t\t \t</div>\t\t\t\t\t\t\t</div>\t\t\t\t\t\t\t<a href="javascript:;" class="btn btn-sm btn-clean btn-icon" title="Edit details">\t\t\t\t\t\t\t\t<i class="la la-edit"></i>\t\t\t\t\t\t\t</a>\t\t\t\t\t\t\t<a href="javascript:;" class="btn btn-sm btn-clean btn-icon" title="Delete">\t\t\t\t\t\t\t\t<i class="la la-trash"></i>\t\t\t\t\t\t\t</a>\t\t\t\t\t\t'}},{width:"75px",targets:-3,render:function(t,a,l,e){var s={1:{title:"Pending",class:"label-light-primary"},2:{title:"Delivered",class:" label-light-danger"},3:{title:"Canceled",class:" label-light-primary"},4:{title:"Success",class:" label-light-success"},5:{title:"Info",class:" label-light-info"},6:{title:"Danger",class:" label-light-danger"},7:{title:"Warning",class:" label-light-warning"}};return void 0===s[t]?t:'<span class="label label-lg font-weight-bold'+s[t].class+' label-inline">'+s[t].title+"</span>"}},{width:"75px",targets:-2,render:function(t,a,l,e){var s={1:{title:"Online",state:"danger"},2:{title:"Retail",state:"primary"},3:{title:"Direct",state:"success"}};return void 0===s[t]?t:'<span class="label label-'+s[t].state+' label-dot mr-2"></span><span class="font-weight-bold text-'+s[t].state+'">'+s[t].title+"</span>"}}]})}};jQuery(document).ready(function(){KTDatatablesDataSourceAjaxClient.init()});
|
||||
114
public/js/pages/crud/datatables/data-sources/ajax-server-side.js
vendored
Normal file
114
public/js/pages/crud/datatables/data-sources/ajax-server-side.js
vendored
Normal file
@@ -0,0 +1,114 @@
|
||||
"use strict";
|
||||
var KTDatatablesDataSourceAjaxServer = function() {
|
||||
|
||||
var initTable1 = function() {
|
||||
var table = $('#kt_datatable');
|
||||
|
||||
// begin first table
|
||||
table.DataTable({
|
||||
responsive: true,
|
||||
searchDelay: 500,
|
||||
processing: true,
|
||||
serverSide: true,
|
||||
ajax: {
|
||||
url: HOST_URL + '/api/datatables/demos/server.php',
|
||||
type: 'POST',
|
||||
data: {
|
||||
// parameters for custom backend script demo
|
||||
columnsDef: [
|
||||
'OrderID', 'Country',
|
||||
'ShipAddress', 'CompanyName', 'ShipDate',
|
||||
'Status', 'Type', 'Actions'],
|
||||
},
|
||||
},
|
||||
columns: [
|
||||
{data: 'OrderID'},
|
||||
{data: 'Country'},
|
||||
{data: 'ShipAddress'},
|
||||
{data: 'CompanyName'},
|
||||
{data: 'ShipDate'},
|
||||
{data: 'Status'},
|
||||
{data: 'Type'},
|
||||
{data: 'Actions', responsivePriority: -1},
|
||||
],
|
||||
columnDefs: [
|
||||
{
|
||||
targets: -1,
|
||||
title: 'Actions',
|
||||
orderable: false,
|
||||
render: function(data, type, full, meta) {
|
||||
return '\
|
||||
<div class="dropdown dropdown-inline">\
|
||||
<a href="javascript:;" class="btn btn-sm btn-clean btn-icon" data-toggle="dropdown">\
|
||||
<i class="la la-cog"></i>\
|
||||
</a>\
|
||||
<div class="dropdown-menu dropdown-menu-sm dropdown-menu-right">\
|
||||
<ul class="nav nav-hoverable flex-column">\
|
||||
<li class="nav-item"><a class="nav-link" href="#"><i class="nav-icon la la-edit"></i><span class="nav-text">Edit Details</span></a></li>\
|
||||
<li class="nav-item"><a class="nav-link" href="#"><i class="nav-icon la la-leaf"></i><span class="nav-text">Update Status</span></a></li>\
|
||||
<li class="nav-item"><a class="nav-link" href="#"><i class="nav-icon la la-print"></i><span class="nav-text">Print</span></a></li>\
|
||||
</ul>\
|
||||
</div>\
|
||||
</div>\
|
||||
<a href="javascript:;" class="btn btn-sm btn-clean btn-icon" title="Edit details">\
|
||||
<i class="la la-edit"></i>\
|
||||
</a>\
|
||||
<a href="javascript:;" class="btn btn-sm btn-clean btn-icon" title="Delete">\
|
||||
<i class="la la-trash"></i>\
|
||||
</a>\
|
||||
';
|
||||
},
|
||||
},
|
||||
{
|
||||
width: '75px',
|
||||
targets: -3,
|
||||
render: function(data, type, full, meta) {
|
||||
var status = {
|
||||
1: {'title': 'Pending', 'class': 'label-light-primary'},
|
||||
2: {'title': 'Delivered', 'class': ' label-light-danger'},
|
||||
3: {'title': 'Canceled', 'class': ' label-light-primary'},
|
||||
4: {'title': 'Success', 'class': ' label-light-success'},
|
||||
5: {'title': 'Info', 'class': ' label-light-info'},
|
||||
6: {'title': 'Danger', 'class': ' label-light-danger'},
|
||||
7: {'title': 'Warning', 'class': ' label-light-warning'},
|
||||
};
|
||||
if (typeof status[data] === 'undefined') {
|
||||
return data;
|
||||
}
|
||||
return '<span class="label label-lg font-weight-bold' + status[data].class + ' label-inline">' + status[data].title + '</span>';
|
||||
},
|
||||
},
|
||||
{
|
||||
width: '75px',
|
||||
targets: -2,
|
||||
render: function(data, type, full, meta) {
|
||||
var status = {
|
||||
1: {'title': 'Online', 'state': 'danger'},
|
||||
2: {'title': 'Retail', 'state': 'primary'},
|
||||
3: {'title': 'Direct', 'state': 'success'},
|
||||
};
|
||||
if (typeof status[data] === 'undefined') {
|
||||
return data;
|
||||
}
|
||||
return '<span class="label label-' + status[data].state + ' label-dot mr-2"></span>' +
|
||||
'<span class="font-weight-bold text-' + status[data].state + '">' + status[data].title + '</span>';
|
||||
},
|
||||
},
|
||||
],
|
||||
});
|
||||
};
|
||||
|
||||
return {
|
||||
|
||||
//main function to initiate the module
|
||||
init: function() {
|
||||
initTable1();
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
}();
|
||||
|
||||
jQuery(document).ready(function() {
|
||||
KTDatatablesDataSourceAjaxServer.init();
|
||||
});
|
||||
1
public/js/pages/crud/datatables/data-sources/ajax-server-side.min.js
vendored
Normal file
1
public/js/pages/crud/datatables/data-sources/ajax-server-side.min.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
"use strict";var KTDatatablesDataSourceAjaxServer={init:function(){$("#kt_datatable").DataTable({responsive:!0,searchDelay:500,processing:!0,serverSide:!0,ajax:{url:HOST_URL+"/api/datatables/demos/server.php",type:"POST",data:{columnsDef:["OrderID","Country","ShipAddress","CompanyName","ShipDate","Status","Type","Actions"]}},columns:[{data:"OrderID"},{data:"Country"},{data:"ShipAddress"},{data:"CompanyName"},{data:"ShipDate"},{data:"Status"},{data:"Type"},{data:"Actions",responsivePriority:-1}],columnDefs:[{targets:-1,title:"Actions",orderable:!1,render:function(t,a,e,l){return'\t\t\t\t\t\t\t<div class="dropdown dropdown-inline">\t\t\t\t\t\t\t\t<a href="javascript:;" class="btn btn-sm btn-clean btn-icon" data-toggle="dropdown">\t <i class="la la-cog"></i>\t </a>\t\t\t\t\t\t\t \t<div class="dropdown-menu dropdown-menu-sm dropdown-menu-right">\t\t\t\t\t\t\t\t\t<ul class="nav nav-hoverable flex-column">\t\t\t\t\t\t\t \t\t<li class="nav-item"><a class="nav-link" href="#"><i class="nav-icon la la-edit"></i><span class="nav-text">Edit Details</span></a></li>\t\t\t\t\t\t\t \t\t<li class="nav-item"><a class="nav-link" href="#"><i class="nav-icon la la-leaf"></i><span class="nav-text">Update Status</span></a></li>\t\t\t\t\t\t\t \t\t<li class="nav-item"><a class="nav-link" href="#"><i class="nav-icon la la-print"></i><span class="nav-text">Print</span></a></li>\t\t\t\t\t\t\t\t\t</ul>\t\t\t\t\t\t\t \t</div>\t\t\t\t\t\t\t</div>\t\t\t\t\t\t\t<a href="javascript:;" class="btn btn-sm btn-clean btn-icon" title="Edit details">\t\t\t\t\t\t\t\t<i class="la la-edit"></i>\t\t\t\t\t\t\t</a>\t\t\t\t\t\t\t<a href="javascript:;" class="btn btn-sm btn-clean btn-icon" title="Delete">\t\t\t\t\t\t\t\t<i class="la la-trash"></i>\t\t\t\t\t\t\t</a>\t\t\t\t\t\t'}},{width:"75px",targets:-3,render:function(t,a,e,l){var s={1:{title:"Pending",class:"label-light-primary"},2:{title:"Delivered",class:" label-light-danger"},3:{title:"Canceled",class:" label-light-primary"},4:{title:"Success",class:" label-light-success"},5:{title:"Info",class:" label-light-info"},6:{title:"Danger",class:" label-light-danger"},7:{title:"Warning",class:" label-light-warning"}};return void 0===s[t]?t:'<span class="label label-lg font-weight-bold'+s[t].class+' label-inline">'+s[t].title+"</span>"}},{width:"75px",targets:-2,render:function(t,a,e,l){var s={1:{title:"Online",state:"danger"},2:{title:"Retail",state:"primary"},3:{title:"Direct",state:"success"}};return void 0===s[t]?t:'<span class="label label-'+s[t].state+' label-dot mr-2"></span><span class="font-weight-bold text-'+s[t].state+'">'+s[t].title+"</span>"}}]})}};jQuery(document).ready(function(){KTDatatablesDataSourceAjaxServer.init()});
|
||||
91
public/js/pages/crud/datatables/data-sources/html.js
vendored
Normal file
91
public/js/pages/crud/datatables/data-sources/html.js
vendored
Normal file
@@ -0,0 +1,91 @@
|
||||
"use strict";
|
||||
var KTDatatablesDataSourceHtml = function() {
|
||||
|
||||
var initTable1 = function() {
|
||||
var table = $('#kt_datatable');
|
||||
|
||||
// begin first table
|
||||
table.DataTable({
|
||||
responsive: true,
|
||||
columnDefs: [
|
||||
{
|
||||
targets: -1,
|
||||
title: 'Actions',
|
||||
orderable: false,
|
||||
render: function(data, type, full, meta) {
|
||||
return '\
|
||||
<div class="dropdown dropdown-inline">\
|
||||
<a href="javascript:;" class="btn btn-sm btn-clean btn-icon" data-toggle="dropdown">\
|
||||
<i class="la la-cog"></i>\
|
||||
</a>\
|
||||
<div class="dropdown-menu dropdown-menu-sm dropdown-menu-right">\
|
||||
<ul class="nav nav-hoverable flex-column">\
|
||||
<li class="nav-item"><a class="nav-link" href="#"><i class="nav-icon la la-edit"></i><span class="nav-text">Edit Details</span></a></li>\
|
||||
<li class="nav-item"><a class="nav-link" href="#"><i class="nav-icon la la-leaf"></i><span class="nav-text">Update Status</span></a></li>\
|
||||
<li class="nav-item"><a class="nav-link" href="#"><i class="nav-icon la la-print"></i><span class="nav-text">Print</span></a></li>\
|
||||
</ul>\
|
||||
</div>\
|
||||
</div>\
|
||||
<a href="javascript:;" class="btn btn-sm btn-clean btn-icon" title="Edit details">\
|
||||
<i class="la la-edit"></i>\
|
||||
</a>\
|
||||
<a href="javascript:;" class="btn btn-sm btn-clean btn-icon" title="Delete">\
|
||||
<i class="la la-trash"></i>\
|
||||
</a>\
|
||||
';
|
||||
},
|
||||
},
|
||||
{
|
||||
width: '75px',
|
||||
targets: 8,
|
||||
render: function(data, type, full, meta) {
|
||||
var status = {
|
||||
1: {'title': 'Pending', 'class': 'label-light-primary'},
|
||||
2: {'title': 'Delivered', 'class': ' label-light-danger'},
|
||||
3: {'title': 'Canceled', 'class': ' label-light-primary'},
|
||||
4: {'title': 'Success', 'class': ' label-light-success'},
|
||||
5: {'title': 'Info', 'class': ' label-light-info'},
|
||||
6: {'title': 'Danger', 'class': ' label-light-danger'},
|
||||
7: {'title': 'Warning', 'class': ' label-light-warning'},
|
||||
};
|
||||
if (typeof status[data] === 'undefined') {
|
||||
return data;
|
||||
}
|
||||
return '<span class="label label-lg font-weight-bold' + status[data].class + ' label-inline">' + status[data].title + '</span>';
|
||||
},
|
||||
},
|
||||
{
|
||||
width: '75px',
|
||||
targets: 9,
|
||||
render: function(data, type, full, meta) {
|
||||
var status = {
|
||||
1: {'title': 'Online', 'state': 'danger'},
|
||||
2: {'title': 'Retail', 'state': 'primary'},
|
||||
3: {'title': 'Direct', 'state': 'success'},
|
||||
};
|
||||
if (typeof status[data] === 'undefined') {
|
||||
return data;
|
||||
}
|
||||
return '<span class="label label-' + status[data].state + ' label-dot mr-2"></span>' +
|
||||
'<span class="font-weight-bold text-' + status[data].state + '">' + status[data].title + '</span>';
|
||||
},
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
return {
|
||||
|
||||
//main function to initiate the module
|
||||
init: function() {
|
||||
initTable1();
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
}();
|
||||
|
||||
jQuery(document).ready(function() {
|
||||
KTDatatablesDataSourceHtml.init();
|
||||
});
|
||||
1
public/js/pages/crud/datatables/data-sources/html.min.js
vendored
Normal file
1
public/js/pages/crud/datatables/data-sources/html.min.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
"use strict";var KTDatatablesDataSourceHtml={init:function(){$("#kt_datatable").DataTable({responsive:!0,columnDefs:[{targets:-1,title:"Actions",orderable:!1,render:function(t,a,l,e){return'\t\t\t\t\t\t\t<div class="dropdown dropdown-inline">\t\t\t\t\t\t\t\t<a href="javascript:;" class="btn btn-sm btn-clean btn-icon" data-toggle="dropdown">\t <i class="la la-cog"></i>\t </a>\t\t\t\t\t\t\t \t<div class="dropdown-menu dropdown-menu-sm dropdown-menu-right">\t\t\t\t\t\t\t\t\t<ul class="nav nav-hoverable flex-column">\t\t\t\t\t\t\t \t\t<li class="nav-item"><a class="nav-link" href="#"><i class="nav-icon la la-edit"></i><span class="nav-text">Edit Details</span></a></li>\t\t\t\t\t\t\t \t\t<li class="nav-item"><a class="nav-link" href="#"><i class="nav-icon la la-leaf"></i><span class="nav-text">Update Status</span></a></li>\t\t\t\t\t\t\t \t\t<li class="nav-item"><a class="nav-link" href="#"><i class="nav-icon la la-print"></i><span class="nav-text">Print</span></a></li>\t\t\t\t\t\t\t\t\t</ul>\t\t\t\t\t\t\t \t</div>\t\t\t\t\t\t\t</div>\t\t\t\t\t\t\t<a href="javascript:;" class="btn btn-sm btn-clean btn-icon" title="Edit details">\t\t\t\t\t\t\t\t<i class="la la-edit"></i>\t\t\t\t\t\t\t</a>\t\t\t\t\t\t\t<a href="javascript:;" class="btn btn-sm btn-clean btn-icon" title="Delete">\t\t\t\t\t\t\t\t<i class="la la-trash"></i>\t\t\t\t\t\t\t</a>\t\t\t\t\t\t'}},{width:"75px",targets:8,render:function(t,a,l,e){var s={1:{title:"Pending",class:"label-light-primary"},2:{title:"Delivered",class:" label-light-danger"},3:{title:"Canceled",class:" label-light-primary"},4:{title:"Success",class:" label-light-success"},5:{title:"Info",class:" label-light-info"},6:{title:"Danger",class:" label-light-danger"},7:{title:"Warning",class:" label-light-warning"}};return void 0===s[t]?t:'<span class="label label-lg font-weight-bold'+s[t].class+' label-inline">'+s[t].title+"</span>"}},{width:"75px",targets:9,render:function(t,a,l,e){var s={1:{title:"Online",state:"danger"},2:{title:"Retail",state:"primary"},3:{title:"Direct",state:"success"}};return void 0===s[t]?t:'<span class="label label-'+s[t].state+' label-dot mr-2"></span><span class="font-weight-bold text-'+s[t].state+'">'+s[t].title+"</span>"}}]})}};jQuery(document).ready(function(){KTDatatablesDataSourceHtml.init()});
|
||||
59
public/js/pages/crud/datatables/data-sources/javascript.js
vendored
Normal file
59
public/js/pages/crud/datatables/data-sources/javascript.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
public/js/pages/crud/datatables/data-sources/javascript.min.js
vendored
Normal file
1
public/js/pages/crud/datatables/data-sources/javascript.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user