forked from AkkomaGang/akkoma-fe
Adds an option to export follows
This commit is contained in:
parent
622e8cd94f
commit
fae7a40aeb
3 changed files with 40 additions and 1 deletions
|
@ -8,6 +8,7 @@ const UserSettings = {
|
|||
followList: null,
|
||||
followImportError: false,
|
||||
followsImported: false,
|
||||
enableFollowsExport: true,
|
||||
uploading: [ false, false, false, false ],
|
||||
previews: [ null, null, null ]
|
||||
}
|
||||
|
@ -137,6 +138,34 @@ const UserSettings = {
|
|||
this.uploading[3] = false
|
||||
})
|
||||
},
|
||||
/* This function takes an Array of Users
|
||||
* and outputs a file with all the addresses for the user to download
|
||||
*/
|
||||
exportPeople(Users) {
|
||||
// Get all the friends addresses
|
||||
var UserAddresses = Users.map(function(user) {
|
||||
// check is it's a local user
|
||||
if(user && user.is_local) {
|
||||
// append the instance address
|
||||
user.screen_name += '@' + location.hostname;
|
||||
}
|
||||
return user.screen_name;
|
||||
}).join('\n');
|
||||
// Make the user download the file
|
||||
var fileToDownload = document.createElement('a');
|
||||
fileToDownload.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(UserAddresses));
|
||||
fileToDownload.setAttribute('download', 'friends.csv');
|
||||
fileToDownload.style.display = 'none';
|
||||
document.body.appendChild(fileToDownload);
|
||||
fileToDownload.click();
|
||||
document.body.removeChild(fileToDownload);
|
||||
},
|
||||
exportFollows() {
|
||||
this.enableFollowsExport = false;
|
||||
this.$store.state.api.backendInteractor
|
||||
.fetchFriends({id: this.$store.state.users.currentUser.id})
|
||||
.then(this.exportPeople);
|
||||
},
|
||||
followListChange () {
|
||||
// eslint-disable-next-line no-undef
|
||||
let formData = new FormData()
|
||||
|
|
|
@ -66,6 +66,13 @@
|
|||
<p>{{$t('settings.follow_import_error')}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="setting-item" v-if="enableFollowsExport">
|
||||
<h3>{{$t('settings.follow_export')}}</h3>
|
||||
<button class="btn btn-default" @click="exportFollows">{{$t('settings.follow_export_button')}}</button>
|
||||
</div>
|
||||
<div class="setting-item" v-else>
|
||||
<h3>{{$t('settings.follow_export_processing')}}</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
@ -288,7 +288,10 @@ const en = {
|
|||
follow_import: 'Follow import',
|
||||
import_followers_from_a_csv_file: 'Import follows from a csv file',
|
||||
follows_imported: 'Follows imported! Processing them will take a while.',
|
||||
follow_import_error: 'Error importing followers'
|
||||
follow_import_error: 'Error importing followers',
|
||||
follow_export: 'Follow export',
|
||||
follow_export_processing: 'Processing, you\'ll soon be aked to download your file',
|
||||
follow_export_button: 'Export your follows to a csv file'
|
||||
},
|
||||
notifications: {
|
||||
notifications: 'Notifications',
|
||||
|
|
Loading…
Reference in a new issue