Explorar o código

work on #30: shore up the submission forms in prep for better fake data model

George S. Baugh %!s(int64=5) %!d(string=hai) anos
pai
achega
50aba41665

+ 20 - 2
lib/Trog/Data/DUMMY.pm

@@ -68,6 +68,8 @@ my $example_posts = [
         tags         => ['about', 'profile', 'public'],
         created      => time(),
         version      => 0,
+        background_image => '/img/sys/testpattern.jpg',
+        preview      => '/img/avatar/humm.gif',
     },
     { 
         content_type => "image/gif",
@@ -129,7 +131,8 @@ my $example_posts = [
         title        => 'Administrative Posts',
         user         => 'Nobody',
         id           => "900",
-        tags         => ['series', 'private'],
+        aclname      => 'admin',
+        tags         => ['series', 'private', 'admin'],
         created      => time(),
         version      => 0,
         preview      => '/img/sys/testpattern.jpg',
@@ -239,14 +242,29 @@ sub _add_media_type (@posts) {
 }
 
 sub add ($self, @posts) {
+    require UUID::Tiny;
+    foreach my $post (@posts) {
+        my $uuid = UUID::Tiny::create_uuid_as_string(UUID::Tiny::UUID_V1, UUID::Tiny::UUID_NS_DNS);
+        $post->{id} = $uuid;
+        push @$example_posts, $post;
+    }
     return 1;
 }
 
 sub update($self, @posts) {
+    foreach my $update (@posts) {
+        foreach my $post (0..scalar(@$example_posts)) {
+            next unless $example_posts->[$post]->{id} eq $update->{id};
+            $example_posts->[$post] = $update;
+        }
+    }
     return 1;
 }
 
-sub delete($self, @ids) {
+sub delete($self, @posts) {
+    foreach my $update (@posts) {
+        @$example_posts = grep { $_->{id} ne $update->{id} } @$example_posts;
+    }
     return 1;
 }
 

+ 12 - 0
www/templates/acls.tx

@@ -0,0 +1,12 @@
+Visibility<br />
+<select class="cooltext" name="visibility">
+    : for $post_visibilities -> $visibility {
+        <option value="<: $visibility :>"><: $visibility :></option>
+    : }
+</select>
+ACLs / Series<br/ >
+<select multiple class="cooltext" name="acls">
+    : for $acls -> $acl {
+        <option value="<: $acl.title :>"><: $acl.data :></option>
+    : }
+</select>

+ 4 - 8
www/templates/blog.tx

@@ -1,12 +1,8 @@
 <form class="Submissions" action="/post/save" method="POST">
-    Title *<br /><input required class="cooltext" type="text" name="title" placeholder="Iowa Man Destroys Moon" />
-    Visibility<br />
-    <select class="cooltext" name="visibility">
-        : for $post_visibilities -> $visibility {
-            <option value="<: $visibility :>"><: $visibility :></option>
-        : }
-    </select>
-    Content<br /><textarea required class="cooltext" name="comment" placeholder="Potzrebie"></textarea>
+    Title *<br /><input required class="cooltext" type="text" name="title" placeholder="Iowa Man Destroys Moon" value="<: $post.title :>" />
+    Preview Image<br /><input type="file" class="cooltext" name="preview" placeholder="PROMO.JPG" value="<: $post.preview :>" />
+    : include "acls.tx";
+    Content<br /><textarea required class="cooltext" name="comment" placeholder="Potzrebie"><: $post.data :></textarea>
     <input type="hidden" name="app" value="blog" />
     <input class="coolbutton" type="submit" value="Publish" text="Publish" />
 </form>

+ 5 - 10
www/templates/file.tx

@@ -1,16 +1,11 @@
 <form class="Submissions" action="/post/save" method="POST">
-    Title *<br /><input required class="cooltext" type="text" name="title" placeholder="Iowa Man Destroys Moon" />
-    File *<br /><input required class="cooltext" type="file" name="file" />
+    Title *<br /><input required class="cooltext" type="text" name="title" placeholder="Iowa Man Destroys Moon" value="<: $post.title :>" />
+    File *<br /><input required class="cooltext" type="file" name="file" value="<: $post.href :>" />
     <!-- Need to validate file or add an upload link that kicks off WS streaming of the file at some point? TAB -->
     <br /> TODO: Add "alternative" links, which scrape the appropriate icon for the alt link from the favicon<br />
-    Preview Image<br /><input type="file" class="cooltext" name="preview" placeholder="PROMO.JPG"></input>
-    Visibility<br />
-    <select class="cooltext" name="visibility">
-        : for $post_visibilities -> $visibility {
-            <option value="<: $visibility :>"><: $visibility :></option>
-        : }
-    </select>
-    Comments<br /><textarea class="cooltext" name="comment" placeholder="Potzrebie"></textarea>
+    Preview Image<br /><input type="file" class="cooltext" name="preview" placeholder="PROMO.JPG" value="<: $post.preview :>" />
+    : include "acls.tx";
+    Comments<br /><textarea class="cooltext" name="comment" placeholder="Potzrebie"><: $post.data :></textarea>
     <input type="hidden" name="app" value="file" />
     <input class="coolbutton" type="submit" value="Publish" text="Publish" />
 </form>

+ 7 - 12
www/templates/microblog.tx

@@ -1,16 +1,11 @@
 <form class="Submissions" action="/post/save" method="POST">
-    Title *<br /><input required class="cooltext" type="text" name="title" placeholder="Iowa Man Destroys Moon" />
-    URL *<br /><input required class="cooltext" type="url" name="URL" placeholder="https://oneweirdtrick.scam" />
-    Image<br /><input class="cooltext" type="url" name="IMG" placeholder="https://gifdump.tld/Advice_Dog.jpg" />
-    Audio<br /><input class="cooltext" type="url" name="AUD" placeholder="https://soundclod.com/static.mp3"/>
-    Video<br /><input class="cooltext" type="url" name="VID" placeholder="https://youvimeo.tv/infomercial.mp4" />
-    Visibility<br />
-    <select class="cooltext" name="visibility">
-        : for $post_visibilities -> $visibility {
-            <option value="<: $visibility :>"><: $visibility :></option>
-        : }
-    </select>
-    Comments<br /><textarea class="cooltext" name="comment" placeholder="Potzrebie"></textarea>
+    Title *<br /><input required class="cooltext" type="text" name="title" placeholder="Iowa Man Destroys Moon" value="<: $post.title :>" />
+    URL *<br /><input required class="cooltext" type="href" name="URL" placeholder="https://oneweirdtrick.scam" value="<: $post.href :>" />
+    Image<br /><input class="cooltext" type="url" name="preview" placeholder="https://gifdump.tld/Advice_Dog.jpg" value="<: $post.preview :>" />
+    Audio<br /><input class="cooltext" type="url" name="audio_href" placeholder="https://soundclod.com/static.mp3" value="<: $post.audio_href :>" />
+    Video<br /><input class="cooltext" type="url" name="video_href" placeholder="https://youvimeo.tv/infomercial.mp4" value="<: $post.video_href :>" />
+    : include "acls.tx";
+    Comments<br /><textarea class="cooltext" name="comment" placeholder="Potzrebie"><: $post.data :></textarea>
     <input type="hidden" name="app" value="microblog" />
     <input class="coolbutton" type="submit" value="Publish" text="Publish" />
 </form>

+ 1 - 1
www/templates/posts.tx

@@ -42,7 +42,7 @@
             <br />
             <a style="display: inline-block;" onclick="switchMenu('<: $post.id :>');">[Edit]</a>
             <div id="<: $post.id :>" style="display:none;">
-                : include $post.type ~ ".tx";
+                : include $post.type ~ ".tx" { post => $post};
                 <form class="Submissions" action="/post/delete" class="inline">
                     <input type="hidden" name="id" value="<: $post.id :>"></input>
                     <input class="coolbutton" type="submit" value="Delete"></input>

+ 6 - 17
www/templates/profile.tx

@@ -1,22 +1,11 @@
 <form class="Submissions" action="/profile" method="POST">
-    Username *<br /><input required class="cooltext" type="text" name="title" placeholder="AzureDiamond" />
+    Username *<br /><input required class="cooltext" type="text" name="title" placeholder="AzureDiamond" value="<: $post.user :>" />
     Password *<br /><input required class="cooltext" type="password" name="password" placeholder="hunter2" />
-    Avatar *<br /><input class="cooltext" type="file" name="file" />
-    Wallpaper<br /><input type="file" class="cooltext" name="wallpaper" placeholder="PROMO.JPG"></input>
-    Title  <br /><input class="cooltext" type="text" name="title" />
-    Profile Visibility<br />
-    <select class="cooltext" name="visibility">
-        : for $post_visibilities -> $visibility {
-            <option value="<: $visibility :>"><: $visibility :></option>
-        : }
-    </select>
-    ACLs / Series<br/ >
-    <select multiple class="cooltext" name="acls">
-        : for $acls -> $acl {
-            <option value="<: $acl.title :>"><: $acl.data :></option>
-        : }
-    </select>
-    Content<br /><textarea class="cooltext" name="comment" placeholder="Potzrebie"></textarea>
+    Avatar *<br /><input class="cooltext" type="file" name="file" value="<: $post.preview :>" />
+    Wallpaper<br /><input type="file" class="cooltext" name="wallpaper" placeholder="PROMO.JPG" value="<: $post.background_image :>" />
+    Title  <br /><input class="cooltext" type="text" name="title" value="<: $post.title :>" />
+    : include "acls.tx";
+    Content<br /><textarea class="cooltext" name="comment" placeholder="Potzrebie"><: $post.data :></textarea>
     <input type="hidden" name="app" value="file" />
     <input class="coolbutton" type="submit" value="Publish" text="Publish" />
 </form>

+ 4 - 4
www/templates/series.tx

@@ -1,14 +1,14 @@
 <form class="Submissions" action="/post/save" method="POST">
-    Title *<br /><input required class="cooltext" type="text" name="title" placeholder="Iowa Man Destroys Moon" />
-    ACL name *<br /><input required class="cooltext" type="file" name="series" />
-    Preview Image<br /><input type="file" class="cooltext" name="preview" placeholder="PROMO.JPG"></input>
+    Title *<br /><input required class="cooltext" type="text" name="title" placeholder="Iowa Man Destroys Moon" value="<: $post.title :>" />
+    ACL name *<br /><input required class="cooltext" type="text" name="series" <: $post.aclname :> />
+    Preview Image<br /><input type="file" class="cooltext" name="preview" placeholder="PROMO.JPG" value="<: $post.preview :>" />
     Visibility<br />
     <select class="cooltext" name="visibility">
         : for $post_visibilities -> $visibility {
             <option value="<: $visibility :>"><: $visibility :></option>
         : }
     </select>
-    Comments<br /><textarea class="cooltext" name="comment" placeholder="Potzrebie"></textarea>
+    Comments<br /><textarea class="cooltext" name="comment" placeholder="Potzrebie"><: $post.data :></textarea>
     <input type="hidden" name="app" value="file" />
     <input class="coolbutton" type="submit" value="Publish" text="Publish" />
 </form>