Display in which revision this revision is an input
This commit is contained in:
parent
aa2ac96288
commit
185e0964b7
@ -136,5 +136,6 @@ async fn route_revision(
|
|||||||
Ok(render_template(&RevisionTemplate {
|
Ok(render_template(&RevisionTemplate {
|
||||||
revision_uri: revision_uri.clone(),
|
revision_uri: revision_uri.clone(),
|
||||||
inputs: state.storage.inputs_for_revision(&revision_uri).await?,
|
inputs: state.storage.inputs_for_revision(&revision_uri).await?,
|
||||||
|
input_of: state.storage.input_of_for_revision(&revision_uri).await?,
|
||||||
})?)
|
})?)
|
||||||
}
|
}
|
||||||
|
@ -86,6 +86,25 @@ impl Storage {
|
|||||||
.await
|
.await
|
||||||
.context("Failed to fetch data from database")
|
.context("Failed to fetch data from database")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub async fn input_of_for_revision(&self, revision_uri: &str) -> Result<Vec<InputModel>> {
|
||||||
|
sqlx::query_as("
|
||||||
|
SELECT
|
||||||
|
flake_revision_uri,
|
||||||
|
input_name,
|
||||||
|
revision_uri,
|
||||||
|
uri,
|
||||||
|
nar_hash,
|
||||||
|
last_modified
|
||||||
|
FROM flake_revisions_inputs
|
||||||
|
WHERE revision_uri = ?
|
||||||
|
ORDER BY input_name
|
||||||
|
")
|
||||||
|
.bind(&revision_uri)
|
||||||
|
.fetch_all(&self.db)
|
||||||
|
.await
|
||||||
|
.context("Failed to fetch data from database")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(FromRow)]
|
#[derive(FromRow)]
|
||||||
@ -132,6 +151,10 @@ pub struct InputModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl InputModel {
|
impl InputModel {
|
||||||
|
pub fn flake_revision_link(&self) -> String {
|
||||||
|
format!("/r/{}", urlencode(&self.flake_revision_uri))
|
||||||
|
}
|
||||||
|
|
||||||
pub fn revision_link(&self) -> String {
|
pub fn revision_link(&self) -> String {
|
||||||
match &self.revision_uri {
|
match &self.revision_uri {
|
||||||
Some(revision_uri) => format!("/r/{}", urlencode(&revision_uri)),
|
Some(revision_uri) => format!("/r/{}", urlencode(&revision_uri)),
|
||||||
|
@ -32,4 +32,5 @@ pub struct FlakeTemplate {
|
|||||||
pub struct RevisionTemplate {
|
pub struct RevisionTemplate {
|
||||||
pub revision_uri: String,
|
pub revision_uri: String,
|
||||||
pub inputs: Vec<InputModel>,
|
pub inputs: Vec<InputModel>,
|
||||||
|
pub input_of: Vec<InputModel>,
|
||||||
}
|
}
|
||||||
|
@ -29,5 +29,13 @@
|
|||||||
</li>
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
<h2>Input of</h2>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
{% for input in input_of %}
|
||||||
|
<li><a href="{{ input.flake_revision_link() }}">{{ input.flake_revision_uri }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user