[haiku-depot-web] [haiku-depot-web-app] 2 new revisions pushed by haiku.li...@xxxxxxxxx on 2014-02-20 09:06 GMT

  • From: haiku-depot-web-app@xxxxxxxxxxxxxx
  • To: haiku-depot-web@xxxxxxxxxxxxx
  • Date: Thu, 20 Feb 2014 09:06:50 +0000

master moved from 4ee4560ddc66 to f2295f14696f

2 new revisions:

Revision: a947d3540b6b
Author:   Andrew Lindesay <apl@xxxxxxxxxxxxxx>
Date:     Wed Feb 19 08:43:19 2014 UTC
Log:      + sort out autofill authentication page fix
http://code.google.com/p/haiku-depot-web-app/source/detail?r=a947d3540b6b

Revision: f2295f14696f
Author:   Andrew Lindesay <apl@xxxxxxxxxxxxxx>
Date:     Wed Feb 19 10:33:16 2014 UTC
Log: + use webjars and drop the ant script which was installing web resourc...
http://code.google.com/p/haiku-depot-web-app/source/detail?r=f2295f14696f

==============================================================================
Revision: a947d3540b6b
Author:   Andrew Lindesay <apl@xxxxxxxxxxxxxx>
Date:     Wed Feb 19 08:43:19 2014 UTC
Log:      + sort out autofill authentication page fix

http://code.google.com/p/haiku-depot-web-app/source/detail?r=a947d3540b6b

Added:
/haikudepotserver-webapp/src/main/webapp/js/app/directive/autofillfixdirective.js
Modified:
 /haikudepotserver-webapp/src/main/resources/spring/webresourcegroup.xml
/haikudepotserver-webapp/src/main/webapp/js/app/controller/addeditrepository.html /haikudepotserver-webapp/src/main/webapp/js/app/controller/authenticateuser.html /haikudepotserver-webapp/src/main/webapp/js/app/controller/changepassword.html
 /haikudepotserver-webapp/src/main/webapp/js/app/controller/createuser.html
 /haikudepotserver-webapp/src/main/webapp/js/app/controller/home.html
/haikudepotserver-webapp/src/main/webapp/js/app/controller/listrepositories.html

=======================================
--- /dev/null
+++ /haikudepotserver-webapp/src/main/webapp/js/app/directive/autofillfixdirective.js Wed Feb 19 08:43:19 2014 UTC
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2014, Andrew Lindesay
+ * Distributed under the terms of the MIT License.
+ */
+
+/**
+ * <p>This directive fixes a known problem with AngularJS (and maybe other javascript frameworks) where an autofilled + * field is not raising the events required to get the scope to get updated. This, in turn, means that the model is
+ * not updated.</p>
+ *
+ * <p>This is not very nice, but does seem to be the only way to work around this.</p>
+ */
+
+angular.module('haikudepotserver').directive(
+    'autofillFix',[
+        '$timeout',
+        function($timeout) {
+            return {
+                restrict: 'A',
+                replace: true,
+                link: function(scope, elem) {
+                    $timeout(function() {
+                        elem[0].dispatchEvent(new CustomEvent('change'));
+                    },100);
+                }
+            };
+        }
+    ]
+);
=======================================
--- /haikudepotserver-webapp/src/main/resources/spring/webresourcegroup.xml Tue Feb 18 09:54:04 2014 UTC +++ /haikudepotserver-webapp/src/main/resources/spring/webresourcegroup.xml Wed Feb 19 08:43:19 2014 UTC
@@ -63,6 +63,7 @@
<value>/js/app/directive/showifrepositorypermissiondirective.js</value> <value>/js/app/directive/showifpermissiondirective.js</value> <value>/js/app/directive/paginationarrowdirective.js</value> + <value>/js/app/directive/autofillfixdirective.js</value>

<value>/js/app/controller/viewpkgcontroller.js</value> <value>/js/app/controller/homecontroller.js</value>
=======================================
--- /haikudepotserver-webapp/src/main/webapp/js/app/controller/addeditrepository.html Sun Feb 9 10:38:52 2014 UTC +++ /haikudepotserver-webapp/src/main/webapp/js/app/controller/addeditrepository.html Wed Feb 19 08:43:19 2014 UTC
@@ -12,6 +12,7 @@
                     id="code"
                     type="text"
                     name="code"
+                    autocomplete="off"
                     ng-show="!amEditing"
                     ng-change="codeChanged()"
                     ng-required="true"
@@ -39,6 +40,7 @@
                     type="text"
                     size="64"
                     name="url"
+                    autocomplete="off"
                     ng-change="urlChanged()"
                     ng-required="true"
                     ng-model="workingRepository.url"></input>
=======================================
--- /haikudepotserver-webapp/src/main/webapp/js/app/controller/authenticateuser.html Thu Jan 16 08:37:44 2014 UTC +++ /haikudepotserver-webapp/src/main/webapp/js/app/controller/authenticateuser.html Wed Feb 19 08:43:19 2014 UTC
@@ -19,6 +19,7 @@
         <label for="nickname">Nickname</label>
<div class="form-control-group" ng-class="deriveFormControlsContainerClasses('nickname')">
                 <input
+                        autofill-fix=""
                         type="text"
                         id="nickname"
                         name="nickname"
@@ -31,6 +32,7 @@
         <label for="password-clear">Password</label>
<div class="form-control-group" ng-class="deriveFormControlsContainerClasses('passwordClear')">
                 <input
+                        autofill-fix=""
                         type="password"
                         id="password-clear"
                         name="passwordClear"
=======================================
--- /haikudepotserver-webapp/src/main/webapp/js/app/controller/changepassword.html Thu Jan 16 08:37:44 2014 UTC +++ /haikudepotserver-webapp/src/main/webapp/js/app/controller/changepassword.html Wed Feb 19 08:43:19 2014 UTC
@@ -16,6 +16,7 @@
                     id="old-password-clear"
                     type="password"
                     name="oldPasswordClear"
+                    autocomplete="off"
                     ng-change="oldPasswordChanged()"
                     ng-required="true"
                     ng-model="changePasswordData.oldPasswordClear"></input>
@@ -29,6 +30,7 @@
                     type="password"
                     name="newPasswordClear"
                     valid-password=""
+                    autocomplete="off"
                     ng-change="newPasswordsChanged()"
                     ng-required="true"
                     ng-model="changePasswordData.newPasswordClear"></input>
@@ -40,6 +42,7 @@
             <input
                     id="new-password-clear-repeated"
                     type="password"
+                    autocomplete="off"
                     name="newPasswordClearRepeated"
                     ng-change="newPasswordsChanged()"
                     ng-required="true"
@@ -55,6 +58,7 @@
                     id="captcha-response-input"
                     size="3"
                     type="text"
+                    autocomplete="off"
                     name="captchaResponse"
                     ng-required="true"
                     ng-change="captchaResponseDidChange()"
=======================================
--- /haikudepotserver-webapp/src/main/webapp/js/app/controller/createuser.html Thu Jan 16 08:37:44 2014 UTC +++ /haikudepotserver-webapp/src/main/webapp/js/app/controller/createuser.html Wed Feb 19 08:43:19 2014 UTC
@@ -9,6 +9,7 @@
                     id="nickname"
                     type="text"
                     name="nickname"
+                    autocomplete="off"
                     placeholder="erik"
                     ng-model="newUser.nickname"
                     ng-required="true"
@@ -23,6 +24,7 @@
                     id="password-clear"
                     type="password"
                     name="passwordClear"
+                    autocomplete="off"
                     ng-required="true"
                     ng-change="passwordsChanged()"
                     valid-password=""
@@ -36,6 +38,7 @@
                     id="password-clear-repeated"
                     type="password"
                     name="passwordClearRepeated"
+                    autocomplete="off"
                     ng-change="passwordsChanged()"
                     ng-required="true"
                     ng-model="newUser.passwordClearRepeated"></input>
@@ -50,6 +53,7 @@
                     id="captcha-response-input"
                     size="3"
                     type="text"
+                    autocomplete="off"
                     name="captchaResponse"
                     ng-required="true"
                     ng-change="captchaResponseDidChange()"
=======================================
--- /haikudepotserver-webapp/src/main/webapp/js/app/controller/home.html Sat Feb 8 11:31:22 2014 UTC +++ /haikudepotserver-webapp/src/main/webapp/js/app/controller/home.html Wed Feb 19 08:43:19 2014 UTC
@@ -10,6 +10,7 @@
         <div ng-show="'SEARCH'==selectedViewCriteriaTypeOption.code">
             <input
                     ng-model="searchExpression"
+                    autocomplete="off"
                     ui-keypress="{enter:'goSearch()'}"
                     placeholder="Search..."></input>
             <button
=======================================
--- /haikudepotserver-webapp/src/main/webapp/js/app/controller/listrepositories.html Sun Feb 9 10:00:28 2014 UTC +++ /haikudepotserver-webapp/src/main/webapp/js/app/controller/listrepositories.html Wed Feb 19 08:43:19 2014 UTC
@@ -5,6 +5,7 @@
     <div id="search-criteria-container">
         <div>
             <input
+                    autocomplete="off"
                     ng-model="searchExpression"
                     ui-keypress="{enter:'goSearch()'}"
                     placeholder="Filter by code..."></input>

==============================================================================
Revision: f2295f14696f
Author:   Andrew Lindesay <apl@xxxxxxxxxxxxxx>
Date:     Wed Feb 19 10:33:16 2014 UTC
Log: + use webjars and drop the ant script which was installing web resources at build time

http://code.google.com/p/haiku-depot-web-app/source/detail?r=f2295f14696f

Added:
 /haikudepotserver-webapp/src/main/resources/webjars.properties
Deleted:
 /haikudepotserver-webapp/src/etc/ant/fetchwebresources-build.xml
 /haikudepotserver-webapp/src/main/resources/webresources.properties
 /haikudepotserver-webapp/src/main/webapp/js/lib/README.TXT
Modified:
 /haikudepotserver-docs/src/main/latex/docs/part-development.tex
 /haikudepotserver-parent/pom.xml
 /haikudepotserver-webapp/pom.xml
 /haikudepotserver-webapp/src/main/resources/spring/application-context.xml
 /haikudepotserver-webapp/src/main/resources/spring/servlet-context.xml
 /haikudepotserver-webapp/src/main/resources/spring/webresourcegroup.xml

=======================================
--- /dev/null
+++ /haikudepotserver-webapp/src/main/resources/webjars.properties Wed Feb 19 10:33:16 2014 UTC
@@ -0,0 +1,7 @@
+# This property file is present to relay some maven build-time arguments into the spring runtime +# in order to communicate the versions of web resources (javascript libraries) to use.
+
+web-angularjs.version=${web-angularjs.version}
+web-angular-ui.version=${web-angular-ui.version}
+web-underscorejs.version=${web-underscorejs.version}
+web-momentjs.version=${web-momentjs.version}
=======================================
--- /haikudepotserver-webapp/src/etc/ant/fetchwebresources-build.xml Fri Jan 31 10:26:48 2014 UTC
+++ /dev/null
@@ -1,52 +0,0 @@
-<!--
-This ant script is invoked from the 'compile' goal of the maven project. From the internet, it will -pull down all of the web-resources (js, css etc...) that it needs to function. This approach avoids -the need to incorporate these elements in the source distribution. See the 'pom.xml' for the location
-from where this is invoked.
--->
-
-<project name="fetchwebresources" default="main" basedir=".">
-
-    <target name="js">
-
-        <mkdir dir="${js.libsroot}"/>
-
- <get src="${js.cdnurl}/angular-ui/${angularuiutils.version}/angular-ui-ieshiv.js" dest="${js.libsroot}/angular-ui-ieshiv.js" skipexisting="true" /> - <get src="${js.cdnurl}/angular-ui/${angularuiutils.version}/angular-ui-ieshiv.min.js" dest="${js.libsroot}/angular-ui-ieshiv-min.js" skipexisting="true" /> - <!--<get src="${js.cdnurl}/angular-ui/${angularuiutils.version}/angular-ui.css" dest="${js.libsroot}/angular-ui.css" skipexisting="true" />--> - <get src="${js.cdnurl}/angular-ui/${angularuiutils.version}/angular-ui.js" dest="${js.libsroot}/angular-ui.js" skipexisting="true" /> - <!--<get src="${js.cdnurl}/angular-ui/${angularuiutils.version}/angular-ui.min.css" dest="${js.libsroot}/angular-ui-min.css" skipexisting="true" />--> - <get src="${js.cdnurl}/angular-ui/${angularuiutils.version}/angular-ui.min.js" dest="${js.libsroot}/angular-ui-min.js" skipexisting="true" />
-
- <get src="${js.cdnurl}/Base64/${base64js.version}/base64.min.js" dest="${js.libsroot}/base64-min.js" skipexisting="true" />
-
-        <!-- core extensions -->
- <get src="${js.cdnurl}/underscore.js/${underscorejs.version}/underscore.js" dest="${js.libsroot}/underscore.js" skipexisting="true" /> - <get src="${js.cdnurl}/underscore.js/${underscorejs.version}/underscore-min.js" dest="${js.libsroot}/underscore-min.js" skipexisting="true" /> - <get src="${js.cdnurl}/underscore.js/${underscorejs.version}/underscore-min.map" dest="${js.libsroot}/underscore-min.map" skipexisting="true" />
-
-        <!-- date and time handling -->
- <get src="${js.cdnurl}/moment.js/${momentjs.version}/moment.js" dest="${js.libsroot}/moment.js" skipexisting="true" /> - <get src="${js.cdnurl}/moment.js/${momentjs.version}/moment.min.js" dest="${js.libsroot}/moment-min.js" skipexisting="true" />
-
-    </target>
-
-    <target name="angularjs.check">
- <available property="angularjs.present" file="${js.libsroot}/angular"/>
-    </target>
-
- <target name="angularjs" depends="angularjs.check" unless="angularjs.present"> - <get src="${js.angularjsurl}/${angularjs.version}/angular-${angularjs.version}.zip" dest="${java.io.tmpdir}/angular.zip" />
-        <unzip src="${java.io.tmpdir}/angular.zip" dest="${js.libsroot}">
-            <patternset>
- <exclude name="angular-${angularjs.version}/docs"></exclude> - <exclude name="angular-${angularjs.version}/docs/**"></exclude>
-            </patternset>
- <globmapper from="angular-${angularjs.version}/*" to="angular/*"/>
-        </unzip>
-        <delete file="${java.io.tmpdir}/angular.zip"/>
-    </target>
-
-    <target name="main" depends="js,angularjs"/>
-
-</project>
=======================================
--- /haikudepotserver-webapp/src/main/resources/webresources.properties Wed Dec 25 11:13:03 2013 UTC
+++ /dev/null
@@ -1,4 +0,0 @@
-# This property is supplied by the maven build system in order to coordinate the version of the web resources that is -# downloaded using the ant task and which is distributed out to web clients.
-
-webresources.guid=${webresources.guid}
=======================================
--- /haikudepotserver-webapp/src/main/webapp/js/lib/README.TXT Fri Nov 15 08:51:45 2013 UTC
+++ /dev/null
@@ -1,4 +0,0 @@
-This directory contains JavaScript libraries which are used for the Haiku Depot Server's web user interface. These -libraries are downloaded when the first build is done from the command line; use "mvn compile" from the command line -at the reactor level to make this happen. The actual process occurs using an ant script that is invoked from the
-maven build.
=======================================
--- /haikudepotserver-docs/src/main/latex/docs/part-development.tex Wed Jan 29 10:34:56 2014 UTC +++ /haikudepotserver-docs/src/main/latex/docs/part-development.tex Wed Feb 19 10:33:16 2014 UTC
@@ -11,12 +11,6 @@

See \ref{config} for details on the format and keys for this configuration file.

-Some of the project source-files (web resources) are downloaded from the internet on the first build. Your first step should be to undertake this first build by issuing this command from the top level of the project;
-
-\framebox{\tt mvn compile}
-
-This will compile the source code and in the process, download any necessary resources.
-
To start-up the application server for development purposes, issue the following command from the same top level of the project;

 \begin{verbatim}
=======================================
--- /haikudepotserver-parent/pom.xml    Wed Feb 12 10:07:08 2014 UTC
+++ /haikudepotserver-parent/pom.xml    Wed Feb 19 10:33:16 2014 UTC
@@ -7,9 +7,17 @@
     <version>1.0.2-SNAPSHOT</version>

     <properties>
+
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+
         <spring.version>3.2.4.RELEASE</spring.version>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <postgresql.version>9.3-1100-jdbc41</postgresql.version>
+
+        <web-angularjs.version>1.2.13</web-angularjs.version>
+        <web-angular-ui.version>0.4.0-1</web-angular-ui.version>
+        <web-underscorejs.version>1.5.2-2</web-underscorejs.version>
+        <web-momentjs.version>2.5.0</web-momentjs.version>
+
     </properties>

     <dependencyManagement>
@@ -21,7 +29,7 @@
                 <version>2.0.23</version>
             </dependency>

-            <!-- logging -->
+            <!-- LOGGING -->
             <dependency>
                 <groupId>org.slf4j</groupId>
                 <artifactId>slf4j-api</artifactId>
@@ -137,6 +145,28 @@
                 <version>${postgresql.version}</version>
             </dependency>

+            <!-- WEB JARS (http://www.webjars.org/) -->
+            <dependency>
+                <groupId>org.webjars</groupId>
+                <artifactId>angularjs</artifactId>
+                <version>${web-angularjs.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.webjars</groupId>
+                <artifactId>angular-ui</artifactId>
+                <version>${web-angular-ui.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.webjars</groupId>
+                <artifactId>underscorejs</artifactId>
+                <version>${web-underscorejs.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.webjars</groupId>
+                <artifactId>momentjs</artifactId>
+                <version>${web-momentjs.version}</version>
+            </dependency>
+
         </dependencies>

     </dependencyManagement>
=======================================
--- /haikudepotserver-webapp/pom.xml    Wed Feb 12 10:07:08 2014 UTC
+++ /haikudepotserver-webapp/pom.xml    Wed Feb 19 10:33:16 2014 UTC
@@ -12,40 +12,6 @@
     <artifactId>haikudepotserver-webapp</artifactId>
     <packaging>war</packaging>

-    <properties>
-
-        <!--
- This random UUID identifies the current version of the web-resources. If this value is bumped, the effect - is that new resources will be downloaded from the internet. Use the UNIX command "uuidgen" to get a new
-        identifier.
-        -->
-
- <webresources.guid>D4BAB0F5-EFDC-436B-8692-D756A5CE9FCA</webresources.guid>
-
-        <!--
- These are the versions of web-resources that are downloaded as part of this version of web resources
-        -->
-        <angularuiutils.version>0.4.0</angularuiutils.version>
-        <angularjs.version>1.2.10</angularjs.version>
-        <base64js.version>0.2.0</base64js.version>
-        <underscorejs.version>1.5.2</underscorejs.version>
-        <momentjs.version>2.5.1</momentjs.version>
-
-        <!--
- These are the source (base URLs) for the web resources to be downloaded from.
-        -->
-
-        <js.angularjsurl>http://code.angularjs.org</js.angularjsurl>
-        <js.cdnurl>http://cdnjs.cloudflare.com/ajax/libs</js.cdnurl>
-
-        <!--
- These are the locations within the project into which the web-resources will be saved.
-        -->
-
- <js.libsroot>${basedir}/src/main/webapp/js/lib/${webresources.guid}</js.libsroot>
-
-    </properties>
-
     <dependencies>

         <!-- haikudepot -->
@@ -153,6 +119,23 @@
             <scope>test</scope>
         </dependency>

+        <dependency>
+            <groupId>org.webjars</groupId>
+            <artifactId>angularjs</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.webjars</groupId>
+            <artifactId>angular-ui</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.webjars</groupId>
+            <artifactId>underscorejs</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.webjars</groupId>
+            <artifactId>momentjs</artifactId>
+        </dependency>
+
     </dependencies>

     <build>
@@ -162,7 +145,7 @@
                 <directory>${basedir}/src/main/resources</directory>
                 <filtering>true</filtering>
                 <includes>
-                    <include>webresources.properties</include>
+                    <include>webjars.properties</include>
                     <include>build.properties</include>
                 </includes>
             </resource>
@@ -170,7 +153,7 @@
                 <directory>${basedir}/src/main/resources</directory>
                 <filtering>false</filtering>
                 <excludes>
-                    <exclude>webresources.properties</exclude>
+                    <exclude>webjars.properties</exclude>
                     <exclude>build.properties</exclude>
                 </excludes>
             </resource>
@@ -178,30 +161,6 @@

         <plugins>

-
-            <!--
-            Download and install various things from the internet into the
-            project so that they do not need to be supplied as source.
-            -->
-
-            <plugin>
-                <artifactId>maven-antrun-plugin</artifactId>
-                <version>1.7</version>
-                <executions>
-                    <execution>
-                        <phase>generate-sources</phase>
-                        <configuration>
-                            <target>
- <ant antfile="${project.basedir}/src/etc/ant/fetchwebresources-build.xml" />
-                            </target>
-                        </configuration>
-                        <goals>
-                            <goal>run</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
             <!--
             This plugin will ensure that the integration tests are run when
             appropriate.
=======================================
--- /haikudepotserver-webapp/src/main/resources/spring/application-context.xml Fri Jan 31 10:26:48 2014 UTC +++ /haikudepotserver-webapp/src/main/resources/spring/application-context.xml Wed Feb 19 10:33:16 2014 UTC
@@ -18,7 +18,7 @@
         <property name="ignoreResourceNotFound" value="true"/>
         <property name="locations">
             <list>
-                <value>classpath:webresources.properties</value>
+                <value>classpath:webjars.properties</value>
                 <value>classpath:local.properties</value>
                 <value>${config.properties}</value>
             </list>
=======================================
--- /haikudepotserver-webapp/src/main/resources/spring/servlet-context.xml Wed Feb 12 10:07:08 2014 UTC +++ /haikudepotserver-webapp/src/main/resources/spring/servlet-context.xml Wed Feb 19 10:33:16 2014 UTC
@@ -17,6 +17,7 @@

     <mvc:annotation-driven/>

+    <mvc:resources mapping="/webjars/**" location="/webjars/" />
     <mvc:resources mapping="/js/**" location="/js/" />
     <mvc:resources mapping="/css/**" location="/css/" />
     <mvc:resources mapping="/img/**" location="/img/" />
=======================================
--- /haikudepotserver-webapp/src/main/resources/spring/webresourcegroup.xml Wed Feb 19 08:43:19 2014 UTC +++ /haikudepotserver-webapp/src/main/resources/spring/webresourcegroup.xml Wed Feb 19 10:33:16 2014 UTC
@@ -6,8 +6,6 @@

<bean class="org.haikuos.haikudepotserver.web.model.WebResourceGroupService">

-        <property name="guid" value="${webresources.guid}"></property>
-
         <property name="webResourceGroups">
             <list>

@@ -21,13 +19,12 @@
<property name="mimeType" value="application/javascript"/>
                     <property name="resources">
                         <list>
- <value>/js/lib/${webresources.guid}/base64-min.js</value> - <value>/js/lib/${webresources.guid}/moment-min.js</value> - <value>/js/lib/${webresources.guid}/underscore-min.js</value> - <value>/js/lib/${webresources.guid}/angular/angular.min.js</value> - <value>/js/lib/${webresources.guid}/angular/angular-route.min.js</value> - <value>/js/lib/${webresources.guid}/angular-ui.js</value> - <value>/js/lib/${webresources.guid}/base64-min.js</value> + <value>/webjars/momentjs/${web-momentjs.version}/min/moment.min.js</value> + <value>/webjars/underscorejs/#{'${web-underscorejs.version}'.replaceAll('-[0-9]$','')}/underscore-min.js</value> + <value>/webjars/angularjs/${web-angularjs.version}/angular.min.js</value> + <value>/webjars/angularjs/${web-angularjs.version}/angular-route.min.js</value> + <value>/webjars/angular-ui/#{'${web-angular-ui.version}'.replaceAll('-[0-9]$','')}/angular-ui.js</value> + <!-- base64 library was here, but don't have a web-jar for it. -->
                         </list>
                     </property>
                 </bean>

Other related posts:

  • » [haiku-depot-web] [haiku-depot-web-app] 2 new revisions pushed by haiku.li...@xxxxxxxxx on 2014-02-20 09:06 GMT - haiku-depot-web-app