Format web code

This commit is contained in:
Travis Ralston 2019-07-10 22:17:16 -06:00
parent 2e19cec215
commit 2737850e6f
40 changed files with 159 additions and 105 deletions

View File

@ -6,8 +6,8 @@
<div class="my-ibox-content">
<p>
<a href="https://github.com/matrix-org/matrix-appservice-gitter" target="_blank">matrix-appservice-gitter</a>
is a Gitter bridge that supports bridging Gitter rooms to Matrix. Users on Matrix are represented as a single
bot user in Gitter, however Gitter users are represented as real-looking Matrix users in the room.
is a Gitter bridge that supports bridging Gitter rooms to Matrix. Users on Matrix are represented as a
single bot user in Gitter, however Gitter users are represented as real-looking Matrix users in the room.
</p>
<table class="table table-striped table-condensed table-bordered">
@ -24,7 +24,8 @@
<tr *ngFor="let bridge of configurations trackById">
<td>
{{ bridge.upstreamId ? "matrix.org's bridge" : "Self-hosted bridge" }}
<span class="text-muted" style="display: inline-block;" *ngIf="!bridge.upstreamId">({{ bridge.provisionUrl }})</span>
<span class="text-muted" style="display: inline-block;"
*ngIf="!bridge.upstreamId">({{ bridge.provisionUrl }})</span>
</td>
<td class="text-center">
<span class="editButton" (click)="editBridge(bridge)" *ngIf="!bridge.upstreamId">
@ -34,10 +35,12 @@
</tr>
</tbody>
</table>
<button type="button" class="btn btn-success btn-sm" (click)="addModularHostedBridge()" [disabled]="(configurations && configurations.length > 0) || isUpdating">
<button type="button" class="btn btn-success btn-sm" (click)="addModularHostedBridge()"
[disabled]="(configurations && configurations.length > 0) || isUpdating">
<i class="fa fa-plus"></i> Add matrix.org's bridge
</button>
<button type="button" class="btn btn-success btn-sm" (click)="addSelfHostedBridge()" [disabled]="(configurations && configurations.length > 0) || isUpdating">
<button type="button" class="btn btn-success btn-sm" (click)="addSelfHostedBridge()"
[disabled]="(configurations && configurations.length > 0) || isUpdating">
<i class="fa fa-plus"></i> Add self-hosted bridge
</button>
</div>

View File

@ -3,7 +3,10 @@
<h4>{{ isAdding ? "Add a new" : "Edit" }} self-hosted Gitter bridge</h4>
</div>
<div class="dialog-content">
<p>Self-hosted Gitter bridges already have provisioning enabled. Be careful not to expose the API to the public internet.</p>
<p>
Self-hosted Gitter bridges already have provisioning enabled. Be careful not to expose the API to the public
internet.
</p>
<label class="label-block">
Provisioning URL

View File

@ -25,7 +25,8 @@
<tr *ngFor="let bridge of configurations trackById">
<td>
{{ bridge.upstreamId ? "matrix.org's bridge" : "Self-hosted bridge" }}
<span class="text-muted" style="display: inline-block;" *ngIf="!bridge.upstreamId">({{ bridge.provisionUrl }})</span>
<span class="text-muted" style="display: inline-block;"
*ngIf="!bridge.upstreamId">({{ bridge.provisionUrl }})</span>
</td>
<td *ngIf="bridge.isOnline">
{{ getEnabledNetworksString(bridge) }}
@ -42,7 +43,8 @@
</tr>
</tbody>
</table>
<button type="button" class="btn btn-success btn-sm" (click)="addModularHostedBridge()" *ngIf="!hasModularBridge">
<button type="button" class="btn btn-success btn-sm" (click)="addModularHostedBridge()"
*ngIf="!hasModularBridge">
<i class="fa fa-plus"></i> Add matrix.org's bridge
</button>
<button type="button" class="btn btn-success btn-sm" (click)="addSelfHostedBridge()">

View File

@ -3,7 +3,10 @@
<h4>{{ isAdding ? "Add a new" : "Edit" }} self-hosted Slack bridge</h4>
</div>
<div class="dialog-content">
<p>Self-hosted Slack bridges already have provisioning enabled. Be careful not to expose the API to the public internet.</p>
<p>
Self-hosted Slack bridges already have provisioning enabled. Be careful not to expose the API to the public
internet.
</p>
<label class="label-block">
Provisioning URL

View File

@ -5,9 +5,10 @@
<my-ibox boxTitle="Slack Bridge Configurations">
<div class="my-ibox-content">
<p>
<a href="https://github.com/matrix-org/matrix-appservice-slack" target="_blank">matrix-appservice-slack</a>
is a Slack bridge that supports bridging Slack channels to Matrix. Users authorize the bridge to access their
Slack workspaces and from there they can pick the channels they'd like to bridge.
<a href="https://github.com/matrix-org/matrix-appservice-slack"
target="_blank">matrix-appservice-slack</a>
is a Slack bridge that supports bridging Slack channels to Matrix. Users authorize the bridge to access
their Slack workspaces and from there they can pick the channels they'd like to bridge.
</p>
<table class="table table-striped table-condensed table-bordered">
@ -24,7 +25,8 @@
<tr *ngFor="let bridge of configurations trackById">
<td>
{{ bridge.upstreamId ? "matrix.org's bridge" : "Self-hosted bridge" }}
<span class="text-muted" style="display: inline-block;" *ngIf="!bridge.upstreamId">({{ bridge.provisionUrl }})</span>
<span class="text-muted" style="display: inline-block;"
*ngIf="!bridge.upstreamId">({{ bridge.provisionUrl }})</span>
</td>
<td class="text-center">
<span class="editButton" (click)="editBridge(bridge)" *ngIf="!bridge.upstreamId">
@ -34,10 +36,12 @@
</tr>
</tbody>
</table>
<button type="button" class="btn btn-success btn-sm" (click)="addModularHostedBridge()" [disabled]="(configurations && configurations.length > 0) || isUpdating">
<button type="button" class="btn btn-success btn-sm" (click)="addModularHostedBridge()"
[disabled]="(configurations && configurations.length > 0) || isUpdating">
<i class="fa fa-plus"></i> Add matrix.org's bridge
</button>
<button type="button" class="btn btn-success btn-sm" (click)="addSelfHostedBridge()" [disabled]="(configurations && configurations.length > 0) || isUpdating">
<button type="button" class="btn btn-success btn-sm" (click)="addSelfHostedBridge()"
[disabled]="(configurations && configurations.length > 0) || isUpdating">
<i class="fa fa-plus"></i> Add self-hosted bridge
</button>
</div>

View File

@ -27,7 +27,8 @@
<tr *ngFor="let bridge of configurations trackById">
<td>
{{ bridge.upstreamId ? "matrix.org's bridge" : "Self-hosted bridge" }}
<span class="text-muted" style="display: inline-block;" *ngIf="!bridge.upstreamId">({{ bridge.provisionUrl }})</span>
<span class="text-muted" style="display: inline-block;"
*ngIf="!bridge.upstreamId">({{ bridge.provisionUrl }})</span>
</td>
<td>
{{ getEnabledFeaturesString(bridge) }}
@ -40,7 +41,8 @@
</tr>
</tbody>
</table>
<button type="button" class="btn btn-success btn-sm" (click)="addSelfHostedBridge()" [disabled]="configurations && configurations.length > 0">
<button type="button" class="btn btn-success btn-sm" (click)="addSelfHostedBridge()"
[disabled]="configurations && configurations.length > 0">
<i class="fa fa-plus"></i> Add self-hosted bridge
</button>
</div>

View File

@ -23,7 +23,8 @@
<tr *ngFor="let bridge of configurations trackById">
<td>
{{ bridge.upstreamId ? "matrix.org's bridge" : "Self-hosted bridge" }}
<span class="text-muted" style="display: inline-block;" *ngIf="!bridge.upstreamId">({{ bridge.provisionUrl }})</span>
<span class="text-muted" style="display: inline-block;"
*ngIf="!bridge.upstreamId">({{ bridge.provisionUrl }})</span>
</td>
<td class="text-center">
<span class="editButton" (click)="editBridge(bridge)">
@ -33,7 +34,8 @@
</tr>
</tbody>
</table>
<button type="button" class="btn btn-success btn-sm" (click)="addSelfHostedBridge()" [disabled]="configurations && configurations.length > 0">
<button type="button" class="btn btn-success btn-sm" (click)="addSelfHostedBridge()"
[disabled]="configurations && configurations.length > 0">
<i class="fa fa-plus"></i> Add self-hosted bridge
</button>
</div>

View File

@ -4,7 +4,10 @@
<div *ngIf="!isLoading">
<my-ibox boxTitle="Configuration">
<div class="my-ibox-content">
<p>Parts of your configuration are displayed below. To change these values, edit your configuration and restart Dimension.</p>
<p>
Parts of your configuration are displayed below. To change these values, edit your configuration and
restart Dimension.
</p>
<div class="row">
<div class="col-md-4">
@ -20,19 +23,19 @@
</ul>
</div>
<div class="col-md-4">
<strong>Homeserver</strong><br />
Name: {{ config.homeserver.name }}<br />
Federation URL: {{ config.homeserver.federationUrl }}<br />
Federation Hostname: {{ config.homeserver.federationHostname }}<br />
Client/Server URL: {{ config.homeserver.clientServerUrl }}<br />
<strong>Homeserver</strong><br/>
Name: {{ config.homeserver.name }}<br/>
Federation URL: {{ config.homeserver.federationUrl }}<br/>
Federation Hostname: {{ config.homeserver.federationHostname }}<br/>
Client/Server URL: {{ config.homeserver.clientServerUrl }}<br/>
Utility User ID: {{ config.homeserver.userId }}
</div>
</div>
<div class="row">
<div class="col-md-4">
<strong>Sessions</strong><br />
Tokens registered: {{ config.sessionInfo.numTokens }}<br />
<strong>Sessions</strong><br/>
Tokens registered: {{ config.sessionInfo.numTokens }}<br/>
<button class="btn btn-danger btn-sm" type="button" (click)="logoutAll()">
Logout Everyone
</button>

View File

@ -5,8 +5,8 @@
<div class="dialog-content">
<p>
Logging everyone out will disable all known login tokens for Dimension and upstream integration managers.
Most clients will automatically re-register for a login token behind the scenes, similar to how a login token
was first acquired.
Most clients will automatically re-register for a login token behind the scenes, similar to how a login
token was first acquired.
</p>
</div>
<div class="dialog-footer">

View File

@ -11,5 +11,6 @@ export class LogoutConfirmationDialogContext extends BSModalContext {
})
export class AdminLogoutConfirmationDialogComponent implements ModalComponent<LogoutConfirmationDialogContext> {
constructor(public dialog: DialogRef<LogoutConfirmationDialogContext>) {}
constructor(public dialog: DialogRef<LogoutConfirmationDialogContext>) {
}
}

View File

@ -1,6 +1,9 @@
<my-ibox boxTitle="New self-hosted go-neb">
<div class="my-ibox-content">
<p>Self-hosted go-neb instances are powered by application services installed on your homeserver. The application service is responsible for creating the bots dynamically.</p>
<p>
Self-hosted go-neb instances are powered by application services installed on your homeserver. The
application service is responsible for creating the bots dynamically.
</p>
<label class="label-block">
User Prefix

View File

@ -17,7 +17,7 @@
Image Size
<span class="text-muted ">GIFs can be large, and sometimes it is more desirable to have them downsized.</span>
<label class="checkbox">
<input type="checkbox" [(ngModel)]="config.use_downsized" [disabled]="isUpdating" />
<input type="checkbox" [(ngModel)]="config.use_downsized" [disabled]="isUpdating"/>
Use downsized images
</label>
</label>

View File

@ -24,7 +24,8 @@
<tr *ngFor="let neb of configurations trackById">
<td>
{{ neb.upstreamId ? "matrix.org's go-neb" : "Self-hosted go-neb" }}
<span class="text-muted" style="display: inline-block;" *ngIf="!neb.upstreamId">({{ neb.adminUrl }})</span>
<span class="text-muted" style="display: inline-block;"
*ngIf="!neb.upstreamId">({{ neb.adminUrl }})</span>
</td>
<td>
{{ getEnabledBotsString(neb) }}

View File

@ -11,8 +11,9 @@
</p>
<div class="input-group input-group-sm telegram-import">
<input type="text" class="form-control" [(ngModel)]="tgUrl" placeholder="https://t.me/addstickers/YourPackID"
[disabled]="isImporting" />
<input type="text" class="form-control" [(ngModel)]="tgUrl"
placeholder="https://t.me/addstickers/YourPackID"
[disabled]="isImporting"/>
<span class="input-group-btn">
<button class="btn btn-primary" (click)="startTelegramImport()" [disabled]="!tgUrl || isImporting">
<i class="fa fa-download"></i>

View File

@ -10,7 +10,8 @@
<label class="label-block">
Name
<span class="text-muted ">The translated name of your policy</span>
<input type="text" class="form-control" placeholder="My Policy" [(ngModel)]="languages[code].name" [disabled]="isUpdating"/>
<input type="text" class="form-control" placeholder="My Policy" [(ngModel)]="languages[code].name"
[disabled]="isUpdating"/>
</label>
<label class="label-block">
Policy text
@ -19,16 +20,16 @@
<ckeditor [editor]="Editor" [(ngModel)]="languages[code].text" [disabled]="isUpdating"></ckeditor>
</div>
</my-ibox>
<!-- <my-ibox [hasTitle]="false">-->
<!-- <div class="my-ibox-content buttons">-->
<!-- <select [(ngModel)]="chosenLanguage" [disabled]="isUpdating" class="form-control form-control-sm">-->
<!-- <option *ngFor="let lang of availableLanguages" [ngValue]="lang.code">{{lang.name}}</option>-->
<!-- </select>-->
<!-- <button type="button" (click)="addLanguage()" title="save" class="btn btn-outline-success btn-sm">-->
<!-- <i class="fa fa-plus"></i> Add language-->
<!-- </button>-->
<!-- </div>-->
<!-- </my-ibox>-->
<!-- <my-ibox [hasTitle]="false">-->
<!-- <div class="my-ibox-content buttons">-->
<!-- <select [(ngModel)]="chosenLanguage" [disabled]="isUpdating" class="form-control form-control-sm">-->
<!-- <option *ngFor="let lang of availableLanguages" [ngValue]="lang.code">{{lang.name}}</option>-->
<!-- </select>-->
<!-- <button type="button" (click)="addLanguage()" title="save" class="btn btn-outline-success btn-sm">-->
<!-- <i class="fa fa-plus"></i> Add language-->
<!-- </button>-->
<!-- </div>-->
<!-- </my-ibox>-->
<my-ibox [hasTitle]="false">
<div class="my-ibox-content buttons">
<button type="button" (click)="create()" title="save" class="btn btn-primary btn-sm" *ngIf="!isEditing">

View File

@ -28,7 +28,8 @@
<td>{{ policy.version }}</td>
<td class="text-center">
<span class="editButton" [routerLink]="['edit', policy.shortcode]" title="edit draft" *ngIf="policy.version == 'draft'">
<span class="editButton" [routerLink]="['edit', policy.shortcode]" title="edit draft"
*ngIf="policy.version == 'draft'">
<i class="fa fa-pencil-alt"></i>
</span>
</td>

View File

@ -20,7 +20,8 @@
<td>{{ widget.displayName }}</td>
<td>{{ widget.description }}</td>
<td class="text-right">
<span class="editButton" (click)="editWidget(widget)" *ngIf="widget.isEnabled && hasConfiguration(widget)">
<span class="editButton" (click)="editWidget(widget)"
*ngIf="widget.isEnabled && hasConfiguration(widget)">
<i class="fa fa-pencil-alt"></i>
</span>
<ui-switch [checked]="widget.isEnabled" size="small" [disabled]="isUpdating"

View File

@ -15,7 +15,7 @@
<label class="label-block">
Gitter Room
<input title="room name" type="text" class="form-control form-control-sm col-md-3"
[(ngModel)]="gitterRoomName" [disabled]="isBusy" placeholder="my-org/room" />
[(ngModel)]="gitterRoomName" [disabled]="isBusy" placeholder="my-org/room"/>
</label>
<button type="button" class="btn btn-sm btn-primary" [disabled]="isBusy" (click)="bridgeRoom()">
Bridge

View File

@ -25,10 +25,12 @@
</label>
<div class="input-group input-group-sm">
<div class="input-group-addon">#</div>
<input title="channel" type="text" class="form-control form-control-sm" [(ngModel)]="channel" [disabled]="loadingOps">
<input title="channel" type="text" class="form-control form-control-sm" [(ngModel)]="channel"
[disabled]="loadingOps">
</div>
<div style="margin-top: 25px">
<button type="button" class="btn btn-sm btn-primary" [disabled]="loadingOps" (click)="loadOps()">
<button type="button" class="btn btn-sm btn-primary" [disabled]="loadingOps"
(click)="loadOps()">
Next
</button>
</div>
@ -43,7 +45,8 @@
</select>
</label>
<div style="margin-top: 25px">
<button type="button" class="btn btn-sm btn-primary" [disabled]="requestingBridge" (click)="requestBridge()">
<button type="button" class="btn btn-sm btn-primary" [disabled]="requestingBridge"
(click)="requestBridge()">
Request Bridge
</button>
</div>

View File

@ -11,7 +11,7 @@
<div *ngIf="isBridged && bridge.config.link.isWebhook">
This room is bridged to Slack using webhooks. Webhook bridging is legacy and doesn't support as
rich bridging as the new approach. It is recommended to re-create the bridge with the new process.
<br />
<br/>
<button type="button" class="btn btn-sm btn-danger" [disabled]="isBusy" (click)="unbridgeRoom()">
Unbridge
</button>
@ -28,7 +28,7 @@
and channels. Please click the button below to do so.
</p>
<a [href]="authUrl" rel="noopener" target="_blank">
<img src="/img/slack_auth_button.png" class="slack-auth-button" alt="sign in with slack" />
<img src="/img/slack_auth_button.png" class="slack-auth-button" alt="sign in with slack"/>
</a>
</div>
<div *ngIf="!isBridged && !needsAuth">

View File

@ -7,7 +7,8 @@
the other room and instead bridge it here?
</div>
<div class="dialog-footer">
<button type="button" (click)="unbridgeAndContinue()" title="unbridge and continue" class="btn btn-danger btn-sm">
<button type="button" (click)="unbridgeAndContinue()" title="unbridge and continue"
class="btn btn-danger btn-sm">
Unbridge and continue
</button>
<button type="button" (click)="cancel()" title="cancel" class="btn btn-primary btn-sm">

View File

@ -8,7 +8,8 @@
<div *ngIf="isBridged">
This room is bridged to "{{ chatName }}" (<code>{{ chatId }}</code>) on Telegram.
<div *ngIf="canUnbridge">
<button type="button" class="btn btn-sm btn-danger" [disabled]="isUpdating" (click)="unbridgeRoom()">
<button type="button" class="btn btn-sm btn-danger" [disabled]="isUpdating"
(click)="unbridgeRoom()">
Unbridge
</button>
</div>
@ -20,7 +21,8 @@
<label class="label-block">
Chat ID
<span class="text-muted">After inviting <a href="https://t.me/{{ botUsername }}" target="_blank">@{{ botUsername }}</a> to your Telegram chat, run the command <code>/id</code> in the Telegram room to get the chat ID.</span>
<input title="chat ID" type="text" class="form-control form-control-sm col-md-3" [(ngModel)]="chatId" [disabled]="isUpdating" />
<input title="chat ID" type="text" class="form-control form-control-sm col-md-3"
[(ngModel)]="chatId" [disabled]="isUpdating"/>
</label>
<button type="button" class="btn btn-sm btn-primary" [disabled]="isUpdating" (click)="bridgeRoom()">
Bridge

View File

@ -7,7 +7,8 @@
<div class="my-ibox-content">
<label class="label-block">
Webhook Name
<input title="webhook name" type="text" class="form-control form-control-sm" [(ngModel)]="webhookName" [disabled]="isBusy">
<input title="webhook name" type="text" class="form-control form-control-sm"
[(ngModel)]="webhookName" [disabled]="isBusy">
</label>
<div style="margin-top: 25px">
<button type="button" class="btn btn-sm btn-primary" [disabled]="isBusy" (click)="newHook()">

View File

@ -19,11 +19,11 @@
<td>{{ feed.url }}</td>
<td>{{ feed.addedByUserId }}</td>
<td class="actions-col">
<button type="button" class="btn btn-sm btn-outline-danger"
[disabled]="isUpdating || !feed.isSelf"
(click)="removeFeed(feed)">
<i class="far fa-trash-alt"></i> Remove
</button>
<button type="button" class="btn btn-sm btn-outline-danger"
[disabled]="isUpdating || !feed.isSelf"
(click)="removeFeed(feed)">
<i class="far fa-trash-alt"></i> Remove
</button>
</td>
</tr>
<tr>
@ -33,7 +33,7 @@
[(ngModel)]="newFeedUrl"
placeholder="https://example.org/feed.atom"
name="newFeedUrl"
title="New feed URL" />
title="New feed URL"/>
<span class="input-group-btn">
<button type="button" class="btn btn-outline-success"
[disabled]="isUpdating"

View File

@ -5,7 +5,9 @@
.travis.yml configuration and template information
</h5>
<div class="my-ibox-content">
<p>The following section needs to be added to your <code>.travis.yml</code> file in your repositories:</p>
<p>
The following section needs to be added to your <code>.travis.yml</code> file in your repositories:
</p>
<pre>{{ travisYaml }}</pre>
<p>
@ -50,15 +52,17 @@
<tr *ngFor="let repo of getRepos()">
<td>{{ repo.repoKey }}</td>
<td>
<textarea title="Repository Template" class="repo-template form-control" rows="3" (change)="repo.template = $event.target.value" [disabled]="isUpdating || !repo.isSelf">{{ repo.template }}</textarea>
<textarea title="Repository Template" class="repo-template form-control" rows="3"
(change)="repo.template = $event.target.value"
[disabled]="isUpdating || !repo.isSelf">{{ repo.template }}</textarea>
</td>
<td>{{ repo.addedByUserId }}</td>
<td class="actions-col">
<button type="button" class="btn btn-sm btn-outline-danger"
[disabled]="isUpdating || !repo.isSelf"
(click)="removeRepo(repo)">
<i class="far fa-trash-alt"></i> Remove
</button>
<button type="button" class="btn btn-sm btn-outline-danger"
[disabled]="isUpdating || !repo.isSelf"
(click)="removeRepo(repo)">
<i class="far fa-trash-alt"></i> Remove
</button>
</td>
</tr>
<tr>
@ -68,7 +72,7 @@
[(ngModel)]="newRepoKey"
placeholder="matrix-org/synapse"
name="newRepoKey"
title="New repository name" />
title="New repository name"/>
<span class="input-group-btn">
<button type="button" class="btn btn-outline-success"
[disabled]="isUpdating"

View File

@ -57,9 +57,9 @@ export class TravisCiComplexBotConfigComponent extends ComplexBotComponent<Travi
this.newConfig.repos[this.newRepoKey] = {
addedByUserId: SessionStorage.userId,
template: "" +
"%{repository_slug}#%{build_number} (%{branch} - %{commit} : %{author}): %{message}\n" +
" Change view : %{compare_url}\n" +
" Build details : %{build_url}\n"
"%{repository_slug}#%{build_number} (%{branch} - %{commit} : %{author}): %{message}\n" +
" Change view : %{compare_url}\n" +
" Build details : %{build_url}\n"
};
this.newRepoKey = "";
}

View File

@ -36,7 +36,8 @@
<span class="name">{{ pack.displayName }}</span>
<span class="description">{{ pack.description }}</span>
<span class="author" *ngIf="pack.author.type !== 'none'">Created by <a [href]="pack.author.reference">{{ pack.author.name }}</a> under </span>
<span class="author" *ngIf="pack.author.type !== 'none'">Created by <a
[href]="pack.author.reference">{{ pack.author.name }}</a> under </span>
<span class="license"><a [href]="pack.license.urlPath">{{ pack.license.name }}</a></span>
</div>
</div>

View File

@ -8,7 +8,8 @@
</h5>
<div class="my-ibox-content">
<form (submit)="widgetComponent.addWidget()" novalidate name="addForm">
<ng-container *ngTemplateOutlet="widgetParamsTemplate;context:{widget:widgetComponent.newWidget}"></ng-container>
<ng-container
*ngTemplateOutlet="widgetParamsTemplate;context:{widget:widgetComponent.newWidget}"></ng-container>
<div style="margin-top: 25px">
<button type="submit" class="btn btn-sm btn-success" [disabled]="widgetComponent.isUpdating">
@ -19,7 +20,8 @@
</div>
</my-ibox>
<my-ibox *ngFor="let widget of widgetComponent.widgets trackById" [isCollapsible]="true" [defaultCollapsed]="widget.id !== widgetComponent.defaultExpandedWidgetId">
<my-ibox *ngFor="let widget of widgetComponent.widgets trackById" [isCollapsible]="true"
[defaultCollapsed]="widget.id !== widgetComponent.defaultExpandedWidgetId">
<h5 class="my-ibox-title">
<i class="fa fa-pencil-alt"></i> {{ widget.name || widget.url || widgetComponent.defaultName }}
<span *ngIf="widget.data.title">- {{ widget.data.title }}</span>
@ -32,7 +34,8 @@
<button type="submit" class="btn btn-sm btn-primary" [disabled]="widgetComponent.isUpdating">
<i class="far fa-save"></i> Save Widget
</button>
<button type="button" class="btn btn-sm btn-outline-danger" [disabled]="widgetComponent.isUpdating" (click)="widgetComponent.removeWidget(widget)">
<button type="button" class="btn btn-sm btn-outline-danger" [disabled]="widgetComponent.isUpdating"
(click)="widgetComponent.removeWidget(widget)">
<i class="far fa-trash-alt"></i> Remove Widget
</button>
</div>

View File

@ -11,7 +11,7 @@ export class GoogleCalendarWidgetConfigComponent extends WidgetComponent {
super(WIDGET_GOOGLE_CALENDAR, "Google Calendar", DISABLE_AUTOMATIC_WRAPPING, "googleCalendar");
}
protected OnNewWidgetPrepared(widget: EditableWidget) {
protected OnNewWidgetPrepared(widget: EditableWidget) {
widget.dimension.newData.shareId = "";
}

View File

@ -2,7 +2,8 @@
<ng-template #widgetParamsTemplate let-widget="widget">
<label class="label-block">
Trading Pair
<select class="form-control form-control-sm" [(ngModel)]="widget.dimension.newData.pair" [disabled]="isUpdating" name="widget-pair-{{widget.id}}">
<select class="form-control form-control-sm" [(ngModel)]="widget.dimension.newData.pair"
[disabled]="isUpdating" name="widget-pair-{{widget.id}}">
<option *ngFor="let pair of pairs" [ngValue]="pair.value">
{{ pair.label }}
</option>
@ -11,7 +12,8 @@
<label class="label-block">
Interval
<select class="form-control form-control-sm" [(ngModel)]="widget.dimension.newData.interval" [disabled]="isUpdating" name="widget-interval-{{widget.id}}">
<select class="form-control form-control-sm" [(ngModel)]="widget.dimension.newData.interval"
[disabled]="isUpdating" name="widget-interval-{{widget.id}}">
<option *ngFor="let interval of intervals" [ngValue]="interval.value">
{{ interval.label }}
</option>

View File

@ -37,7 +37,8 @@
<div *ngFor="let category of getCategories()">
<my-ibox *ngIf="getIntegrationsIn(category).length > 0" boxTitle="{{category}}" [isCollapsible]="true">
<div class="my-ibox-content">
<my-integration-bag [integrations]="getIntegrationsIn(category)" (integrationClicked)="modifyIntegration($event)"></my-integration-bag>
<my-integration-bag [integrations]="getIntegrationsIn(category)"
(integrationClicked)="modifyIntegration($event)"></my-integration-bag>
</div>
</my-ibox>
</div>

View File

@ -5,7 +5,9 @@ import {
WIDGET_GOOGLE_CALENDAR,
WIDGET_GOOGLE_DOCS,
WIDGET_GRAFANA,
WIDGET_JITSI, WIDGET_SPOTIFY, WIDGET_STICKER_PICKER,
WIDGET_JITSI,
WIDGET_SPOTIFY,
WIDGET_STICKER_PICKER,
WIDGET_TRADINGVIEW,
WIDGET_TWITCH,
WIDGET_YOUTUBE

View File

@ -5,7 +5,8 @@ import {
JoinRuleStateResponse,
MembershipStateResponse,
RoomEncryptionStatusResponse,
ScalarSuccessResponse, ScalarWidget,
ScalarSuccessResponse,
ScalarWidget,
SetPowerLevelResponse,
WidgetsResponse
} from "../../models/server-client-responses";
@ -73,7 +74,7 @@ export class ScalarClientApiService {
});
}
public deleteWidget(roomId: string, widget: EditableWidget|ScalarWidget): Promise<ScalarSuccessResponse> {
public deleteWidget(roomId: string, widget: EditableWidget | ScalarWidget): Promise<ScalarSuccessResponse> {
const anyWidget: any = widget;
return this.callAction("set_widget", {
room_id: roomId,
@ -83,7 +84,7 @@ export class ScalarClientApiService {
});
}
public deleteUserWidget(widget: EditableWidget|ScalarWidget): Promise<ScalarSuccessResponse> {
public deleteUserWidget(widget: EditableWidget | ScalarWidget): Promise<ScalarSuccessResponse> {
const anyWidget: any = widget;
return this.callAction("set_widget", {
userWidget: true,

View File

@ -9,7 +9,7 @@
</div>
</div>
<div class="no-stickers" *ngIf="!isLoading && !authError && (!packs || packs.length === 0)">
<img src="/img/no_stickers.png" />
<img src="/img/no_stickers.png"/>
<span class="message">You have no sticker packs.</span>
<button class="btn btn-link btn-sm" (click)="openIntegrationManager()">Add some stickers</button>
</div>
@ -17,16 +17,18 @@
<div class="sticker-pack" *ngFor="let pack of packs trackById">
<div class="header">
<span class="title">{{ pack.displayName }}</span>
<span class="license"><a [href]="pack.license.urlPath" target="_blank">{{ pack.license.name }}</a></span>
<span class="license"><a [href]="pack.license.urlPath"
target="_blank">{{ pack.license.name }}</a></span>
<span class="author" *ngIf="pack.author.type !== 'none'">
<a [href]="pack.author.reference" target="_blank">{{ pack.author.name }}</a>
</span>
</div>
<div class="stickers">
<div class="sticker" *ngFor="let sticker of pack.stickers trackById" (click)="sendSticker(sticker, pack)">
<div class="sticker" *ngFor="let sticker of pack.stickers trackById"
(click)="sendSticker(sticker, pack)">
<img [src]="getThumbnailUrl(sticker.thumbnail.mxc, 48, 48)" width="48" height="48" class="image"
[alt]="sticker.name" [ngbTooltip]="sticker.name" placement="bottom" />
[alt]="sticker.name" [ngbTooltip]="sticker.name" placement="bottom"/>
</div>
</div>
</div>

View File

@ -1,5 +1,6 @@
import "reflect-metadata";
import "ts-helpers";
require("zone.js/dist/zone");
//noinspection TypeScriptUnresolvedVariable

View File

@ -1,15 +1,15 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="513.000000pt" height="513.000000pt" viewBox="0 0 513.000000 513.000000"
preserveAspectRatio="xMidYMid meet">
<metadata>
Created by potrace 1.11, written by Peter Selinger 2001-2013
</metadata>
<g transform="translate(0.000000,513.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M0 2565 l0 -2565 2565 0 2565 0 0 2565 0 2565 -2565 0 -2565 0 0
width="513.000000pt" height="513.000000pt" viewBox="0 0 513.000000 513.000000"
preserveAspectRatio="xMidYMid meet">
<metadata>
Created by potrace 1.11, written by Peter Selinger 2001-2013
</metadata>
<g transform="translate(0.000000,513.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M0 2565 l0 -2565 2565 0 2565 0 0 2565 0 2565 -2565 0 -2565 0 0
-2565z"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 603 B

After

Width:  |  Height:  |  Size: 657 B

View File

@ -1,7 +1,6 @@
// The CSS for the Riot breadcrumb is specified here to ensure that it's style can be overridden.
// In it's current position (as a component), the component-level stylesheet cannot access the
// elements, so we specify it in a more generic location.
@import "themes/themes";
.main-app {

View File

@ -14,7 +14,7 @@ body {
font-family: 'Roboto', 'Open Sans', Arial, sans-serif;
}
@include themifyRoot(){
@include themifyRoot() {
color: themed(defaultFgColor);
// HACK: We specify the spinner color here because we can't use the mixin

View File

@ -64,7 +64,7 @@ $theme_dark: (
integrationDescriptionColor: #bcc0c1,
promoSpacerColor: rgba(206, 222, 235, 0.85),
promoShadowColor: rgba(206, 222, 235, 0.34),
promoShadowColor: rgba(206, 222, 235, 0.34),
promoInfoBgColor: #fff,
promoInfoBorderColor: rgba(143, 45, 86, 0.2),
promoPreBorderColor: rgba(143, 45, 86, 0.7),

View File

@ -64,7 +64,7 @@ $theme_light: (
integrationDescriptionColor: #999,
promoSpacerColor: rgba(206, 222, 235, 0.85),
promoShadowColor: rgba(206, 222, 235, 0.34),
promoShadowColor: rgba(206, 222, 235, 0.34),
promoInfoBgColor: #fff,
promoInfoBorderColor: rgba(143, 45, 86, 0.2),
promoPreBorderColor: rgba(143, 45, 86, 0.7),