added bridge instance settings

This commit is contained in:
Nicolas Constant 2021-02-28 01:50:06 -05:00
parent fb4c99870e
commit 7653398642
No known key found for this signature in database
GPG Key ID: 1E9F677FB01A5688
3 changed files with 49 additions and 2 deletions

View File

@ -35,6 +35,7 @@
</form>
<a href class="form-button sound__play" type="submit" (click)="playNotificationSound()">play</a>
</div>
<h4 class="panel__subtitle">Shortcuts</h4>
<div class="sub-section">
<span class="sub-section__title">switch column:</span><br />
@ -50,6 +51,21 @@
<br>
</div>
<h4 class="panel__subtitle">Twitter Bridge</h4>
<div class="sub-section">
<input class="sub-section__checkbox" [(ngModel)]="twitterBridgeEnabled"
(change)="onTwitterBridgeEnabledChanged()" type="checkbox" name="onTwitterBridgeEnabled"
value="onTwitterBridgeEnabled" id="onTwitterBridgeEnabled">
<label class="noselect sub-section__label" for="onTwitterBridgeEnabled">enable bridge</label>
<br>
<div *ngIf="twitterBridgeEnabled">
<p>Please provide your bridge instance:
<input type="text" class="form-control form-control-sm sub_section__text-input"
[(ngModel)]="setTwitterBridgeInstance" placeholder="bridge.tld" />
If you don't know any, consider using <a href="https://github.com/NicolasConstant/BirdsiteLive" target="_blank" class="version__link">BirdsiteLIVE</a></p>
</div>
</div>
<h4 class="panel__subtitle">Content-Warning Policies</h4>
<div class="sub-section">
<span class="sub-section__title">global behavior:</span><br />

View File

@ -31,6 +31,8 @@ export class SettingsComponent implements OnInit {
hasPleromaAccount: boolean;
autoFollowOnListEnabled: boolean;
twitterBridgeEnabled: boolean;
columnShortcutEnabled: ColumnShortcut = ColumnShortcut.Ctrl;
timeLineHeader: TimeLineHeaderEnum = TimeLineHeaderEnum.Title_DomainName;
timeLineMode: TimeLineModeEnum = TimeLineModeEnum.OnTop;
@ -63,6 +65,16 @@ export class SettingsComponent implements OnInit {
return this.contentHidedCompletely;
}
private twitterBridgeInstance: string;
set setTwitterBridgeInstance(value: string) {
let instance = value.replace('https://', '').replace('http://', '').replace('/', '').trim();
this.setBridgeInstance(instance);
this.twitterBridgeInstance = instance;
}
get setTwitterBridgeInstance(): string {
return this.twitterBridgeInstance;
}
constructor(
private readonly navigationService: NavigationService,
private formBuilder: FormBuilder,
@ -111,7 +123,10 @@ export class SettingsComponent implements OnInit {
}
})
.catch(err => console.error(err));
});
});
this.twitterBridgeEnabled = settings.twitterBridgeEnabled;
this.twitterBridgeInstance = settings.twitterBridgeInstance;
}
onShortcutChange(id: ColumnShortcut) {
@ -178,12 +193,18 @@ export class SettingsComponent implements OnInit {
}
this.toolsService.saveContentWarningPolicy(cwPolicySettings);
}
}
private splitCwValues(data: string): string[]{
return data.split(';').map(x => x.trim().toLowerCase()).filter((value, index, self) => self.indexOf(value) === index).filter(y => y !== '');
}
private setBridgeInstance(instance: string){
let settings = this.toolsService.getSettings();
settings.twitterBridgeInstance = instance;
this.toolsService.saveSettings(settings);
}
// reload(): boolean {
// window.location.reload();
// return false;
@ -240,6 +261,12 @@ export class SettingsComponent implements OnInit {
this.toolsService.saveSettings(settings);
}
onTwitterBridgeEnabledChanged(){
let settings = this.toolsService.getSettings();
settings.twitterBridgeEnabled = this.twitterBridgeEnabled;
this.toolsService.saveSettings(settings);
}
isCleanningAll: boolean = false;
startClearAllLocalData(): boolean {
this.isCleanningAll = !this.isCleanningAll;

View File

@ -67,8 +67,10 @@ export class GlobalSettings {
disableSounds = false;
disableRemoteStatusFetching = false;
autoFollowOnListEnabled = false;
twitterBridgeEnabled = false;
notificationSoundFileId: string = '0';
twitterBridgeInstance: string = '';
timelineHeader: TimeLineHeaderEnum = TimeLineHeaderEnum.Title_DomainName;
timelineMode: TimeLineModeEnum = TimeLineModeEnum.OnTop;
@ -166,6 +168,8 @@ export class SettingsState {
newSettings.timelineHeader = oldSettings.timelineHeader;
newSettings.timelineMode = oldSettings.timelineMode;
newSettings.autoFollowOnListEnabled = oldSettings.autoFollowOnListEnabled;
newSettings.twitterBridgeEnabled = oldSettings.twitterBridgeEnabled;
newSettings.twitterBridgeInstance = oldSettings.twitterBridgeInstance;
return newSettings;
}