User profile stuff and more grunt magic
authorCameron Ball <cameron@getapproved.com.au>
Tue, 30 Dec 2014 07:52:53 +0000 (15:52 +0800)
committerCameron Ball <cameron@getapproved.com.au>
Tue, 30 Dec 2014 07:52:53 +0000 (15:52 +0800)
Gruntfile.js
app/components/user/user-service.js
app/css/divinelegy.css
app/index.html
app/pages/packs/packs.html
app/pages/profile/profile.html
app/pages/profile/profile.js
app/pages/simfiles/simfiles.html
package.json

index a6eb7e5..638da8c 100644 (file)
@@ -14,7 +14,7 @@ module.exports = function (grunt) {
             main: {
                 expand: true,
                 cwd: 'app/',
-                src: ['**', '!js/**', '!lib/**', '!**/*.example', '!**/*.css', '!**/*.js', '!**/bower_components/**', '!**/nbproject/**', '!**/font-awesome/**', '!npm-debug.log'],
+                src: ['**', '!**/*/*.html', '!js/**', '!lib/**', '!**/*.example', '!**/*.css', '!**/*.js', '!**/bower_components/**', '!**/nbproject/**', '!**/font-awesome/**', '!npm-debug.log'],
                 dest: 'dist/'
             },
             fa: {
@@ -31,6 +31,17 @@ module.exports = function (grunt) {
             }
         },
 
+        replace: {
+            DivinElegy: {
+                src: ['dist/js/divinelegy.min.js'],
+                overwrite: true,
+                replacements: [{
+                    from: /value\(\"rockEndpoint\",[^\)]*\)/g,
+                    to: 'value("rockEndpoint", "http://divinelegy.com/staging/rock/public_html/")'
+                }]
+            }
+        },
+
        cleanempty: {
                options: {},
                src: ['dist/**']
@@ -55,6 +66,30 @@ module.exports = function (grunt) {
                 report: 'min',
                 mangle: true
             }
+        },
+
+        ngtemplates: {
+            DivinElegy: {
+                cwd: 'app',
+                src: ['**/*.html', '!index.html'],
+                dest: '.tmp/templates.js',
+                options: {
+                    base: 'dist',
+                    module: 'DivinElegy',
+                    usemin: 'js/divinelegy.min.js',
+                    htmlmin: {
+                        collapseBooleanAttributes:      true,
+                        collapseWhitespace:             true,
+                        conservativeCollapse:           true,
+                        removeAttributeQuotes:          true,
+                        removeComments:                 true, // Only if you don't use comment directives!
+                        removeEmptyAttributes:          true,
+                        removeRedundantAttributes:      true,
+                        removeScriptTypeAttributes:     true,
+                        removeStyleLinkTypeAttributes:  true
+                    }
+                }
+            }
         }
     });
  
@@ -66,9 +101,20 @@ module.exports = function (grunt) {
     grunt.loadNpmTasks('grunt-rev');
     grunt.loadNpmTasks('grunt-usemin');
     grunt.loadNpmTasks('grunt-cleanempty');
+    grunt.loadNpmTasks('grunt-angular-templates');
+    grunt.loadNpmTasks('grunt-text-replace');
  
     // Tell Grunt what to do when we type "grunt" into the terminal
     grunt.registerTask('default', [
-        'clean', 'copy', 'cleanempty', 'useminPrepare', 'concat', 'uglify', 'cssmin', 'rev', 'usemin'
+        'clean',
+        'copy',
+        'cleanempty',
+        'useminPrepare',
+        'ngtemplates',
+        'concat',
+        'uglify',
+        'cssmin',
+        'usemin',
+        'replace'
     ]);
 };
index a5cffa4..69addbe 100644 (file)
@@ -75,6 +75,7 @@ factory("UserService", ['$rootScope', 'rockEndpoint', '$http', '$q', 'HelloServi
         }).
         success(function (data)
         {
+            UserService.updateCache();
             deferred.resolve(data);
         }).
         error(function(data, status)
index 4e6e5c4..25d59b7 100644 (file)
@@ -40,7 +40,7 @@ table {
     margin-bottom: 20px;
 }
 
-input[type="text"], select {
+input, select {
     box-sizing:content-box;
     -ms-box-sizing:content-box;
     -moz-box-sizing:content-box;
@@ -176,18 +176,18 @@ h2 {
     margin-bottom: -40px;
 }
 
-#message-box button{
+.message-box button{
     position: absolute;
     right: 10px;
     top: 5px;
 }
 
-#message-box #message {
+.message-box #message {
     display: block;
     text-align: center;
 }
 
-#message-box {
+.message-box {
     font-weight: bold;
     margin-top: 40px;
     padding: 10px;
@@ -200,7 +200,7 @@ h2 {
     position: relative;
 }
 
-#message-box .ok {
+.message-box .ok {
     display: inline-block;
     text-align: center;
     width: 32px;
@@ -213,37 +213,42 @@ h2 {
 }
 
 .de-link,
-#message-box .ok:hover {
+.message-box .ok:hover {
     cursor: pointer;
 }
 
-#message-box.hidden {
+.message-box.hidden {
     opacity: 0;
 }
 
-#message-box.info {
+.message-box.info {
     color: #3d7cb2;
     border: 3px solid #3d7cb2;
 }
 
-#message-box.success {
+.message-box.success {
     background-color: #dff2bf;
     color: #a5c084;
     border: 2px solid #a5c084;
 }
 
-#message-box.warning {
+.message-box.warning {
     background-color: #feefb3;
     color: #c9aa73;
     border: 2px solid #c9aa73;
 }
 
-#message-box.error {
+.message-box.error {
     background-color: #ffbaba;
     color: #d20000;
     border: 2px solid #d20000;
 }
 
+.modal-dialog .message-box {
+    margin-top: 0px;
+    margin-bottom: 10px;
+}
+
 .simfileListing {
     background: rgba(0,0,0,0.25);
     border: 2px solid rgba(0,0,0,0.3);
index 34c62dc..fe5d3d0 100644 (file)
@@ -27,7 +27,6 @@
         <script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.js"></script>
         <script src="bower_components/ngstorage/ngStorage.min.js"></script>
         <script src="bower_components/hello/dist/hello.all.js"></script>
-
         <script src="components/config/rockEndpoint-value.js"></script>
         <script src="components/hello/hello-service.js"></script>
         <script src="components/user/user-service.js"></script>
         <script src="components/messages/messagebox-controller.js"></script>
         <script src="components/messages/messagebox-directive.js"></script>
         <script src="components/uiSettings/uisettings-service.js"></script>
-        
         <script src="pages/index/index.js"></script>
         <script src="pages/upload/upload.js"></script>
         <script src="pages/account/account.js"></script>
         <script src="pages/profile/profile.js"></script>
         <script src="pages/simfiles/simfiles.js"></script>
         <script src="pages/packs/packs.js"></script>
-        
-        <!-- good luck cameron -->
         <script src="divinelegy.js"></script>
         <!-- endbuild -->
     </head>
     <body>
         <div class="container">
             <div class="box_full">
-                <div id="message-box" ng-controller="MessageBoxController" ng-class="{'info' : messageType == 'info',
+                <div class="message-box" ng-controller="MessageBoxController" ng-class="{'info' : messageType == 'info',
                                                                                       'warning' : messageType == 'warning',
                                                                                       'error' : messageType == 'error',
                                                                                       'success' : messageType == 'success',
                                                                                       'hidden' : hidden}">
-                    <span id="message" message="message"></span> <button class="btn btn-warning btn-xs" ng-click="hide()">X</button>
+                    <span class="message" message="message"></span> <button class="btn btn-warning btn-xs" ng-click="hide()">X</button>
                 </div>
             </div>
             <div class="box_side alpha">
index 62d63a2..f132ed9 100644 (file)
@@ -13,7 +13,6 @@
             <option value="single">Singles</option>\r
             <option value="double">Doubles</option>\r
         </select>\r
-\r
         <select ng-model="$parent.difficultyFilterKeyword">\r
             <option value="Any" disabled selected>Difficulty</option>\r
             <option value="Any">Any</option>\r
             <option value="Hard">Hard</option>\r
             <option value="Expert">Expert</option>\r
         </select>\r
-\r
         <select ng-model="$parent.fgChangesFilterKeyword">\r
             <option value="Any" disabled selected>FG Changes</option>\r
             <option value="Any">Any</option>\r
             <option value="Yes">Yes</option>\r
             <option value="No">No</option>\r
         </select>\r
-\r
         <select ng-model="$parent.bgChangesFilterKeyword">\r
             <option value="Any" disabled selected>BG Changes</option>\r
             <option value="Any">Any</option>\r
             <option value="Yes">Yes</option>\r
             <option value="No">No</option>\r
         </select>\r
-\r
         <select ng-model="$parent.bpmChangesFilterKeyword">\r
             <option value="Any" disabled selected>BPM Changes</option>\r
             <option value="Any">Any</option>\r
index 16bec5a..3559572 100644 (file)
@@ -1,6 +1,10 @@
 <div class="modal-header">
+    <div class="message-box" ng-if="!hidden" ng-class="{'error'  : messageType == 'error',
+                                                        'success': messageType == 'success'}"
+    >
+        <span class="message">{{status}}</span> <button class="btn btn-warning btn-xs" ng-click="$parent.hidden=true">X</button>
+    </div>
     <h1 class="modal-title">Public Profile</h1>
-    <h2 ng-if="status">{{status}}</h2>
 </div>
 <div class="modal-body">
     <h2>Display name</h2>
index ce94d0a..41050ed 100644 (file)
@@ -4,23 +4,37 @@ angular.module("DivinElegy.pages.profile", ['DivinElegy.components.user'])
 
 .controller("ProfileController", ['$scope', '$modalInstance', 'UserService', function($scope, $modalInstance, UserService)
 {
+    $scope.hidden = true;
+    
     UserService.getCurrentUser().then(function(user)
     {
         console.log(user);
         $scope.country = user.country;
-        $scope.email = user.email;
         $scope.displayName = user.displayName;
     });
 
     $scope.ok = function()
     {
-        var test = {displayName:"tits mcgee"};
-        UserService.updateCurrentUser(test).
+        var update = {displayName:$scope.displayName, country:$scope.country};
+        UserService.updateCurrentUser(update).
         then(function(result)
         {
             console.log(result);
-        }).
-        fail(function()
+            if(result.status === 'success')
+            {
+                $scope.hidden = false;
+                $scope.messageType = 'success';
+                $scope.status = 'Saved!';
+            }
+            
+            if(result.status === 'error')
+            {
+                $scope.hidden = false;
+                $scope.messageType = 'error';
+                $scope.status = result.messages[0];
+            }
+        },
+        function()
         {
             console.log('uh oh the spagghetti');
         });
index 8757f12..e856683 100644 (file)
@@ -12,7 +12,6 @@
             <option value="single">Singles</option>\r
             <option value="double">Doubles</option>\r
         </select>\r
-\r
         <select ng-model="difficultyFilterKeyword">\r
             <option value="Any" disabled selected>Difficulty</option>\r
             <option value="Any">Any</option>\r
             <option value="Hard">Hard</option>\r
             <option value="Expert">Expert</option>\r
         </select>\r
-\r
         <select ng-model="fgChangesFilterKeyword">\r
             <option value="Any" disabled selected>FG Changes</option>\r
             <option value="Any">Any</option>\r
             <option value="Yes">Yes</option>\r
             <option value="No">No</option>\r
         </select>\r
-\r
         <select ng-model="bgChangesFilterKeyword">\r
             <option value="Any" disabled selected>BG Changes</option>\r
             <option value="Any">Any</option>\r
             <option value="Yes">Yes</option>\r
             <option value="No">No</option>\r
         </select>\r
-\r
         <select ng-model="bpmChangesFilterKeyword">\r
             <option value="Any" disabled selected>BPM Changes</option>\r
             <option value="Any">Any</option>\r
index 0864888..70a314c 100644 (file)
@@ -20,7 +20,9 @@
     "grunt-contrib-copy": "~0.5.0",
     "grunt-rev": "~0.1.0",
     "grunt-contrib-clean": "~0.5.0",
-    "grunt-cleanempty": "~1.0.0"
+    "grunt-cleanempty": "~1.0.0",
+    "grunt-angular-templates": "~0.5.7",
+    "grunt-text-replace": "~0.4.0"
   },
   "scripts": {
     "postinstall": "bower install",