Free icons
This commit is contained in:
parent
87da5a28c2
commit
1db393a424
BIN
jirs-client/dev/fonts/icofont.eot
Normal file
BIN
jirs-client/dev/fonts/icofont.eot
Normal file
Binary file not shown.
4201
jirs-client/dev/fonts/icofont.svg
Normal file
4201
jirs-client/dev/fonts/icofont.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 2.3 MiB |
BIN
jirs-client/dev/fonts/icofont.ttf
Normal file
BIN
jirs-client/dev/fonts/icofont.ttf
Normal file
Binary file not shown.
BIN
jirs-client/dev/fonts/icofont.woff
Normal file
BIN
jirs-client/dev/fonts/icofont.woff
Normal file
Binary file not shown.
BIN
jirs-client/dev/fonts/icofont.woff2
Normal file
BIN
jirs-client/dev/fonts/icofont.woff2
Normal file
Binary file not shown.
@ -52,6 +52,8 @@ aside#navbar-left .item:hover {
|
|||||||
aside#navbar-left .item > .styledIcon {
|
aside#navbar-left .item > .styledIcon {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 18px;
|
left: 18px;
|
||||||
|
height: 42px;
|
||||||
|
line-height: 42px;
|
||||||
}
|
}
|
||||||
|
|
||||||
aside#navbar-left > .item > .styledIcon.search {
|
aside#navbar-left > .item > .styledIcon.search {
|
||||||
@ -79,6 +81,7 @@ aside#navbar-left .item > .itemText {
|
|||||||
font-family: var(--font-bold);
|
font-family: var(--font-bold);
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
transition-property: right, visibility, opacity;
|
transition-property: right, visibility, opacity;
|
||||||
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
aside#navbar-left > .bottom {
|
aside#navbar-left > .bottom {
|
||||||
|
8618
jirs-client/js/css/iconfonts.css
Normal file
8618
jirs-client/js/css/iconfonts.css
Normal file
File diff suppressed because it is too large
Load Diff
@ -25,20 +25,23 @@ i.styledIcon:before {
|
|||||||
-moz-osx-font-smoothing: grayscale;
|
-moz-osx-font-smoothing: grayscale;
|
||||||
}
|
}
|
||||||
|
|
||||||
i.styledIcon.bug:before {
|
|
||||||
content: "\e90f";
|
|
||||||
}
|
|
||||||
|
|
||||||
i.styledIcon.stopwatch:before {
|
i.styledIcon.stopwatch:before {
|
||||||
content: "\e914";
|
content: "\e914";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
i.styledIcon.bug:before {
|
||||||
|
font-family: 'IcoFont';
|
||||||
|
content: "\eec7";
|
||||||
|
}
|
||||||
|
|
||||||
i.styledIcon.task:before {
|
i.styledIcon.task:before {
|
||||||
content: "\e910";
|
font-family: 'IcoFont';
|
||||||
|
content: "\ef27";
|
||||||
}
|
}
|
||||||
|
|
||||||
i.styledIcon.story:before {
|
i.styledIcon.story:before {
|
||||||
content: "\e911";
|
font-family: 'IcoFont';
|
||||||
|
content: "\ef2d";
|
||||||
}
|
}
|
||||||
|
|
||||||
i.styledIcon.arrowDown:before {
|
i.styledIcon.arrowDown:before {
|
||||||
@ -70,7 +73,8 @@ i.styledIcon.chevronUp:before {
|
|||||||
}
|
}
|
||||||
|
|
||||||
i.styledIcon.board:before {
|
i.styledIcon.board:before {
|
||||||
content: "\e904";
|
font-family: 'IcoFont';
|
||||||
|
content: "\ead0";
|
||||||
}
|
}
|
||||||
|
|
||||||
i.styledIcon.help:before {
|
i.styledIcon.help:before {
|
||||||
@ -94,11 +98,13 @@ i.styledIcon.attach:before {
|
|||||||
}
|
}
|
||||||
|
|
||||||
i.styledIcon.plus:before {
|
i.styledIcon.plus:before {
|
||||||
content: "\e906";
|
font-family: 'IcoFont';
|
||||||
|
content: "\efc2";
|
||||||
}
|
}
|
||||||
|
|
||||||
i.styledIcon.search:before {
|
i.styledIcon.search:before {
|
||||||
content: "\e907";
|
font-family: 'IcoFont';
|
||||||
|
content: "\ec82";
|
||||||
}
|
}
|
||||||
|
|
||||||
i.styledIcon.issues:before {
|
i.styledIcon.issues:before {
|
||||||
@ -106,7 +112,8 @@ i.styledIcon.issues:before {
|
|||||||
}
|
}
|
||||||
|
|
||||||
i.styledIcon.settings:before {
|
i.styledIcon.settings:before {
|
||||||
content: "\e909";
|
font-family: 'IcoFont';
|
||||||
|
content: "\efe2";
|
||||||
}
|
}
|
||||||
|
|
||||||
i.styledIcon.close:before {
|
i.styledIcon.close:before {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
@import "./css/normalize.css";
|
@import "./css/normalize.css";
|
||||||
@import "./css/fonts.css";
|
@import "./css/fonts.css";
|
||||||
|
@import "./css/iconfonts.css";
|
||||||
@import "./css/variables.css";
|
@import "./css/variables.css";
|
||||||
@import "./css/global.css";
|
@import "./css/global.css";
|
||||||
@import "./css/sidebar.css";
|
@import "./css/sidebar.css";
|
||||||
|
@ -2,19 +2,19 @@ use std::collections::HashMap;
|
|||||||
|
|
||||||
use actix::*;
|
use actix::*;
|
||||||
use actix_web::web::Data;
|
use actix_web::web::Data;
|
||||||
|
use futures::executor::block_on;
|
||||||
|
|
||||||
use jirs_data::{IssueFieldId, PayloadVariant, WsMsg};
|
use jirs_data::{IssueFieldId, PayloadVariant, WsMsg};
|
||||||
|
|
||||||
use crate::db::issue_assignees::LoadAssignees;
|
use crate::db::issue_assignees::LoadAssignees;
|
||||||
use crate::db::issues::{LoadProjectIssues, UpdateIssue};
|
use crate::db::issues::{LoadProjectIssues, UpdateIssue};
|
||||||
use crate::db::DbExecutor;
|
use crate::db::DbExecutor;
|
||||||
use crate::ws::{current_user, WsResult};
|
use crate::ws::{current_user, WebSocketActor, WsResult};
|
||||||
|
|
||||||
/*
|
|
||||||
pub struct UpdateIssueHandler {
|
pub struct UpdateIssueHandler {
|
||||||
id: i32,
|
pub id: i32,
|
||||||
field_id: IssueFieldId,
|
pub field_id: IssueFieldId,
|
||||||
payload: PayloadVariant,
|
pub payload: PayloadVariant,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Message for UpdateIssueHandler {
|
impl Message for UpdateIssueHandler {
|
||||||
@ -28,7 +28,7 @@ impl Actor for UpdateIssueHandler {
|
|||||||
impl Handler<UpdateIssueHandler> for WebSocketActor {
|
impl Handler<UpdateIssueHandler> for WebSocketActor {
|
||||||
type Result = WsResult;
|
type Result = WsResult;
|
||||||
|
|
||||||
fn handle(&mut self, msg: UpdateIssueHandler, ctx: &mut Self::Context) -> Self::Result {
|
fn handle(&mut self, msg: UpdateIssueHandler, _ctx: &mut Self::Context) -> Self::Result {
|
||||||
self.require_user()?;
|
self.require_user()?;
|
||||||
|
|
||||||
let UpdateIssueHandler {
|
let UpdateIssueHandler {
|
||||||
@ -76,34 +76,17 @@ impl Handler<UpdateIssueHandler> for WebSocketActor {
|
|||||||
_ => (),
|
_ => (),
|
||||||
};
|
};
|
||||||
|
|
||||||
let mut updated: Option<jirs_data::Issue> = None;
|
let mut issue: jirs_data::Issue = match block_on(self.db.send(msg)) {
|
||||||
|
Ok(Ok(issue)) => issue.into(),
|
||||||
self.db
|
|
||||||
.send(msg)
|
|
||||||
.into_actor(self)
|
|
||||||
.then(move |res, _act, _ctx| {
|
|
||||||
updated = res.ok().and_then(|r| r.ok()).map(|i| i.into());
|
|
||||||
fut::ready(())
|
|
||||||
})
|
|
||||||
.wait(ctx);
|
|
||||||
|
|
||||||
let mut issue = match updated {
|
|
||||||
Some(issue) => issue,
|
|
||||||
_ => return Ok(None),
|
_ => return Ok(None),
|
||||||
};
|
};
|
||||||
|
|
||||||
let mut assignees = vec![];
|
use crate::models::IssueAssignee;
|
||||||
|
let assignees: Vec<IssueAssignee> =
|
||||||
self.db
|
match block_on(self.db.send(LoadAssignees { issue_id: issue.id })) {
|
||||||
.send(LoadAssignees { issue_id: issue.id })
|
Ok(Ok(v)) => v,
|
||||||
.into_actor(self)
|
_ => return Ok(None),
|
||||||
.then(|res, _act, _ctx| {
|
};
|
||||||
if let Ok(Ok(v)) = res {
|
|
||||||
assignees = v;
|
|
||||||
}
|
|
||||||
fut::ready(())
|
|
||||||
})
|
|
||||||
.wait(ctx);
|
|
||||||
|
|
||||||
for assignee in assignees {
|
for assignee in assignees {
|
||||||
issue.user_ids.push(assignee.user_id);
|
issue.user_ids.push(assignee.user_id);
|
||||||
@ -112,7 +95,6 @@ impl Handler<UpdateIssueHandler> for WebSocketActor {
|
|||||||
Ok(Some(WsMsg::IssueUpdated(issue)))
|
Ok(Some(WsMsg::IssueUpdated(issue)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
pub async fn update_issue(
|
pub async fn update_issue(
|
||||||
db: &Data<Addr<DbExecutor>>,
|
db: &Data<Addr<DbExecutor>>,
|
||||||
|
@ -229,9 +229,9 @@ impl WebSocketActor {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
// fn require_user(&self) -> Result<&jirs_data::User, WsMsg> {
|
fn require_user(&self) -> Result<&jirs_data::User, WsMsg> {
|
||||||
// current_user(&self.current_user)
|
current_user(&self.current_user)
|
||||||
// }
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl StreamHandler<Result<ws::Message, ws::ProtocolError>> for WebSocketActor {
|
impl StreamHandler<Result<ws::Message, ws::ProtocolError>> for WebSocketActor {
|
||||||
|
Loading…
Reference in New Issue
Block a user