Add API support to templates in a ham-fisted way
authorMike Rylander <mrylander@gmail.com>
Sun, 7 Apr 2013 03:10:38 +0000 (23:10 -0400)
committerMike Rylander <mrylander@gmail.com>
Sun, 7 Apr 2013 03:10:38 +0000 (23:10 -0400)
Signed-off-by: Mike Rylander <mrylander@gmail.com>

src/perl/lib/templates/package
src/perl/lib/templates/package_detail
src/perl/lib/templates/package_summary

index 993d3cf..cb817ee 100644 (file)
@@ -7,13 +7,19 @@ pkg_id = cgi.param( 'pkg' );
 
 IF pkg_id
     INCLUDE package_details
-        pkg = cstore.retrieve_depository_package( [ cgi.param( 'pkg' ), { flesh = 1, flesh_fields = { dp = ['systems'] } } ] )
+        pkg = cstore.retrieve_depository_package( [ cgi.param( 'pkg' ), { flesh => 1, flesh_fields => { dp => ['systems'] } } ] )
         systems = cstore.retrieve_all_depository_source_system();
 ELSE
-    FOREACH p IN cstore.search_depository_package( [ { author = user.id() }, { flesh = 1, flesh_fields = { dp = ['systems'] } } ] );
+    '[' IF api;
+    FOREACH p IN cstore.search_depository_package( [ { author => user.id() }, { flesh => 1, flesh_fields => { dp => ['systems'] } } ] );
         INCLUDE package_summary pkg = p;
+        IF api
+            ',';
+        ELSE
         %] <hr/> [%
+        END;
     END;
+    ']' IF api;
 END;
 
 END %]
index e4fbb12..3161716 100644 (file)
@@ -2,11 +2,31 @@
 
 [%
 
+USE JSON ( pretty = 1 )
+
 sysnames = [];
-FOREACH s IN systems;
+FOREACH s IN pkg.systems();
     sysnames.push(s.name());
 END;
 
+IF api;
+    p = {   title       => pkg.title(),
+            pkg_version => pkg.pkg_version(),
+            created     => pkg.created(),
+            author      => pkg.author(),
+            public      => pkg.public(),
+            image       => pkg.image(),
+            description => pkg.description(),
+            systems     => sysnames
+    };
+    p.json;
+ELSE
+
+allsysnames = [];
+FOREACH s IN systems;
+    allsysnames.push(s.name());
+END;
+
 
 %]
 
@@ -31,13 +51,13 @@ END;
     <tr>
         <th>Systems</th>
         <td>
-            [% FOREACH s IN sysnames.sort %]
+            [% FOREACH s IN allsysnames.sort %]
                 <input
                     name="systems"
                     type="checkbox"
-                    value="[% s.name() | html %]"
-                    [% 'checked="checked"' IF pgk.systems().grep(s) %]
-                />[% s.name() | html %]>
+                    value="[% s | html %]"
+                    [% 'checked="checked"' IF sysnames.grep(s) %]
+                />[% s | html %]>
                 <br/>
             [% END %]
         </td>
index 3cbfb6c..598e74b 100644 (file)
@@ -2,11 +2,22 @@
 
 [%
 
+USE JSON ( pretty = 1 )
+
 sysnames = [];
 FOREACH s IN pkg.systems();
     sysnames.push(s.name());
 END;
 
+IF api;
+    p = {   title       => pkg.title(),
+            pkg_version => pkg.pkg_version(),
+            created     => pkg.created(),
+            description => pkg.description(),
+            systems     => sysnames
+    };
+    p.json;
+ELSE
 
 %]