mirror of
https://github.com/LemmyNet/lemmy.git
synced 2024-12-23 03:11:32 +00:00
* Adding version to GetSite. Fixes #1001 * Removing version.ts file
This commit is contained in:
parent
f93f2fe03c
commit
55ce7b1339
10 changed files with 55 additions and 9 deletions
2
docker/prod/deploy.sh
vendored
2
docker/prod/deploy.sh
vendored
|
@ -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
docs/src/contributing_websocket_http_api.md
vendored
2
docs/src/contributing_websocket_http_api.md
vendored
|
@ -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,
|
||||
}
|
||||
}
|
||||
```
|
||||
|
|
|
@ -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
ui/src/components/admin-settings.tsx
vendored
1
ui/src/components/admin-settings.tsx
vendored
|
@ -46,6 +46,7 @@ export class AdminSettings extends Component<any, AdminSettingsState> {
|
|||
admins: [],
|
||||
banned: [],
|
||||
online: null,
|
||||
version: null,
|
||||
},
|
||||
siteConfigForm: {
|
||||
config_hjson: null,
|
||||
|
|
45
ui/src/components/footer.tsx
vendored
45
ui/src/components/footer.tsx
vendored
|
@ -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
ui/src/components/main.tsx
vendored
1
ui/src/components/main.tsx
vendored
|
@ -107,6 +107,7 @@ export class Main extends Component<any, MainState> {
|
|||
admins: [],
|
||||
banned: [],
|
||||
online: null,
|
||||
version: null,
|
||||
},
|
||||
showEditSite: false,
|
||||
loading: true,
|
||||
|
|
6
ui/src/components/navbar.tsx
vendored
6
ui/src/components/navbar.tsx
vendored
|
@ -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
ui/src/components/post.tsx
vendored
1
ui/src/components/post.tsx
vendored
|
@ -92,6 +92,7 @@ export class Post extends Component<any, PostState> {
|
|||
enable_nsfw: undefined,
|
||||
},
|
||||
online: null,
|
||||
version: null,
|
||||
},
|
||||
};
|
||||
|
||||
|
|
1
ui/src/interfaces.ts
vendored
1
ui/src/interfaces.ts
vendored
|
@ -758,6 +758,7 @@ export interface GetSiteResponse {
|
|||
admins: Array<UserView>;
|
||||
banned: Array<UserView>;
|
||||
online: number;
|
||||
version: string;
|
||||
}
|
||||
|
||||
export interface SiteResponse {
|
||||
|
|
1
ui/src/version.ts
vendored
1
ui/src/version.ts
vendored
|
@ -1 +0,0 @@
|
|||
export const version: string = 'v0.7.25';
|
Loading…
Reference in a new issue