fix: acp menu items

- Shuffled items in settings
- Moved post-queue and ip-blacklist to front-end
- Removed Settings > Sockets, merged with Settings > Advanced
v1.18.x
Julian Lam 5 years ago
parent a83f4259e8
commit 0633ad3277

@ -21,13 +21,13 @@
"settings/navigation": "Navigation", "settings/navigation": "Navigation",
"settings/reputation": "Reputation", "settings/reputation": "Reputation",
"settings/email": "Email", "settings/email": "Email",
"settings/user": "User", "settings/user": "Users",
"settings/group": "Group", "settings/group": "Groups",
"settings/guest": "Guests", "settings/guest": "Guests",
"settings/uploads": "Uploads", "settings/uploads": "Uploads",
"settings/languages": "Languages", "settings/languages": "Languages",
"settings/post": "Post", "settings/post": "Posts",
"settings/chat": "Chat", "settings/chat": "Chats",
"settings/pagination": "Pagination", "settings/pagination": "Pagination",
"settings/tags": "Tags", "settings/tags": "Tags",
"settings/notifications": "Notifications", "settings/notifications": "Notifications",

@ -25,5 +25,10 @@
"traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)",
"traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)",
"traffic.lag-check-interval": "Check Interval (in milliseconds)", "traffic.lag-check-interval": "Check Interval (in milliseconds)",
"traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)",
"sockets.settings": "WebSocket Settings",
"sockets.max-attempts": "Max Reconnection Attempts",
"sockets.default-placeholder": "Default: %1",
"sockets.delay": "Reconnection Delay"
} }

@ -6,8 +6,6 @@ var adminController = {
privileges: require('./admin/privileges'), privileges: require('./admin/privileges'),
adminsMods: require('./admin/admins-mods'), adminsMods: require('./admin/admins-mods'),
tags: require('./admin/tags'), tags: require('./admin/tags'),
postQueue: require('./admin/postqueue'),
blacklist: require('./admin/blacklist'),
groups: require('./admin/groups'), groups: require('./admin/groups'),
digest: require('./admin/digest'), digest: require('./admin/digest'),
appearance: require('./admin/appearance'), appearance: require('./admin/appearance'),

@ -1,18 +0,0 @@
'use strict';
const meta = require('../../meta');
const analytics = require('../../analytics');
const blacklistController = module.exports;
blacklistController.get = async function (req, res) {
const [rules, analyticsData] = await Promise.all([
meta.blacklist.get(),
analytics.getBlacklistAnalytics(),
]);
res.render('admin/manage/ip-blacklist', {
title: '[[pages:ip-blacklist]]',
rules: rules,
analytics: analyticsData,
});
};

@ -1,76 +0,0 @@
'use strict';
const validator = require('validator');
const db = require('../../database');
const user = require('../../user');
const topics = require('../../topics');
const categories = require('../../categories');
const pagination = require('../../pagination');
const plugins = require('../../plugins');
const utils = require('../../utils');
const postQueueController = module.exports;
postQueueController.get = async function (req, res) {
const page = parseInt(req.query.page, 10) || 1;
const postsPerPage = 20;
const [ids, isAdminOrGlobalMod, moderatedCids] = await Promise.all([
db.getSortedSetRange('post:queue', 0, -1),
user.isAdminOrGlobalMod(req.uid),
user.getModeratedCids(req.uid),
]);
let postData = await getQueuedPosts(ids);
postData = postData.filter(p => p && (isAdminOrGlobalMod || moderatedCids.includes(String(p.category.cid))));
const pageCount = Math.max(1, Math.ceil(postData.length / postsPerPage));
const start = (page - 1) * postsPerPage;
const stop = start + postsPerPage - 1;
postData = postData.slice(start, stop + 1);
res.render('admin/manage/post-queue', {
title: '[[pages:post-queue]]',
posts: postData,
pagination: pagination.create(page, pageCount),
});
};
async function getQueuedPosts(ids) {
const keys = ids.map(id => 'post:queue:' + id);
const postData = await db.getObjects(keys);
postData.forEach(function (data) {
if (data) {
data.data = JSON.parse(data.data);
data.data.timestampISO = utils.toISOString(data.data.timestamp);
}
});
const uids = postData.map(data => data && data.uid);
const userData = await user.getUsersFields(uids, ['username', 'userslug', 'picture']);
postData.forEach(function (postData, index) {
if (postData) {
postData.user = userData[index];
postData.data.rawContent = validator.escape(String(postData.data.content));
postData.data.title = validator.escape(String(postData.data.title || ''));
}
});
await Promise.all(postData.map(p => addMetaData(p)));
return postData;
}
async function addMetaData(postData) {
if (!postData) {
return;
}
postData.topic = { cid: 0 };
if (postData.data.cid) {
postData.topic = { cid: postData.data.cid };
} else if (postData.data.tid) {
postData.topic = await topics.getTopicFields(postData.data.tid, ['title', 'cid']);
}
postData.category = await categories.getCategoryData(postData.topic.cid);
const result = await plugins.fireHook('filter:parse.post', { postData: postData.data });
postData.data.content = result.postData.content;
}

@ -1,7 +1,8 @@
'use strict'; 'use strict';
const user = require('../user'); const user = require('../user');
const adminBlacklistController = require('./admin/blacklist'); const meta = require('../meta');
const analytics = require('../analytics');
const usersController = require('./admin/users'); const usersController = require('./admin/users');
const globalModsController = module.exports; const globalModsController = module.exports;
@ -11,7 +12,16 @@ globalModsController.ipBlacklist = async function (req, res, next) {
if (!isAdminOrGlobalMod) { if (!isAdminOrGlobalMod) {
return next(); return next();
} }
await adminBlacklistController.get(req, res);
const [rules, analyticsData] = await Promise.all([
meta.blacklist.get(),
analytics.getBlacklistAnalytics(),
]);
res.render('admin/manage/ip-blacklist', {
title: '[[pages:ip-blacklist]]',
rules: rules,
analytics: analyticsData,
});
}; };

@ -1,6 +1,10 @@
'use strict'; 'use strict';
const validator = require('validator');
const db = require('../database');
const user = require('../user'); const user = require('../user');
const topics = require('../topics');
const categories = require('../categories'); const categories = require('../categories');
const flags = require('../flags'); const flags = require('../flags');
const analytics = require('../analytics'); const analytics = require('../analytics');
@ -8,7 +12,6 @@ const plugins = require('../plugins');
const pagination = require('../pagination'); const pagination = require('../pagination');
const utils = require('../utils'); const utils = require('../utils');
const adminPostQueueController = require('./admin/postqueue');
const modsController = module.exports; const modsController = module.exports;
modsController.flags = {}; modsController.flags = {};
@ -159,9 +162,70 @@ function filterCategories(moderatedCids, categories) {
} }
modsController.postQueue = async function (req, res, next) { modsController.postQueue = async function (req, res, next) {
// Admins, global mods, and individual mods only
const isPrivileged = await user.isPrivileged(req.uid); const isPrivileged = await user.isPrivileged(req.uid);
if (!isPrivileged) { if (!isPrivileged) {
return next(); return next();
} }
await adminPostQueueController.get(req, res, next);
const page = parseInt(req.query.page, 10) || 1;
const postsPerPage = 20;
const [ids, isAdminOrGlobalMod, moderatedCids] = await Promise.all([
db.getSortedSetRange('post:queue', 0, -1),
user.isAdminOrGlobalMod(req.uid),
user.getModeratedCids(req.uid),
]);
let postData = await getQueuedPosts(ids);
postData = postData.filter(p => p && (isAdminOrGlobalMod || moderatedCids.includes(String(p.category.cid))));
const pageCount = Math.max(1, Math.ceil(postData.length / postsPerPage));
const start = (page - 1) * postsPerPage;
const stop = start + postsPerPage - 1;
postData = postData.slice(start, stop + 1);
res.render('admin/manage/post-queue', {
title: '[[pages:post-queue]]',
posts: postData,
pagination: pagination.create(page, pageCount),
});
}; };
async function getQueuedPosts(ids) {
const keys = ids.map(id => 'post:queue:' + id);
const postData = await db.getObjects(keys);
postData.forEach(function (data) {
if (data) {
data.data = JSON.parse(data.data);
data.data.timestampISO = utils.toISOString(data.data.timestamp);
}
});
const uids = postData.map(data => data && data.uid);
const userData = await user.getUsersFields(uids, ['username', 'userslug', 'picture']);
postData.forEach(function (postData, index) {
if (postData) {
postData.user = userData[index];
postData.data.rawContent = validator.escape(String(postData.data.content));
postData.data.title = validator.escape(String(postData.data.title || ''));
}
});
await Promise.all(postData.map(p => addMetaData(p)));
return postData;
}
async function addMetaData(postData) {
if (!postData) {
return;
}
postData.topic = { cid: 0 };
if (postData.data.cid) {
postData.topic = { cid: postData.data.cid };
} else if (postData.data.tid) {
postData.topic = await topics.getTopicFields(postData.data.tid, ['title', 'cid']);
}
postData.category = await categories.getCategoryData(postData.topic.cid);
const result = await plugins.fireHook('filter:parse.post', { postData: postData.data });
postData.data.content = result.postData.content;
}

@ -15,8 +15,6 @@ module.exports = function (app, middleware, controllers) {
helpers.setupAdminPageRoute(app, '/admin/manage/privileges/:cid?', middleware, middlewares, controllers.admin.privileges.get); helpers.setupAdminPageRoute(app, '/admin/manage/privileges/:cid?', middleware, middlewares, controllers.admin.privileges.get);
helpers.setupAdminPageRoute(app, '/admin/manage/tags', middleware, middlewares, controllers.admin.tags.get); helpers.setupAdminPageRoute(app, '/admin/manage/tags', middleware, middlewares, controllers.admin.tags.get);
helpers.setupAdminPageRoute(app, '/admin/manage/post-queue', middleware, middlewares, controllers.admin.postQueue.get);
helpers.setupAdminPageRoute(app, '/admin/manage/ip-blacklist', middleware, middlewares, controllers.admin.blacklist.get);
helpers.setupAdminPageRoute(app, '/admin/manage/users', middleware, middlewares, controllers.admin.users.sortByJoinDate); helpers.setupAdminPageRoute(app, '/admin/manage/users', middleware, middlewares, controllers.admin.users.sortByJoinDate);
helpers.setupAdminPageRoute(app, '/admin/manage/users/search', middleware, middlewares, controllers.admin.users.search); helpers.setupAdminPageRoute(app, '/admin/manage/users/search', middleware, middlewares, controllers.admin.users.search);

@ -15,14 +15,15 @@
<li><a href="{relative_path}/admin/manage/categories">[[admin/menu:manage/categories]]</a></li> <li><a href="{relative_path}/admin/manage/categories">[[admin/menu:manage/categories]]</a></li>
<li><a href="{relative_path}/admin/manage/privileges">[[admin/menu:manage/privileges]]</a></li> <li><a href="{relative_path}/admin/manage/privileges">[[admin/menu:manage/privileges]]</a></li>
<li><a href="{relative_path}/admin/manage/users">[[admin/menu:manage/users]]</a></li> <li><a href="{relative_path}/admin/manage/users">[[admin/menu:manage/users]]</a></li>
<li><a href="{relative_path}/admin/manage/registration">[[admin/menu:manage/registration]]</a></li>
<li><a href="{relative_path}/admin/manage/admins-mods">[[admin/menu:manage/admins-mods]]</a></li> <li><a href="{relative_path}/admin/manage/admins-mods">[[admin/menu:manage/admins-mods]]</a></li>
<li><a href="{relative_path}/admin/manage/groups">[[admin/menu:manage/groups]]</a></li> <li><a href="{relative_path}/admin/manage/groups">[[admin/menu:manage/groups]]</a></li>
<li><a href="{relative_path}/admin/manage/tags">[[admin/menu:manage/tags]]</a></li> <li><a href="{relative_path}/admin/manage/tags">[[admin/menu:manage/tags]]</a></li>
<li><a href="{relative_path}/admin/manage/registration">[[admin/menu:manage/registration]]</a></li>
<li><a href="{relative_path}/admin/manage/post-queue">[[admin/menu:manage/post-queue]]</a></li>
<li><a href="{relative_path}/admin/manage/ip-blacklist">[[admin/menu:manage/ip-blacklist]]</a></li>
<li><a href="{relative_path}/admin/manage/uploads">[[admin/menu:manage/uploads]]</a></li> <li><a href="{relative_path}/admin/manage/uploads">[[admin/menu:manage/uploads]]</a></li>
<li><a href="{relative_path}/admin/manage/digest">[[admin/menu:manage/digest]]</a></li> <li><a href="{relative_path}/admin/manage/digest">[[admin/menu:manage/digest]]</a></li>
<li><a target="_top" href="{relative_path}/post-queue">[[admin/menu:manage/post-queue]] <i class="fa fa-external-link"></i></a></li>
<li><a target="_top" href="{relative_path}/ip-blacklist">[[admin/menu:manage/ip-blacklist]] <i class="fa fa-external-link"></i></a></li>
</ul> </ul>
</section> </section>
@ -33,14 +34,14 @@
<li><a href="{relative_path}/admin/settings/homepage">[[admin/menu:settings/homepage]]</a></li> <li><a href="{relative_path}/admin/settings/homepage">[[admin/menu:settings/homepage]]</a></li>
<li><a href="{relative_path}/admin/settings/navigation">[[admin/menu:settings/navigation]]</a></li> <li><a href="{relative_path}/admin/settings/navigation">[[admin/menu:settings/navigation]]</a></li>
<li><a href="{relative_path}/admin/settings/user">[[admin/menu:settings/user]]</a></li> <li><a href="{relative_path}/admin/settings/user">[[admin/menu:settings/user]]</a></li>
<li><a href="{relative_path}/admin/settings/reputation">[[admin/menu:settings/reputation]]</a></li>
<li><a href="{relative_path}/admin/settings/guest">[[admin/menu:settings/guest]]</a></li>
<li><a href="{relative_path}/admin/settings/group">[[admin/menu:settings/group]]</a></li> <li><a href="{relative_path}/admin/settings/group">[[admin/menu:settings/group]]</a></li>
<li><a href="{relative_path}/admin/settings/tags">[[admin/menu:manage/tags]]</a></li> <li><a href="{relative_path}/admin/settings/tags">[[admin/menu:manage/tags]]</a></li>
<li><a href="{relative_path}/admin/settings/post">[[admin/menu:settings/post]]</a></li> <li><a href="{relative_path}/admin/settings/post">[[admin/menu:settings/post]]</a></li>
<li><a href="{relative_path}/admin/settings/uploads">[[admin/menu:settings/uploads]]</a></li>
<li><a href="{relative_path}/admin/settings/languages">[[admin/menu:settings/languages]]</a></li> <li><a href="{relative_path}/admin/settings/languages">[[admin/menu:settings/languages]]</a></li>
<li><a href="{relative_path}/admin/settings/email">[[admin/menu:settings/email]]</a></li> <li><a href="{relative_path}/admin/settings/email">[[admin/menu:settings/email]]</a></li>
<li><a href="{relative_path}/admin/settings/reputation">[[admin/menu:settings/reputation]]</a></li>
<li><a href="{relative_path}/admin/settings/guest">[[admin/menu:settings/guest]]</a></li>
<li><a href="{relative_path}/admin/settings/uploads">[[admin/menu:settings/uploads]]</a></li>
<li><a href="{relative_path}/admin/settings/chat">[[admin/menu:settings/chat]]</a></li> <li><a href="{relative_path}/admin/settings/chat">[[admin/menu:settings/chat]]</a></li>
<li><a href="{relative_path}/admin/settings/pagination">[[admin/menu:settings/pagination]]</a></li> <li><a href="{relative_path}/admin/settings/pagination">[[admin/menu:settings/pagination]]</a></li>
<li><a href="{relative_path}/admin/settings/notifications">[[admin/menu:settings/notifications]]</a></li> <li><a href="{relative_path}/admin/settings/notifications">[[admin/menu:settings/notifications]]</a></li>
@ -48,7 +49,6 @@
<li><a href="{relative_path}/admin/settings/social">[[admin/menu:settings/social]]</a></li> <li><a href="{relative_path}/admin/settings/social">[[admin/menu:settings/social]]</a></li>
<li><a href="{relative_path}/admin/settings/cookies">[[admin/menu:settings/cookies]]</a></li> <li><a href="{relative_path}/admin/settings/cookies">[[admin/menu:settings/cookies]]</a></li>
<li><a href="{relative_path}/admin/settings/web-crawler">[[admin/menu:settings/web-crawler]]</a></li> <li><a href="{relative_path}/admin/settings/web-crawler">[[admin/menu:settings/web-crawler]]</a></li>
<li><a href="{relative_path}/admin/settings/sockets">[[admin/menu:settings/sockets]]</a></li>
<li><a href="{relative_path}/admin/settings/advanced">[[admin/menu:settings/advanced]]</a></li> <li><a href="{relative_path}/admin/settings/advanced">[[admin/menu:settings/advanced]]</a></li>
</ul> </ul>
</section> </section>
@ -172,14 +172,15 @@
<li><a id="manage-categories" href="{relative_path}/admin/manage/categories">[[admin/menu:manage/categories]]</a></li> <li><a id="manage-categories" href="{relative_path}/admin/manage/categories">[[admin/menu:manage/categories]]</a></li>
<li><a href="{relative_path}/admin/manage/privileges">[[admin/menu:manage/privileges]]</a></li> <li><a href="{relative_path}/admin/manage/privileges">[[admin/menu:manage/privileges]]</a></li>
<li><a id="manage-users" href="{relative_path}/admin/manage/users">[[admin/menu:manage/users]]</a></li> <li><a id="manage-users" href="{relative_path}/admin/manage/users">[[admin/menu:manage/users]]</a></li>
<li><a href="{relative_path}/admin/manage/registration">[[admin/menu:manage/registration]]</a></li>
<li><a href="{relative_path}/admin/manage/admins-mods">[[admin/menu:manage/admins-mods]]</a></li> <li><a href="{relative_path}/admin/manage/admins-mods">[[admin/menu:manage/admins-mods]]</a></li>
<li><a href="{relative_path}/admin/manage/groups">[[admin/menu:manage/groups]]</a></li> <li><a href="{relative_path}/admin/manage/groups">[[admin/menu:manage/groups]]</a></li>
<li><a href="{relative_path}/admin/manage/tags">[[admin/menu:manage/tags]]</a></li> <li><a href="{relative_path}/admin/manage/tags">[[admin/menu:manage/tags]]</a></li>
<li><a href="{relative_path}/admin/manage/registration">[[admin/menu:manage/registration]]</a></li>
<li><a href="{relative_path}/admin/manage/post-queue">[[admin/menu:manage/post-queue]]</a></li>
<li><a href="{relative_path}/admin/manage/ip-blacklist">[[admin/menu:manage/ip-blacklist]]</a></li>
<li><a href="{relative_path}/admin/manage/uploads">[[admin/menu:manage/uploads]]</a></li> <li><a href="{relative_path}/admin/manage/uploads">[[admin/menu:manage/uploads]]</a></li>
<li><a href="{relative_path}/admin/manage/digest">[[admin/menu:manage/digest]]</a></li> <li><a href="{relative_path}/admin/manage/digest">[[admin/menu:manage/digest]]</a></li>
<li role="separator" class="divider"></li>
<li><a target="_top" href="{relative_path}/post-queue">[[admin/menu:manage/post-queue]] <i class="fa fa-external-link"></i></a></li>
<li><a target="_top" href="{relative_path}/ip-blacklist">[[admin/menu:manage/ip-blacklist]] <i class="fa fa-external-link"></i></a></li>
</ul> </ul>
</li> </li>
<li class="dropdown menu-item"> <li class="dropdown menu-item">
@ -189,14 +190,14 @@
<li><a href="{relative_path}/admin/settings/homepage">[[admin/menu:settings/homepage]]</a></li> <li><a href="{relative_path}/admin/settings/homepage">[[admin/menu:settings/homepage]]</a></li>
<li><a href="{relative_path}/admin/settings/navigation">[[admin/menu:settings/navigation]]</a></li> <li><a href="{relative_path}/admin/settings/navigation">[[admin/menu:settings/navigation]]</a></li>
<li><a href="{relative_path}/admin/settings/user">[[admin/menu:settings/user]]</a></li> <li><a href="{relative_path}/admin/settings/user">[[admin/menu:settings/user]]</a></li>
<li><a href="{relative_path}/admin/settings/reputation">[[admin/menu:settings/reputation]]</a></li>
<li><a href="{relative_path}/admin/settings/guest">[[admin/menu:settings/guest]]</a></li>
<li><a href="{relative_path}/admin/settings/group">[[admin/menu:settings/group]]</a></li> <li><a href="{relative_path}/admin/settings/group">[[admin/menu:settings/group]]</a></li>
<li><a href="{relative_path}/admin/settings/tags">[[admin/menu:manage/tags]]</a></li> <li><a href="{relative_path}/admin/settings/tags">[[admin/menu:manage/tags]]</a></li>
<li><a href="{relative_path}/admin/settings/post">[[admin/menu:settings/post]]</a></li> <li><a href="{relative_path}/admin/settings/post">[[admin/menu:settings/post]]</a></li>
<li><a href="{relative_path}/admin/settings/uploads">[[admin/menu:settings/uploads]]</a></li>
<li><a href="{relative_path}/admin/settings/languages">[[admin/menu:settings/languages]]</a></li> <li><a href="{relative_path}/admin/settings/languages">[[admin/menu:settings/languages]]</a></li>
<li><a href="{relative_path}/admin/settings/email">[[admin/menu:settings/email]]</a></li> <li><a href="{relative_path}/admin/settings/email">[[admin/menu:settings/email]]</a></li>
<li><a href="{relative_path}/admin/settings/reputation">[[admin/menu:settings/reputation]]</a></li>
<li><a href="{relative_path}/admin/settings/guest">[[admin/menu:settings/guest]]</a></li>
<li><a href="{relative_path}/admin/settings/uploads">[[admin/menu:settings/uploads]]</a></li>
<li><a href="{relative_path}/admin/settings/chat">[[admin/menu:settings/chat]]</a></li> <li><a href="{relative_path}/admin/settings/chat">[[admin/menu:settings/chat]]</a></li>
<li><a href="{relative_path}/admin/settings/pagination">[[admin/menu:settings/pagination]]</a></li> <li><a href="{relative_path}/admin/settings/pagination">[[admin/menu:settings/pagination]]</a></li>
<li><a href="{relative_path}/admin/settings/notifications">[[admin/menu:settings/notifications]]</a></li> <li><a href="{relative_path}/admin/settings/notifications">[[admin/menu:settings/notifications]]</a></li>
@ -204,7 +205,6 @@
<li><a href="{relative_path}/admin/settings/social">[[admin/menu:settings/social]]</a></li> <li><a href="{relative_path}/admin/settings/social">[[admin/menu:settings/social]]</a></li>
<li><a href="{relative_path}/admin/settings/cookies">[[admin/menu:settings/cookies]]</a></li> <li><a href="{relative_path}/admin/settings/cookies">[[admin/menu:settings/cookies]]</a></li>
<li><a href="{relative_path}/admin/settings/web-crawler">[[admin/menu:settings/web-crawler]]</a></li> <li><a href="{relative_path}/admin/settings/web-crawler">[[admin/menu:settings/web-crawler]]</a></li>
<li><a href="{relative_path}/admin/settings/sockets">[[admin/menu:settings/sockets]]</a></li>
<li><a href="{relative_path}/admin/settings/advanced">[[admin/menu:settings/advanced]]</a></li> <li><a href="{relative_path}/admin/settings/advanced">[[admin/menu:settings/advanced]]</a></li>
</ul> </ul>
</li> </li>

@ -131,4 +131,20 @@
</div> </div>
</div> </div>
<div class="row">
<div class="col-sm-2 col-xs-12 settings-header">[[admin/settings/advanced:sockets.settings]]</div>
<div class="col-sm-10 col-xs-12">
<form>
<div class="form-group">
<label for="maxReconnectionAttempts">[[admin/settings/advanced:sockets.max-attempts]]</label>
<input class="form-control" id="maxReconnectionAttempts" type="text" value="5" placeholder="[[admin/settings/advanced:sockets.default-placeholder, 5]]" data-field="maxReconnectionAttempts" />
</div>
<div class="form-group">
<label for="reconnectionDelay">[[admin/settings/advanced:sockets.delay]]</label>
<input class="form-control" id="reconnectionDelay" type="text" value="1500" placeholder="[[admin/settings/advanced:sockets.default-placeholder, 1500]]" data-field="reconnectionDelay" />
</div>
</form>
</div>
</div>
<!-- IMPORT admin/partials/settings/footer.tpl --> <!-- IMPORT admin/partials/settings/footer.tpl -->

Loading…
Cancel
Save