Free icons

This commit is contained in:
Adrian Woźniak 2020-04-19 22:31:01 +02:00
parent 87da5a28c2
commit 1db393a424
11 changed files with 12857 additions and 45 deletions

Binary file not shown.

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -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 {

File diff suppressed because it is too large Load Diff

View File

@ -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 {

View File

@ -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";

View File

@ -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>>,

View File

@ -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 {