Rename and begin implementing views
I get an error whenever CSS is loaded, not sure what to do about that yet. Doesn't seem to impact anything, but I should probably be using a different way of getting the id from an entity. Also need to think about deleting the functions I don't need.
This commit is contained in:
parent
d1d5c08f9a
commit
a55f4e7bc0
33 changed files with 192 additions and 28 deletions
|
|
@ -1,12 +1,31 @@
|
|||
const std = @import("std");
|
||||
const jetzig = @import("jetzig");
|
||||
const jetquery = @import("jetzig").jetquery;
|
||||
|
||||
pub fn index(request: *jetzig.Request) !jetzig.View {
|
||||
var root = try request.data(.object);
|
||||
var albums_view = try root.put("albums", .array);
|
||||
const query = jetzig.database.Query(.Album).select(.{}).orderBy(.{ .name = .asc });
|
||||
const albums = try request.repo.all(query);
|
||||
for (albums) |album| {
|
||||
var album_view = try albums_view.append(.object);
|
||||
try album_view.put("name", album.name);
|
||||
try album_view.put("url", album.id);
|
||||
}
|
||||
return request.render(.ok);
|
||||
}
|
||||
|
||||
pub fn get(id: []const u8, request: *jetzig.Request) !jetzig.View {
|
||||
_ = id;
|
||||
var root = try request.data(.object);
|
||||
try root.put("album_id", id);
|
||||
var songs_view = try root.put("songs", .array);
|
||||
const query = jetzig.database.Query(.Albumsong).include(.song, .{ .select = .{ .name, .id } }).join(.inner, .album).where(.{ .album = .{ .id = id } });
|
||||
const songs = try request.repo.all(query);
|
||||
for (songs) |song| {
|
||||
var song_view = try songs_view.append(.object);
|
||||
try song_view.put("name", song.song.name);
|
||||
try song_view.put("url", song.song.id);
|
||||
}
|
||||
return request.render(.ok);
|
||||
}
|
||||
|
||||
|
|
@ -38,7 +57,6 @@ pub fn delete(id: []const u8, request: *jetzig.Request) !jetzig.View {
|
|||
return request.render(.ok);
|
||||
}
|
||||
|
||||
|
||||
test "index" {
|
||||
var app = try jetzig.testing.app(std.testing.allocator, @import("routes"));
|
||||
defer app.deinit();
|
||||
19
src/app/views/albums/get.zmpl
Normal file
19
src/app/views/albums/get.zmpl
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" href="styles.css">
|
||||
<meta charset="UTF-8">
|
||||
</head>
|
||||
<body>
|
||||
@partial partials/header
|
||||
<h1>no one lol</h1>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
@for (.songs) |song| {
|
||||
<tr>
|
||||
<td class=cell><a href="/songs/{{song.url}}">{{song.name}}</a></td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
19
src/app/views/albums/index.zmpl
Normal file
19
src/app/views/albums/index.zmpl
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" href="styles.css">
|
||||
<meta charset="UTF-8">
|
||||
</head>
|
||||
<body>
|
||||
@partial partials/header
|
||||
<h1> Artists</h1>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
@for (.artists) |artist| {
|
||||
<tr>
|
||||
<td class=cell><a href="/artists/{{artist.url}}">{{artist.name}}</a></td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
<div>
|
||||
<span>Content goes here</span>
|
||||
</div>
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
<div>
|
||||
<span>Content goes here</span>
|
||||
</div>
|
||||
|
|
@ -1,12 +1,38 @@
|
|||
const std = @import("std");
|
||||
const jetzig = @import("jetzig");
|
||||
const jetquery = @import("jetzig").jetquery;
|
||||
|
||||
pub fn index(request: *jetzig.Request) !jetzig.View {
|
||||
var root = try request.data(.object);
|
||||
var artists_view = try root.put("artists", .array);
|
||||
const query = jetzig.database.Query(.Artist).select(.{}).orderBy(.{ .name = .asc });
|
||||
const artists = try request.repo.all(query);
|
||||
for (artists) |artist| {
|
||||
var artist_view = try artists_view.append(.object);
|
||||
//const output = try request.allocator.dupe(u8, artist.name);
|
||||
//std.mem.replaceScalar(u8, output, ' ', '_');
|
||||
try artist_view.put("name", artist.name);
|
||||
try artist_view.put("url", artist.id);
|
||||
}
|
||||
|
||||
return request.render(.ok);
|
||||
}
|
||||
|
||||
pub fn get(id: []const u8, request: *jetzig.Request) !jetzig.View {
|
||||
_ = id;
|
||||
//const artist_name = jetzig.database.Query(.Artist).find().select(.{.name}).execute(request.repo);
|
||||
std.log.debug("page: {s}", .{id});
|
||||
var root = try request.data(.object);
|
||||
//try root.put("artist", artist_name);
|
||||
try root.put("artist_id", id);
|
||||
var albums_view = try root.put("albums", .array);
|
||||
const query = jetzig.database.Query(.Albumartist).include(.album, .{ .select = .{ .name, .id } }).join(.inner, .artist).where(.{ .artist = .{ .id = id } });
|
||||
const albums = try request.repo.all(query);
|
||||
for (albums) |album| {
|
||||
var album_view = try albums_view.append(.object);
|
||||
try album_view.put("name", album.album.name);
|
||||
try album_view.put("url", album.album.id);
|
||||
//std.log.debug("{s}", .{album.album.name});
|
||||
}
|
||||
return request.render(.ok);
|
||||
}
|
||||
|
||||
|
|
@ -38,7 +64,6 @@ pub fn delete(id: []const u8, request: *jetzig.Request) !jetzig.View {
|
|||
return request.render(.ok);
|
||||
}
|
||||
|
||||
|
||||
test "index" {
|
||||
var app = try jetzig.testing.app(std.testing.allocator, @import("routes"));
|
||||
defer app.deinit();
|
||||
19
src/app/views/artists/get.zmpl
Normal file
19
src/app/views/artists/get.zmpl
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" href="styles.css">
|
||||
<meta charset="UTF-8">
|
||||
</head>
|
||||
<body>
|
||||
@partial partials/header
|
||||
<h1>no one lol</h1>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
@for (.albums) |album| {
|
||||
<tr>
|
||||
<td class=cell><a href="/albums/{{album.url}}">{{album.name}}</a></td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
19
src/app/views/artists/index.zmpl
Normal file
19
src/app/views/artists/index.zmpl
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" href="styles.css">
|
||||
<meta charset="UTF-8">
|
||||
</head>
|
||||
<body>
|
||||
@partial partials/header
|
||||
<h1> Artists</h1>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
@for (.artists) |artist| {
|
||||
<tr>
|
||||
<td class=cell><a href="/artists/{{artist.url}}">{{artist.name}}</a></td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
<div>
|
||||
<span>Content goes here</span>
|
||||
</div>
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
<div>
|
||||
<span>Content goes here</span>
|
||||
</div>
|
||||
Loading…
Add table
Add a link
Reference in a new issue