Merge branch 'feature/mixes' into develop

This commit is contained in:
Fergal Moran
2015-12-29 20:54:24 +00:00
10 changed files with 61 additions and 23 deletions

View File

@@ -32,13 +32,13 @@
"moment": "~2.9.0",
"ng-file-upload": "~3.2.4",
"ng-file-upload-shim": "~3.2.4",
"ngInfiniteScroll": "~1.2.0",
"notifyjs": "~0.3.2",
"oauth-js": "~0.4.3",
"remarkable-bootstrap-notify": "~3.1.3",
"smalot-bootstrap-datetimepicker": "~2.3.4",
"js-data-angular": "~3.1.0",
"ui-select": "angular-ui-select#~0.13.2"
"ui-select": "angular-ui-select#~0.13.2",
"ngInfiniteScroll": "~1.2.1"
},
"devDependencies": {
"angular-mocks": ">=1.2.*",

View File

@@ -15,13 +15,14 @@ angular.module('dssWebApp', [
'infinite-scroll',
'angularFileUpload',
'angulartics',
'ngClipboard',
'angular-jwt',
'http-auth-interceptor',
'angular-smilies',
'angulartics.google.analytics'
])
.config(function ($stateProvider, $sceDelegateProvider, $httpProvider, $urlRouterProvider, $locationProvider, $provide,
jwtInterceptorProvider, $analyticsProvider, dialogsProvider, DSProvider, DSHttpAdapterProvider,
ngClipProvider, jwtInterceptorProvider, $analyticsProvider, dialogsProvider, DSProvider, DSHttpAdapterProvider,
SERVER_CONFIG, STORAGE) {
$urlRouterProvider
.otherwise('/');
@@ -30,6 +31,8 @@ angular.module('dssWebApp', [
$httpProvider.defaults.useXDomain = true;
$httpProvider.interceptors.push('AuthInterceptor');
ngClipProvider.setPath("bower_components/zeroclipboard/dist/ZeroClipboard.swf");
$analyticsProvider.firstPageview(true);
$analyticsProvider.withAutoBase(true);

View File

@@ -20,13 +20,6 @@
<span>Mixes</span>
</div>
</li>
<li class="satblue">
<i class="fa fa-thumbs-up"></i>
<div class="details">
<span class="big">{{$root.currentUser.likes.length}}</span>
<span>Likes</span>
</div>
</li>
<li class="red">
<i class="fa fa-heart"></i>
<div class="details">
@@ -34,6 +27,13 @@
<span>Favourites</span>
</div>
</li>
<li class="satblue">
<i class="fa fa-thumbs-up"></i>
<div class="details">
<span class="big">{{$root.currentUser.likes.length}}</span>
<span>Likes</span>
</div>
</li>
<li class="lightred" ng-if="$root.currentUser.followers.length > 0">
<i class="fa fa-users"></i>
<div class="details">

View File

@@ -100,6 +100,19 @@ angular.module('dssWebApp')
SocketService.removeHandler('site:broadcast');
});
$scope.getMixUrl = function(mix){
var port = window.location.port;
return window.location.protocol +
"//" + window.location.hostname +
(port === '80' ? '' : ':' + port) +
$state.href('root.user.mix', {user: mix.user.slug, mix: mix.slug});
};
$scope.copyUrl = function(mix){
var url = getMixUrl(mix);
console.log("Copied URL", url);
};
$scope.showChatbar = function () {
$scope.chatVisible = !$scope.chatVisible;
};

View File

@@ -1,4 +1,4 @@
'use strict'
'use strict';
angular.module('dssWebApp')
.config(function ($stateProvider) {
$stateProvider
@@ -35,13 +35,13 @@ angular.module('dssWebApp')
controller: 'FooterCtrl'
},
'content@': {
templateUrl: 'app/views/home/home.html',
controller: 'HomeCtrl'
templateUrl: 'app/views/mixes/mixes.html',
controller: 'MixesCtrl'
}
}
})
.state('root.upload', {
url: '/upload',
url: 'upload',
resolve: {
mix: function () {
return null;
@@ -54,6 +54,23 @@ angular.module('dssWebApp')
}
}
})
.state('root.mixes', {
url: 'mixes?genres=:genre',
resolve: {
mixes: function (MixModel, $stateParams) {
return MixModel.findAll({
waveform_generated: "True",
genres__slug: $stateParams.genre
});
}
},
views: {
'content@': {
templateUrl: 'app/views/mixes/mixes.html',
controller: 'MixesCtrl'
}
}
})
.state('root.me', {
url: 'me',
resolve: {

View File

@@ -7,13 +7,13 @@ angular.module('dssWebApp')
$scope.page = 1;
$scope.nextPage = function (e) {
$scope.page++;
/*
MixModel.findAll({
page: $scope.page,
waveform_generated: "True",
is_featured: "True",
limit: 3
});
});*/
};
MixModel.bindAll(null, $scope, 'mixes');
//MixModel.bindAll(null, $scope, 'mixes');
});

View File

@@ -2,10 +2,13 @@
<div class="box-title">
<a ui-sref="root.user.mix({user: mix.user.slug, mix: mix.slug})"><h3><i class="fa fa-headphones"></i>{{mix.title}}</h3></a>
<div class="actions">
<a ng-click="editMix(mix)" class="btn btn-mini content-refresh" data-toggle="tooltip" data-title="Edit">
<btn clip-copy="getMixUrl(mix)" clip-click="copyUrl(mix)" class="btn btn-mini content-refresh" data-toggle="tooltip" data-title="Copy Link">
<i class="fa fa-copy"></i>
</btn>
<a ng-show="mix.can_edit" ng-click="editMix(mix)" class="btn btn-mini content-refresh" data-toggle="tooltip" data-title="Edit">
<i class="fa fa-pencil"></i>
</a>
<a ng-click="deleteMix(mix)" class="btn btn-mini content-remove" data-toggle="tooltip" data-title="Delete">
<a ng-show="mix.can_edit" ng-click="deleteMix(mix)" class="btn btn-mini content-remove" data-toggle="tooltip" data-title="Delete">
<i class="fa fa-times"></i>
</a>
</div>
@@ -27,7 +30,7 @@
<aside>By <a ui-sref="root.user({user: mix.user.slug})">{{mix.user.display_name}}</a></aside>
</div>
<div class="row genre-wrapper">
<span class="btn genre-btn" ng-repeat="g in mix.genres">{{g.description}}</span>
<a ui-sref="root.mixes({genre: g.slug})" class="btn genre-btn" ng-repeat="g in mix.genres">{{g.description}}</a>
</div>
<div class="row">
<div class="btn-group mix-tools" role="group" aria-label="Default button group">

View File

@@ -1,4 +1,4 @@
<div infinite-scroll="nextPage()" infinite-scroll-distance="3">
<div infinite-scroll="nextPage()" infinite-scroll-distance="0">
<div ng-repeat="mix in mixes track by mix.id" class="col-sm-6">
<dss-audio-player template="views/mixes/mixes.directive.html"></dss-audio-player>
</div>

View File

@@ -42,7 +42,7 @@ angular.module('dssWebApp')
if ($scope.detailsEntered && $scope.uploadState >= uploadStates.AUDIO_SENT &&
$scope.processingState == processingStates.PROCESSED) {
MixModel.refresh($scope.mix.slug).then(function (m) {
$state.go('root.user.mix', {user: m.user.slug, slug: m.slug});
$state.go('root.user.mix', {user: m.user.slug, mix: m.slug});
});
}
}

View File

@@ -114,7 +114,6 @@
<script src="bower_components/lodash/dist/lodash.compat.js"></script>
<script src="bower_components/ng-file-upload/angular-file-upload.js"></script>
<script src="bower_components/ng-file-upload-shim/angular-file-upload-shim.js"></script>
<script src="bower_components/ngInfiniteScroll/build/ng-infinite-scroll.js"></script>
<script src="bower_components/notifyjs/dist/notify.js"></script>
<script src="bower_components/oauth-js/dist/oauth.min.js"></script>
<script src="bower_components/remarkable-bootstrap-notify/bootstrap-notify.js"></script>
@@ -123,6 +122,7 @@
<script src="bower_components/js-data-http/dist/js-data-http.js"></script>
<script src="bower_components/js-data-angular/dist/js-data-angular.js"></script>
<script src="bower_components/ui-select/dist/select.js"></script>
<script src="bower_components/ngInfiniteScroll/build/ng-infinite-scroll.js"></script>
<!-- endbower -->
<script src="socket.io-client/socket.io.js"></script>
<!-- endbuild -->
@@ -133,6 +133,8 @@
<script src="bower_components/bootstrap/dist/js/bootstrap.js"></script>
<script src="bower_components/jasny-bootstrap/dist/js/jasny-bootstrap.js"></script>
<script src="bower_components/zeroclipboard/dist/ZeroClipboard.min.js"></script>
<script src="bower_components/ng-clip/dest/ng-clip.min.js"></script>
<script src="bower_components/angular-deferred-bootstrap/angular-deferred-bootstrap.js"></script>
<script src="bower_components/SoundManager2/script/soundmanager2-nodebug.js"></script>