Skip to content

Commit c74827d

Browse files
committed
Add /releases/queue to show build queue
1 parent 23c68b1 commit c74827d

File tree

5 files changed

+49
-0
lines changed

5 files changed

+49
-0
lines changed

src/web/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ impl CratesfyiHandler {
110110
router.get("/releases/:author/:page", releases::author_handler);
111111
router.get("/releases/activity", releases::activity_handler);
112112
router.get("/releases/search", releases::search_handler);
113+
router.get("/releases/queue", releases::build_queue_handler);
113114
router.get("/crate/:name", crate_details::crate_details_handler);
114115
router.get("/crate/:name/", crate_details::crate_details_handler);
115116
router.get("/crate/:name/:version", crate_details::crate_details_handler);

src/web/releases.rs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -500,3 +500,20 @@ pub fn activity_handler(req: &mut Request) -> IronResult<Response> {
500500
.set_true("javascript_highchartjs")
501501
.to_resp("releases_activity")
502502
}
503+
504+
505+
pub fn build_queue_handler(req: &mut Request) -> IronResult<Response> {
506+
let conn = extension!(req, Pool);
507+
let mut crates: Vec<(String, String)> = Vec::new();
508+
for krate in &conn.query("SELECT name, version FROM queue ORDER BY id ASC", &[]).unwrap() {
509+
crates.push((krate.get(0), krate.get(1)));
510+
}
511+
let is_empty = crates.is_empty();
512+
Page::new(crates)
513+
.title("Build queue")
514+
.set("description", "List of crates scheduled to build")
515+
.set_bool("queue_empty", is_empty)
516+
.set_true("show_releases_navigation")
517+
.set_true("releases_queue_tab")
518+
.to_resp("releases_queue")
519+
}

templates/navigation.hbs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
<li class="pure-menu-item"><a href="/releases" class="pure-menu-link{{#if varsb.releases_navigation_recent_tab}} pure-menu-active{{/if}}"><i class="fa fa-fw fa-leaf"></i><span class="title"> Recent</span></a></li>
6969
<li class="pure-menu-item"><a href="/releases/stars" class="pure-menu-link{{#if varsb.releases_navigation_stars_tab}} pure-menu-active{{/if}}"><i class="fa fa-fw fa-star"></i><span class="title"> Stars</span></a></li>
7070
<li class="pure-menu-item"><a href="/releases/activity" class="pure-menu-link{{#if varsb.releases_navigation_activity_tab}} pure-menu-active{{/if}}"><i class="fa fa-fw fa-line-chart"></i><span class="title"> Activity</span></a></li>
71+
<li class="pure-menu-item"><a href="/releases/queue" class="pure-menu-link{{#if varsb.releases_queue_tab}} pure-menu-active{{/if}}"><i class="fa fa-fw fa-list-ol"></i><span class="title"> Queue</span></a></li>
7172
{{#if varss.author}}
7273
<li class="pure-menu-item"><a href="#" class="pure-menu-link pure-menu-active"><i class="fa fa-fw fa-user"></i><span class="title"> {{varss.author}}</span></a></li>
7374
{{/if}}

templates/releases_queue.hbs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{{> header}}
2+
3+
<div class="container">
4+
<div class="recent-releases-container">
5+
6+
<div class="release">
7+
{{#if varsb.queue_empty}}
8+
<strong>There is nothing in queue</strong>
9+
{{else}}
10+
<strong>Queue</strong>
11+
{{/if}}
12+
</div>
13+
14+
<ol class="queue-list">
15+
{{#each content}}
16+
<li><a href="https://crates.io/crates/{{this.[0]}}">{{this.[0]}}-{{this.[1]}}</a></li>
17+
{{/each}}
18+
</ol>
19+
</div>
20+
</div>
21+
22+
{{> footer}}

templates/style.scss

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,14 @@ div.recent-releases-container {
184184
padding: 0;
185185
}
186186

187+
ol.queue-list li {
188+
list-style-type: decimal;
189+
margin-left: 20px;
190+
a {
191+
color: $color-url;
192+
}
193+
}
194+
187195
strong {
188196
font-weight: 500;
189197
}

0 commit comments

Comments
 (0)