Implement basic simfile list and filters.
authorCameron Ball <c.ball1729@gmail.com>
Mon, 27 Oct 2014 15:59:24 +0000 (23:59 +0800)
committerCameron Ball <c.ball1729@gmail.com>
Mon, 27 Oct 2014 15:59:24 +0000 (23:59 +0800)
app/components/menu/menu.html
app/components/simfiles/simfiles-service.js [new file with mode: 0644]
app/divinelegy.js
app/index.html
app/pages/simfiles/simfiles.html [new file with mode: 0644]
app/pages/simfiles/simfiles.js [new file with mode: 0644]

index 966ae5c..e888cb6 100644 (file)
@@ -1,6 +1,7 @@
 <ul class="menu" ng-controller="MenuController">
     <li><a href="#/">Home</a></li>
     <li><a href="#/upload">Upload</a></li>
+    <li><a href="#/simfiles">Simfiles</a></li>
     <li>
         {{welcomeMessage}}
         <a href="#" ng-if="loggedIn" ng-click="doLogout()">logout</a>
diff --git a/app/components/simfiles/simfiles-service.js b/app/components/simfiles/simfiles-service.js
new file mode 100644 (file)
index 0000000..4574b46
--- /dev/null
@@ -0,0 +1,18 @@
+'use strict';
+
+angular.module("DivinElegy.components.simfiles", []).
+      
+factory("SimfileService", ['$http', function($http)
+{
+    var simfileAPI = {};
+    
+    simfileAPI.getSimfiles = function()
+    {
+        return $http({
+            url: "http://rock.divinelegy.dev/simfiles/",
+            method: "GET"
+        });
+    };
+    
+    return simfileAPI;
+}]);
\ No newline at end of file
index 1c8abff..d02b8f1 100644 (file)
@@ -4,11 +4,11 @@
 angular.module('DivinElegy', [
   'ngRoute',
   'DivinElegy.components.hello',
-  'DivinElegy.components.user',
   'DivinElegy.components.menu',
   'DivinElegy.components.userMenu',
   'DivinElegy.pages.index',
-  'DivinElegy.pages.upload'
+  'DivinElegy.pages.upload',
+  'DivinElegy.pages.simfiles'
 ]).
 
 config(['$routeProvider', function($routeProvider) {
@@ -21,7 +21,12 @@ config(['$routeProvider', function($routeProvider) {
     when('/upload',
     {
         templateUrl: 'pages/upload/upload.html',
-        controller: 'UploadController' 
+        controller: 'UploadController'
+    }).
+    when('/simfiles',
+    {
+        templateUrl: 'pages/simfiles/simfiles.html',
+        controller: 'SimfileController'
     }).
     otherwise({redirectTo: '/'});
 }]).
index bd5e59f..50258de 100644 (file)
         <script src="components/menu/menu-controller.js"></script>
         <script src="components/menu/menu-directive.js"></script>
         <script src="components/userMenu/userMenu-directive.js"></script>
+        <script src="components/simfiles/simfiles-service.js"></script>
         
         <!-- pages -->
         <script src="pages/index/index.js"></script>
         <script src="pages/upload/upload.js"></script>
+        <script src="pages/simfiles/simfiles.js"></script>
         <!-- End -->
         
         <!-- good luck cameron -->
@@ -44,3 +46,4 @@
         <!-- <div>Angular seed app: v<span app-version></span></div> -->
     </body>
 </html>
+
diff --git a/app/pages/simfiles/simfiles.html b/app/pages/simfiles/simfiles.html
new file mode 100644 (file)
index 0000000..a4a3cc4
--- /dev/null
@@ -0,0 +1,14 @@
+<input type="text" ng-model="artistFilterKeyword" placeholder="artist..."/>\r
+<input type="text" ng-model="titleFilterKeyword" placeholder="title..."/>\r
+<table>\r
+    <thead>\r
+        <tr><th colspan="4">Slamfiles</th></tr>\r
+    </thead>\r
+    <tbody>\r
+        <tr ng-repeat="simfile in simfileList | filter: artistFilter | filter: titleFilter ">\r
+            <td>{{$index + 1}}</td>\r
+            <td>{{simfile.artist}}</td>\r
+            <td>{{simfile.title}}</td>\r
+        </tr>\r
+    </tbody>\r
+</table>
\ No newline at end of file
diff --git a/app/pages/simfiles/simfiles.js b/app/pages/simfiles/simfiles.js
new file mode 100644 (file)
index 0000000..ab25aab
--- /dev/null
@@ -0,0 +1,26 @@
+'use strict';
+
+angular.module("DivinElegy.pages.simfiles", ["DivinElegy.components.simfiles"])
+
+.controller("SimfileController", ['$scope', 'SimfileService', function($scope, SimfileService)
+{
+    $scope.artistFilterKeyword = null;
+    $scope.titleFilterKeyword = null;
+    $scope.simfileList = [];
+    
+    $scope.artistFilter = function (simfile) {
+        var re = new RegExp($scope.artistFilterKeyword, 'i');
+        return !$scope.artistFilterKeyword || re.test(simfile.artist);
+    };
+    
+    $scope.titleFilter = function (simfile) {
+        var re = new RegExp($scope.titleFilterKeyword, 'i');
+        return !$scope.titleFilterKeyword || re.test(simfile.title);
+    };
+
+    SimfileService.getSimfiles().success(function(response)
+    {
+        console.log(response);
+        $scope.simfileList = response;
+    });
+}]);
\ No newline at end of file