Compare commits

...

10 changed files with 55 additions and 9 deletions
Split View
  1. +0
    -2
      docker/prod/deploy.sh
  2. +2
    -0
      docs/src/contributing_websocket_http_api.md
  3. +4
    -0
      server/src/api/site.rs
  4. +1
    -0
      ui/src/components/admin-settings.tsx
  5. +41
    -4
      ui/src/components/footer.tsx
  6. +1
    -0
      ui/src/components/main.tsx
  7. +4
    -2
      ui/src/components/navbar.tsx
  8. +1
    -0
      ui/src/components/post.tsx
  9. +1
    -0
      ui/src/interfaces.ts
  10. +0
    -1
      ui/src/version.ts

+ 0
- 2
docker/prod/deploy.sh View File

@ -12,8 +12,6 @@ third_semver=$(echo $new_tag | cut -d "." -f 3)
# Setting the version on the front end
cd ../../
echo "export const version: string = '$new_tag';" > "ui/src/version.ts"
git add "ui/src/version.ts"
# Setting the version on the backend
echo "pub const VERSION: &str = \"$new_tag\";" > "server/src/version.rs"
git add "server/src/version.rs"


+ 2
- 0
docs/src/contributing_websocket_http_api.md View File

@ -754,6 +754,8 @@ Search types are `All, Comments, Posts, Communities, Users, Url`
site: Option<SiteView>,
admins: Vec<UserView>,
banned: Vec<UserView>,
online: usize, // This is currently broken
version: String,
}
}
```


+ 4
- 0
server/src/api/site.rs View File

@ -3,6 +3,7 @@ use crate::{
api::{claims::Claims, APIError, Oper, Perform},
apub::fetcher::search_by_apub_id,
blocking,
version,
websocket::{server::SendAllMessage, UserOperation, WebsocketInfo},
DbPool,
LemmyError,
@ -110,6 +111,7 @@ pub struct GetSiteResponse {
admins: Vec<UserView>,
banned: Vec<UserView>,
pub online: usize,
version: String,
}
#[derive(Serialize, Deserialize)]
@ -424,6 +426,7 @@ impl Perform for Oper<GetSite> {
admins,
banned,
online,
version: version::VERSION.to_string(),
})
}
}
@ -666,6 +669,7 @@ impl Perform for Oper<TransferSite> {
admins,
banned,
online: 0,
version: version::VERSION.to_string(),
})
}
}


+ 1
- 0
ui/src/components/admin-settings.tsx View File

@ -46,6 +46,7 @@ export class AdminSettings extends Component<any, AdminSettingsState> {
admins: [],
banned: [],
online: null,
version: null,
},
siteConfigForm: {
config_hjson: null,


+ 41
- 4
ui/src/components/footer.tsx View File

@ -1,12 +1,41 @@
import { Component } from 'inferno';
import { Link } from 'inferno-router';
import { repoUrl } from '../utils';
import { version } from '../version';
import { i18n } from '../i18next';
import { Subscription } from 'rxjs';
import { retryWhen, delay, take } from 'rxjs/operators';
import { WebSocketService } from '../services';
import { repoUrl, wsJsonToRes } from '../utils';
import {
UserOperation,
WebSocketJsonResponse,
GetSiteResponse,
} from '../interfaces';
export class Footer extends Component<any, any> {
interface FooterState {
version: string;
}
export class Footer extends Component<any, FooterState> {
private wsSub: Subscription;
emptyState: FooterState = {
version: null,
};
constructor(props: any, context: any) {
super(props, context);
this.state = this.emptyState;
this.wsSub = WebSocketService.Instance.subject
.pipe(retryWhen(errors => errors.pipe(delay(3000), take(10))))
.subscribe(
msg => this.parseMessage(msg),
err => console.error(err),
() => console.log('complete')
);
}
componentWillUnmount() {
this.wsSub.unsubscribe();
}
render() {
@ -15,7 +44,7 @@ export class Footer extends Component<any, any> {
<div className="navbar-collapse">
<ul class="navbar-nav ml-auto">
<li class="nav-item">
<span class="navbar-text">{version}</span>
<span class="navbar-text">{this.state.version}</span>
</li>
<li class="nav-item">
<Link class="nav-link" to="/modlog">
@ -42,4 +71,12 @@ export class Footer extends Component<any, any> {
</nav>
);
}
parseMessage(msg: WebSocketJsonResponse) {
let res = wsJsonToRes(msg);
if (res.op == UserOperation.GetSite) {
let data = res.data as GetSiteResponse;
this.setState({ version: data.version });
}
}
}

+ 1
- 0
ui/src/components/main.tsx View File

@ -107,6 +107,7 @@ export class Main extends Component<any, MainState> {
admins: [],
banned: [],
online: null,
version: null,
},
showEditSite: false,
loading: true,


+ 4
- 2
ui/src/components/navbar.tsx View File

@ -30,7 +30,6 @@ import {
messageToastify,
md,
} from '../utils';
import { version } from '../version';
import { i18n } from '../i18next';
interface NavbarState {
@ -41,6 +40,7 @@ interface NavbarState {
messages: Array<PrivateMessage>;
unreadCount: number;
siteName: string;
version: string;
admins: Array<UserView>;
searchParam: string;
toggleSearch: boolean;
@ -58,6 +58,7 @@ export class Navbar extends Component<any, NavbarState> {
messages: [],
expanded: false,
siteName: undefined,
version: undefined,
admins: [],
searchParam: '',
toggleSearch: false,
@ -150,7 +151,7 @@ export class Navbar extends Component<any, NavbarState> {
navbar() {
return (
<nav class="container-fluid navbar navbar-expand-md navbar-light shadow p-0 px-3">
<Link title={version} class="navbar-brand" to="/">
<Link title={this.state.version} class="navbar-brand" to="/">
{this.state.siteName}
</Link>
{this.state.isLoggedIn && (
@ -395,6 +396,7 @@ export class Navbar extends Component<any, NavbarState> {
if (data.site && !this.state.siteName) {
this.state.siteName = data.site.name;
this.state.version = data.version;
this.state.admins = data.admins;
this.setState(this.state);
}


+ 1
- 0
ui/src/components/post.tsx View File

@ -92,6 +92,7 @@ export class Post extends Component<any, PostState> {
enable_nsfw: undefined,
},
online: null,
version: null,
},
};


+ 1
- 0
ui/src/interfaces.ts View File

@ -758,6 +758,7 @@ export interface GetSiteResponse {
admins: Array<UserView>;
banned: Array<UserView>;
online: number;
version: string;
}
export interface SiteResponse {


+ 0
- 1
ui/src/version.ts View File

@ -1 +0,0 @@
export const version: string = 'v0.7.25';

Loading…
Cancel
Save