diff --git a/public/language/en-GB/admin/manage/users.json b/public/language/en-GB/admin/manage/users.json index 08e5701f40..d11670719c 100644 --- a/public/language/en-GB/admin/manage/users.json +++ b/public/language/en-GB/admin/manage/users.json @@ -121,6 +121,28 @@ "alerts.email-sent-to": "An invitation email has been sent to %1", "alerts.x-users-found": "%1 user(s) found, (%2 seconds)", "alerts.select-a-single-user-to-change-email": "Select a single user to change email", + "export": "Export", + "export-users-fields-title": "Select CSV Fields", + "export-field-email": "Email", + "export-field-username": "Username", + "export-field-uid": "UID", + "export-field-ip": "IP", + "export-field-joindate": "Join date", + "export-field-lastonline": "Last Online", + "export-field-lastposttime": "Last Post Time", + "export-field-reputation": "Reputation", + "export-field-postcount": "Post Count", + "export-field-topiccount": "Topic Count", + "export-field-profileviews": "Profile Views", + "export-field-followercount": "Follower Count", + "export-field-followingcount": "Following Count", + "export-field-fullname": "Full Name", + "export-field-website": "Website", + "export-field-location": "Location", + "export-field-birthday": "Birthday", + "export-field-signature": "Signature", + "export-field-aboutme": "About Me", + "export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.", "export-users-completed": "Users exported as csv, click here to download.", "email": "Email", diff --git a/public/src/admin/manage/users.js b/public/src/admin/manage/users.js index 16a4918d63..740a8478dc 100644 --- a/public/src/admin/manage/users.js +++ b/public/src/admin/manage/users.js @@ -27,15 +27,60 @@ define('admin/manage/users', [ timeout: 0, }); }); - socket.emit('admin.user.exportUsersCSV', {}, function (err) { - if (err) { - return alerts.error(err); - } - alerts.alert({ - alert_id: 'export-users-start', - message: '[[admin/manage/users:export-users-started]]', - timeout: (ajaxify.data.userCount / 5000) * 500, - }); + + const defaultFields = [ + { label: '[[admin/manage/users:export-field-email]]', field: 'email', selected: true }, + { label: '[[admin/manage/users:export-field-username]]', field: 'username', selected: true }, + { label: '[[admin/manage/users:export-field-uid]]', field: 'uid', selected: true }, + { label: '[[admin/manage/users:export-field-ip]]', field: 'ip', selected: true }, + { label: '[[admin/manage/users:export-field-joindate]]', field: 'joindate', selected: false }, + { label: '[[admin/manage/users:export-field-lastonline]]', field: 'lastonline', selected: false }, + { label: '[[admin/manage/users:export-field-lastposttime]]', field: 'lastposttime', selected: false }, + { label: '[[admin/manage/users:export-field-reputation]]', field: 'reputation', selected: false }, + { label: '[[admin/manage/users:export-field-postcount]]', field: 'postcount', selected: false }, + { label: '[[admin/manage/users:export-field-topiccount]]', field: 'topiccount', selected: false }, + { label: '[[admin/manage/users:export-field-profileviews]]', field: 'profileviews', selected: false }, + { label: '[[admin/manage/users:export-field-followercount]]', field: 'followerCount', selected: false }, + { label: '[[admin/manage/users:export-field-followingcount]]', field: 'followingCount', selected: false }, + { label: '[[admin/manage/users:export-field-fullname]]', field: 'fullname', selected: false }, + { label: '[[admin/manage/users:export-field-website]]', field: 'website', selected: false }, + { label: '[[admin/manage/users:export-field-location]]', field: 'location', selected: false }, + { label: '[[admin/manage/users:export-field-birthday]]', field: 'birthday', selected: false }, + { label: '[[admin/manage/users:export-field-signature]]', field: 'signature', selected: false }, + { label: '[[admin/manage/users:export-field-aboutme]]', field: 'aboutme', selected: false }, + ]; + const options = defaultFields.map((field, i) => (` +