mirror of
https://github.com/fergalmoran/dss.web.git
synced 2026-02-15 12:34:17 +00:00
Merge conflicts
This commit is contained in:
@@ -1,24 +1,24 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('dssWebApp', [
|
||||
'ngCookies',
|
||||
'ngResource',
|
||||
'ngAnimate',
|
||||
'ngSanitize',
|
||||
'btford.socket-io',
|
||||
'ui.router',
|
||||
'angular-loading-bar',
|
||||
'js-data',
|
||||
'ui.bootstrap',
|
||||
'dialogs.main',
|
||||
'infinite-scroll',
|
||||
'angularFileUpload',
|
||||
'angulartics',
|
||||
'angular-jwt',
|
||||
'http-auth-interceptor',
|
||||
'angular-smilies',
|
||||
'angulartics.google.analytics'
|
||||
])
|
||||
'ngCookies',
|
||||
'ngResource',
|
||||
'ngAnimate',
|
||||
'ngSanitize',
|
||||
'btford.socket-io',
|
||||
'ui.router',
|
||||
'angular-loading-bar',
|
||||
'js-data',
|
||||
'ui.bootstrap',
|
||||
'dialogs.main',
|
||||
'infinite-scroll',
|
||||
'angularFileUpload',
|
||||
'angulartics',
|
||||
'angular-jwt',
|
||||
'http-auth-interceptor',
|
||||
'angular-smilies',
|
||||
'angulartics.google.analytics'
|
||||
])
|
||||
.config(function ($stateProvider, $sceDelegateProvider, $httpProvider, $urlRouterProvider, $locationProvider, $provide,
|
||||
jwtInterceptorProvider, $analyticsProvider, dialogsProvider, DSProvider, DSHttpAdapterProvider,
|
||||
SERVER_CONFIG, STORAGE) {
|
||||
@@ -51,72 +51,84 @@ angular.module('dssWebApp', [
|
||||
]);
|
||||
$locationProvider.html5Mode(true);
|
||||
}).run(function ($http, $rootScope, $state, $anchorScroll, $window, LoginService, Session, SocketService) {
|
||||
$rootScope.isPlaying = false;
|
||||
$rootScope.isPlaying = false;
|
||||
|
||||
$rootScope.setCurrentUser = function (user) {
|
||||
console.log('Current user', user);
|
||||
$rootScope.currentUser = user;
|
||||
};
|
||||
$rootScope.connectSockets = function () {
|
||||
SocketService.connectSocket(Session.getSession());
|
||||
SocketService.registerHandler('site:broadcast', function (data) {
|
||||
console.log(data);
|
||||
$.notify({
|
||||
message: data,
|
||||
icon: '/assets/images/yeoman.png'
|
||||
}, {
|
||||
placement: {
|
||||
from: 'bottom',
|
||||
align: 'left'
|
||||
},
|
||||
icon_type: 'image'
|
||||
});
|
||||
$rootScope.setCurrentUser = function (user) {
|
||||
console.log('Current user', user);
|
||||
$rootScope.currentUser = user;
|
||||
};
|
||||
$rootScope.connectSockets = function () {
|
||||
SocketService.connectSocket(Session.getSession());
|
||||
SocketService.registerHandler('site:broadcast', function (data) {
|
||||
console.log(data);
|
||||
$.notify({
|
||||
message: data,
|
||||
icon: '/assets/images/yeoman.png'
|
||||
}, {
|
||||
placement: {
|
||||
from: 'bottom',
|
||||
align: 'left'
|
||||
},
|
||||
icon_type: 'image'
|
||||
});
|
||||
};
|
||||
|
||||
hello.init({
|
||||
facebook: '154504534677009',
|
||||
twitter: 'qmvJ6tptgd8G9T9WYp6P3Q',
|
||||
google: '248170132962-5km115budk9h84raa26hdmnnqdj8ivkl.apps.googleusercontent.com'
|
||||
}, {
|
||||
redirect_uri: '/'
|
||||
});
|
||||
};
|
||||
|
||||
//ensure login before state change
|
||||
$rootScope.$on('$stateChangeStart', function (event, toState, toParams) {
|
||||
if (!$rootScope.currentUser && Session.getLocalToken() != null && Session.getBackend()) {
|
||||
LoginService.loginUser().then(function (user) {
|
||||
LoginService.getUserProfile()
|
||||
.then(function(user){
|
||||
$rootScope.setCurrentUser(user);
|
||||
$rootScope.connectSockets();
|
||||
hello.init({
|
||||
facebook: '154504534677009',
|
||||
twitter: 'qmvJ6tptgd8G9T9WYp6P3Q',
|
||||
google: '248170132962-5km115budk9h84raa26hdmnnqdj8ivkl.apps.googleusercontent.com'
|
||||
}, {
|
||||
redirect_uri: '/'
|
||||
});
|
||||
|
||||
//ensure login before state change
|
||||
$rootScope.$on('$stateChangeStart', function (event, toState, toParams) {
|
||||
if (!$rootScope.currentUser && Session.getLocalToken() != null && Session.getBackend()) {
|
||||
LoginService.loginUser().then(function (user) {
|
||||
LoginService.getUserProfile()
|
||||
.then(function (user) {
|
||||
$rootScope.setCurrentUser(user);
|
||||
$rootScope.connectSockets();
|
||||
return $state.go(toState.name, toParams);
|
||||
});
|
||||
}, function (result) {
|
||||
console.log('Unable to login', result);
|
||||
if (result.code === 403 || result.code === 400 || result.code === 401 || result.code === 500) {
|
||||
LoginService.logoutUser()
|
||||
.then(function () {
|
||||
return $state.go(toState.name, toParams);
|
||||
});
|
||||
}, function (result) {
|
||||
console.log('Unable to login', result);
|
||||
if (result.code === 403 || result.code === 400 || result.code === 401 || result.code === 500) {
|
||||
LoginService.logoutUser()
|
||||
.then(function () {
|
||||
return $state.go(toState.name, toParams);
|
||||
});
|
||||
} else {
|
||||
debugger;
|
||||
console.error('Ooops');
|
||||
LoginService.logoutUser()
|
||||
.then(function () {
|
||||
return $state.go(toState.name, toParams);
|
||||
});
|
||||
}
|
||||
});
|
||||
event.preventDefault();
|
||||
}
|
||||
});
|
||||
$rootScope.$on('$viewContentLoaded', function (evt, absNewUrl, absOldUrl) {
|
||||
$anchorScroll();
|
||||
//$window.scrollTop(0, 0);
|
||||
});
|
||||
$rootScope.$on('$locationChangeSuccess', function (evt, absNewUrl, absOldUrl) {
|
||||
$anchorScroll();
|
||||
});
|
||||
|
||||
} else {
|
||||
debugger;
|
||||
console.error('Ooops');
|
||||
LoginService.logoutUser()
|
||||
.then(function () {
|
||||
return $state.go(toState.name, toParams);
|
||||
});
|
||||
}
|
||||
});
|
||||
event.preventDefault();
|
||||
}
|
||||
});
|
||||
$rootScope.$on('$viewContentLoaded', function (evt, absNewUrl, absOldUrl) {
|
||||
$anchorScroll();
|
||||
//$window.scrollTop(0, 0);
|
||||
});
|
||||
$rootScope.$on('$locationChangeSuccess', function (evt, absNewUrl, absOldUrl) {
|
||||
$anchorScroll();
|
||||
});
|
||||
/*
|
||||
$rootScope.$on('$stateChangeError', function (event, toState, toParams, fromState, fromParams, error) {
|
||||
console.log('$stateChangeError - fired when an error occurs during transition.');
|
||||
console.log(arguments);
|
||||
});
|
||||
$rootScope.$on('$stateChangeSuccess', function (event, toState, toParams, fromState, fromParams) {
|
||||
console.log('$stateChangeSuccess to ' + toState.name + '- fired once the state transition is complete.');
|
||||
});
|
||||
$rootScope.$on('$stateNotFound', function (event, unfoundState, fromState, fromParams) {
|
||||
console.log('$stateNotFound ' + unfoundState.to + ' - fired when a state cannot be found by its name.');
|
||||
console.log(unfoundState, fromState, fromParams);
|
||||
});
|
||||
*/
|
||||
});
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
@import 'views/mixes/mixes.less';
|
||||
@import 'views/mixes/upload/upload.less';
|
||||
@import 'views/schedule/schedule.less';
|
||||
@import 'views/users/item/userItem.less';
|
||||
@import 'views/users/users.less';
|
||||
@import 'views/user/item/userItem.less';
|
||||
@import 'views/user/user.less';
|
||||
// endinjector
|
||||
|
||||
#page-content {
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
span.text-info()
|
||||
i.fa.fa-globe
|
||||
strong
|
||||
a(ui-sref='root.users.user({slug: comment.slug})') {{comment.display_name}}
|
||||
a(ui-sref='root.user({user: comment.slug})') {{comment.display_name}}
|
||||
| commented.
|
||||
p {{comment.comment}}
|
||||
p
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
</div>
|
||||
<div class="play-progress">
|
||||
<span>
|
||||
<a ui-sref="root.mixes.mix({slug: mix.slug})">
|
||||
<a ui-sref="root.user.mix({user: mix.user.slug, mix: mix.slug})">
|
||||
{{mix.user.first_name}} - {{mix.title}}
|
||||
</a>
|
||||
</span>
|
||||
|
||||
@@ -1,18 +1,9 @@
|
||||
<div class="container-fluid">
|
||||
<a ui-sref="root.home" id="brand">Deep|South|Sounds</a>
|
||||
<a ui-sref="root" id="brand">Deep|South|Sounds</a>
|
||||
<ul class="main-nav">
|
||||
<li class="ms-hover">
|
||||
<a ui-sref="root.mixes" ui-sref-active="active">
|
||||
<span>Mixes</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="ms-hover">
|
||||
<a ui-sref="root.users" ui-sref-active="active">
|
||||
<span>Users</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="ms-hover" ng-if="$root.currentUser">
|
||||
<a ui-sref="root.upload" ui-sref-active="active">
|
||||
<i class="fa fa-cloud-upload"></i>
|
||||
<span>Upload</span>
|
||||
</a>
|
||||
</li>
|
||||
@@ -39,7 +30,7 @@
|
||||
<span class="label label-lightred">{{notificationCount}}</span>
|
||||
</a>
|
||||
<ul class="dropdown-menu pull-right message-ul">
|
||||
<dss-notifications />
|
||||
<dss-notifications/>
|
||||
<li>
|
||||
<a href="components-messages.html" class="more-messages">Go to Message center
|
||||
<i class="fa fa-arrow-right"></i>
|
||||
@@ -54,7 +45,7 @@
|
||||
</a>
|
||||
<ul class="dropdown-menu pull-right">
|
||||
<li>
|
||||
<a ui-sref="root.me">Edit profile</a>
|
||||
<a ui-sref="root.me">View profile</a>
|
||||
</li>
|
||||
<li>
|
||||
<a ui-sref="root.me.edit">Account settings</a>
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('dssWebApp')
|
||||
.controller('SidebarCtrl', function ($scope) {
|
||||
|
||||
});
|
||||
@@ -1,21 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
describe('Controller: SidebarCtrl', function () {
|
||||
|
||||
// load the controller's module
|
||||
beforeEach(module('dssWebApp'));
|
||||
|
||||
var SidebarCtrl, scope;
|
||||
|
||||
// Initialize the controller and a mock scope
|
||||
beforeEach(inject(function ($controller, $rootScope) {
|
||||
scope = $rootScope.$new();
|
||||
SidebarCtrl = $controller('SidebarCtrl', {
|
||||
$scope: scope
|
||||
});
|
||||
}));
|
||||
|
||||
it('should ...', function () {
|
||||
expect(1).toEqual(1);
|
||||
});
|
||||
});
|
||||
@@ -1,133 +0,0 @@
|
||||
<nav class="navbar navbar-default" role="navigation">
|
||||
<div class="side-menu-container">
|
||||
<div class="navbar-header">
|
||||
<a class="navbar-brand" href="#">
|
||||
<div class="icon fa fa-paper-plane"></div>
|
||||
<div class="title">Flat Admin V.2</div>
|
||||
</a>
|
||||
<button type="button" class="navbar-expand-toggle pull-right visible-xs">
|
||||
<i class="fa fa-times icon"></i>
|
||||
</button>
|
||||
</div>
|
||||
<ul class="nav navbar-nav">
|
||||
<li ng-if="$root.currentUser" class="purple">
|
||||
<a ui-sref="root.upload" ui-sref-active="active">
|
||||
<i
|
||||
class="sidebar-nav-icon fa fa-upload fa-white"></i>Upload
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a ui-sref="root.mixes" ui-sref-active="active">
|
||||
<i class="sidebar-nav-icon fa fa-music"></i>Mixes
|
||||
</a>
|
||||
<b class="arrow"></b>
|
||||
</li>
|
||||
<li>
|
||||
<a ui-sref="root.schedule" ui-sref-active="active">
|
||||
<i class="sidebar-nav-icon fa fa-calendar"></i>Schedule
|
||||
</a>
|
||||
<b class="arrow"></b>
|
||||
</li>
|
||||
<li ng-if="isInRole('admin')">
|
||||
<a ui-sref="root.radio" ui-sref-active="active">
|
||||
<i class="sidebar-nav-icon fa fa-signal"></i>Radio Admin
|
||||
</a>
|
||||
<b class="arrow"></b>
|
||||
</li>
|
||||
<li>
|
||||
<a ui-sref="root.users" ui-sref-active="active">
|
||||
<i
|
||||
class="sidebar-nav-icon fa fa-user"></i>Users
|
||||
</a>
|
||||
</li>
|
||||
<li ng-if="$root.currentUser" class="purple">
|
||||
<a ui-sref-active="active" ui-sref="root.me">
|
||||
<i
|
||||
class="sidebar-nav-icon fa fa-users"></i>My Profile
|
||||
</a>
|
||||
</li>
|
||||
<li ng-if="$root.currentUser">
|
||||
<a ui-sref-active="active" ui-sref="root.me.edit">
|
||||
<i
|
||||
class="sidebar-nav-icon fa fa-cogs"></i>Settings
|
||||
</a>
|
||||
</li>
|
||||
<li ng-if="$root.currentUser && False">
|
||||
<a id="header-stream-button" ui-sref-active="active"
|
||||
href="/stream"
|
||||
title="Show mixes from people you follow">
|
||||
<i
|
||||
class="sidebar-nav-icon fa fa-dot-circle-o fa-white"></i>Stream
|
||||
</a>
|
||||
</li>
|
||||
<li ng-if="False">
|
||||
<a id="header-random-button" ui-sref-active="active" data-bypass="true"
|
||||
title="Show random mix from our vaults">
|
||||
<i class="sidebar-nav-icon fa fa-cogs"></i>Random
|
||||
</a>
|
||||
</li>
|
||||
<li ng-if="False">
|
||||
<a ui-sref-active="active" data-bypass="true" target="_blank" href="/podcast">
|
||||
<i
|
||||
class="sidebar-nav-icon fa fa-rss"></i>Podcast
|
||||
</a>
|
||||
</li>
|
||||
<li ng-if="liveEnabled" class="purple">
|
||||
<a id="header-live-button" ui-sref-active="active" data-bypass="true"
|
||||
class="btn-success">
|
||||
<i id="header-live-icon"
|
||||
class="sidebar-nav-icon fa fa-headphones"></i>Listen
|
||||
Live
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- /.navbar-collapse -->
|
||||
</nav>
|
||||
|
||||
<div class="sidebar-scroll">
|
||||
<div class="sidebar-content">
|
||||
<a href="/" class="sidebar-brand">
|
||||
<i class="fa fa-2x fa-heartbeat"></i><span>Deep<small>south</small>Sounds</span>
|
||||
</a>
|
||||
|
||||
<div id="sidebar-currentuser" ng-if="$root.currentUser" class="sidebar-section sidebar-user clearfix">
|
||||
<div class="sidebar-user-avatar">
|
||||
<a ui-sref="root.users.user({slug: $root.currentUser.slug})">
|
||||
<img
|
||||
ng-src="{{$root.currentUser.profile_image_medium}}" alt="avatar"/>
|
||||
</a>
|
||||
</div>
|
||||
<a ui-sref="root.users.user({slug: $root.currentUser.slug})" class="sidebar-user-name">{{$root.currentUser.display_name}}</a>
|
||||
|
||||
<div class="sidebar-user-links">
|
||||
<a ui-sref="root.users.user({slug: $root.currentUser.slug})"
|
||||
data-toggle="tooltip" data-placement="bottom"
|
||||
title="Profile">
|
||||
<i class="fa fa-user"></i>
|
||||
</a>
|
||||
<a href="#"
|
||||
data-toggle="tooltip"
|
||||
data-placement="bottom"
|
||||
title="Messages">
|
||||
<i class="fa fa-envelope-o"></i>
|
||||
</a>
|
||||
<a ui-sref="root.users.edit({slug: $root.currentUser.slug})"
|
||||
data-toggle="tooltip" data-placement="bottom"
|
||||
title="Settings" class="enable-tooltip">
|
||||
<i
|
||||
class="fa fa-cogs"></i>
|
||||
</a>
|
||||
<a href="#" ng-click="logout()"
|
||||
data-toggle="tooltip" title="Logout">
|
||||
<i class="fa fa-sign-out"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="sidebar-section sidebar-nav-mini-hide">
|
||||
<dss-radio-player></dss-radio-player>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -6,7 +6,7 @@ ul.timeline-list
|
||||
small {{item.date|humanise}}
|
||||
.timeline-content
|
||||
p.push-bit
|
||||
a(ui-sref='root.users.user({slug: item.from_user.slug})')
|
||||
a(ui-sref='root.user({user: item.from_user.slug})')
|
||||
strong {{item.from_user.display_name}}
|
||||
p.push-bit {{item.verb}}
|
||||
a(ng-href="{{item.object_type}}/{{item.object_slug}}")
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div style="left: 56px;" class="meta-artist-con hidden-xs">
|
||||
<a ui-sref="root.users.user({slug: mix.user.slug})"
|
||||
<a ui-sref="root.user({user: mix.user.slug})"
|
||||
class="the-artist ng-binding">
|
||||
{{mix.user.display_name}}
|
||||
</a>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<li ng-repeat="notification in notifications">
|
||||
<a ui-sref="root.mixes.mix({slug: notification.target})"
|
||||
ng-class="notification.accepted_date ? '' : 'notification-new'">
|
||||
<a ui-sref="root.users.mix({user: mix.user.slug, mix: notification.target})"
|
||||
ng-class="notification.accepted_date ? '' : 'notification-new'">
|
||||
<img ng-src="{{notification.from_user.profile_image_small}}" alt="">
|
||||
<div class="details">
|
||||
<div class="name">
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
.navbar-notification-feed{
|
||||
overflow: scroll;
|
||||
overflow-x: hidden;
|
||||
.navbar-notification-feed {
|
||||
overflow: scroll;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
.notification-new .message{
|
||||
font-weight: bold;
|
||||
.notification-new {
|
||||
font-weight: bold!important;
|
||||
}
|
||||
|
||||
|
||||
@@ -41,36 +41,12 @@ angular.module('dssWebApp')
|
||||
$scope.currentTheme = element.currentTarget.getAttribute("data-theme");
|
||||
localStorage.setItem('dss__theme__', $scope.currentTheme);
|
||||
};
|
||||
$scope.toggleSidebar = function () {
|
||||
var $page = $('#page-container');
|
||||
var windowW = utils.getWindowWidth();
|
||||
if (windowW > 991) { // Toggle main sidebar in large screens (> 991px)
|
||||
$page.toggleClass('sidebar-visible-lg');
|
||||
if ($page.hasClass('sidebar-mini')) {
|
||||
$page.toggleClass('sidebar-visible-lg-mini');
|
||||
}
|
||||
if ($page.hasClass('sidebar-visible-lg')) {
|
||||
$scope.closeSidebarAlt();
|
||||
}
|
||||
} else { // Toggle main sidebar in small screens (< 992px)
|
||||
$page.toggleClass('sidebar-visible-xs');
|
||||
if ($page.hasClass('sidebar-visible-xs')) {
|
||||
$scope.closeSidebarAlt();
|
||||
}
|
||||
}
|
||||
};
|
||||
$scope.startChat = function (slug) {
|
||||
console.log("Starting chat", slug);
|
||||
UserModel.find(slug).then(function (user) {
|
||||
$rootScope.isMessaging = true;
|
||||
$rootScope.$broadcast(CHAT_EVENTS.startChat, user);
|
||||
});
|
||||
};
|
||||
$scope.closeSidebarAlt = function () {
|
||||
|
||||
};
|
||||
$scope.openSidebarAlt = function () {
|
||||
|
||||
};
|
||||
$scope.$on(AUTH_EVENTS.loginSuccess, function (event, user) {
|
||||
$scope.setCurrentUser(user);
|
||||
@@ -129,7 +105,7 @@ angular.module('dssWebApp')
|
||||
};
|
||||
|
||||
$scope.editMix = function (mix) {
|
||||
$state.go('root.edit', {slug: mix.slug});
|
||||
$state.go('root.user.mix.edit', {mix: mix.slug});
|
||||
};
|
||||
|
||||
$scope.deleteMix = function (mix) {
|
||||
@@ -140,7 +116,7 @@ angular.module('dssWebApp')
|
||||
dlg.result.then(function (result) {
|
||||
if (result) {
|
||||
MixModel.destroy(mix.slug).then(function () {
|
||||
$state.go('root.mixes');
|
||||
$state.go('root');
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
'use strict'
|
||||
angular.module('dssWebApp')
|
||||
.config(function ($stateProvider) {
|
||||
$stateProvider
|
||||
.state('root', {
|
||||
url: '',
|
||||
abstract: true,
|
||||
views: {
|
||||
'navbar': {
|
||||
templateUrl: 'app/components/navbar/navbar.html',
|
||||
controller: 'NavbarCtrl'
|
||||
},
|
||||
'pageheader': {
|
||||
templateUrl: 'app/components/pageheader/pageheader.html',
|
||||
controller: 'PageheaderCtrl'
|
||||
},
|
||||
'sidebar': {
|
||||
templateUrl: 'app/components/sidebar/sidebar.html',
|
||||
controller: 'SidebarCtrl'
|
||||
},
|
||||
'chatbar': {
|
||||
templateUrl: 'app/components/chatbar/chatbar.html',
|
||||
controller: 'ChatbarCtrl'
|
||||
},
|
||||
'footer': {
|
||||
templateUrl: 'app/components/footer/footer.html',
|
||||
controller: 'FooterCtrl'
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
134
client/app/routes.js
Executable file
134
client/app/routes.js
Executable file
@@ -0,0 +1,134 @@
|
||||
'use strict'
|
||||
angular.module('dssWebApp')
|
||||
.config(function ($stateProvider) {
|
||||
$stateProvider
|
||||
.state('root', {
|
||||
url: '/',
|
||||
controller: function ($scope) {
|
||||
$scope.$watch('currentUser', function () {
|
||||
$state.reload();
|
||||
});
|
||||
},
|
||||
resolve: {
|
||||
mixes: function (MixModel) {
|
||||
return MixModel.findAll({
|
||||
waveform_generated: "True",
|
||||
is_featured: "True"
|
||||
});
|
||||
}
|
||||
},
|
||||
views: {
|
||||
'navbar': {
|
||||
templateUrl: 'app/components/navbar/navbar.html',
|
||||
controller: 'NavbarCtrl'
|
||||
},
|
||||
'pageheader': {
|
||||
templateUrl: 'app/components/pageheader/pageheader.html',
|
||||
controller: 'PageheaderCtrl'
|
||||
},
|
||||
'chatbar': {
|
||||
templateUrl: 'app/components/chatbar/chatbar.html',
|
||||
controller: 'ChatbarCtrl'
|
||||
},
|
||||
'footer': {
|
||||
templateUrl: 'app/components/footer/footer.html',
|
||||
controller: 'FooterCtrl'
|
||||
},
|
||||
'content@': {
|
||||
templateUrl: 'app/views/home/home.html',
|
||||
controller: 'HomeCtrl'
|
||||
}
|
||||
}
|
||||
})
|
||||
.state('root.upload', {
|
||||
url: '/upload',
|
||||
resolve: {
|
||||
mix: function () {
|
||||
return null;
|
||||
}
|
||||
},
|
||||
views: {
|
||||
'content@': {
|
||||
templateUrl: 'app/views/mixes/upload/upload.html',
|
||||
controller: 'MixUploadCtrl'
|
||||
}
|
||||
}
|
||||
})
|
||||
.state('root.me', {
|
||||
url: 'me',
|
||||
resolve: {
|
||||
user: function ($rootScope, UserModel) {
|
||||
return UserModel.find($rootScope.currentUser.slug);
|
||||
}
|
||||
},
|
||||
views: {
|
||||
'content@': {
|
||||
templateUrl: 'app/views/user/item/userItem.html',
|
||||
controller: 'UserItemCtrl'
|
||||
}
|
||||
}
|
||||
})
|
||||
.state('root.me.edit', {
|
||||
url: '/edit',
|
||||
resolve: {
|
||||
user: function ($rootScope, UserModel) {
|
||||
return UserModel.findAll({slug: $rootScope.currentUser.slug});
|
||||
}
|
||||
},
|
||||
views: {
|
||||
'content@': {
|
||||
templateUrl: 'app/views/user/edit/userEdit.html',
|
||||
controller: 'UserEditCtrl'
|
||||
}
|
||||
}
|
||||
})
|
||||
.state('root.user', {
|
||||
url: ':user',
|
||||
resolve: {
|
||||
user: function ($stateParams, UserModel) {
|
||||
return UserModel.find($stateParams.user);
|
||||
}
|
||||
},
|
||||
views: {
|
||||
'content@': {
|
||||
templateUrl: 'app/views/user/item/userItem.html',
|
||||
controller: 'UserItemCtrl'
|
||||
}
|
||||
}
|
||||
})
|
||||
.state('root.user.mix', {
|
||||
url: '/:mix',
|
||||
resolve: {
|
||||
mix: function ($stateParams, MixModel) {
|
||||
return MixModel.find($stateParams.mix);
|
||||
},
|
||||
comments: function ($stateParams, CommentModel) {
|
||||
return CommentModel.findAll({
|
||||
mix__slug: $stateParams.mix,
|
||||
ordering: '-id'
|
||||
});
|
||||
}
|
||||
},
|
||||
views: {
|
||||
'content@': {
|
||||
templateUrl: 'app/views/mixes/item/mix.html',
|
||||
controller: 'MixCtrl'
|
||||
}
|
||||
}
|
||||
})
|
||||
.state('root.user.mix.edit', {
|
||||
url: '/edit',
|
||||
resolve: {
|
||||
mix: function ($stateParams, MixModel) {
|
||||
var ret = MixModel.find($stateParams.mix);
|
||||
return ret;
|
||||
}
|
||||
},
|
||||
views: {
|
||||
'content@': {
|
||||
templateUrl: 'app/views/mixes/upload/upload.html',
|
||||
controller: 'MixUploadCtrl'
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -1,28 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
describe('Controller: MainCtrl', function () {
|
||||
|
||||
// load the controller's module
|
||||
beforeEach(module('dssWebApp'));
|
||||
|
||||
var HomeCtrl,
|
||||
scope,
|
||||
$httpBackend;
|
||||
|
||||
// Initialize the controller and a mock scope
|
||||
beforeEach(inject(function (_$httpBackend_, $controller, $rootScope) {
|
||||
$httpBackend = _$httpBackend_;
|
||||
$httpBackend.expectGET('/api/things')
|
||||
.respond(['HTML5 Boilerplate', 'AngularJS', 'Karma', 'Express']);
|
||||
|
||||
scope = $rootScope.$new();
|
||||
HomeCtrl = $controller('HomeCtrl', {
|
||||
$scope: scope
|
||||
});
|
||||
}));
|
||||
|
||||
it('should attach a list of things to the scope', function () {
|
||||
$httpBackend.flush();
|
||||
expect(scope.awesomeThings.length).toBe(4);
|
||||
});
|
||||
});
|
||||
@@ -1,28 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('dssWebApp')
|
||||
.config(function ($stateProvider) {
|
||||
$stateProvider
|
||||
.state('root.home', {
|
||||
url: '/',
|
||||
controller: function ($scope) {
|
||||
$scope.$watch('currentUser', function () {
|
||||
$state.reload();
|
||||
});
|
||||
},
|
||||
resolve: {
|
||||
mixes: function (MixModel) {
|
||||
return MixModel.findAll({
|
||||
waveform_generated: "True",
|
||||
is_featured: "True"
|
||||
});
|
||||
}
|
||||
},
|
||||
views: {
|
||||
'content@': {
|
||||
templateUrl: 'app/views/home/home.html',
|
||||
controller: 'HomeCtrl'
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -1,33 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('dssWebApp')
|
||||
.config(function ($stateProvider) {
|
||||
$stateProvider
|
||||
.state('root.me', {
|
||||
url: '/me',
|
||||
resolve: {
|
||||
user: function ($rootScope, UserModel) {
|
||||
return UserModel.find($rootScope.currentUser.slug);
|
||||
}
|
||||
},
|
||||
views: {
|
||||
'content@': {
|
||||
templateUrl: 'app/views/users/item/userItem.html',
|
||||
controller: 'UserItemCtrl'
|
||||
}
|
||||
}
|
||||
}).state('root.me.edit', {
|
||||
url: '/edit',
|
||||
resolve: {
|
||||
user: function ($rootScope, UserModel) {
|
||||
return UserModel.findAll({slug: $rootScope.currentUser.slug});
|
||||
}
|
||||
},
|
||||
views: {
|
||||
'content@': {
|
||||
templateUrl: 'app/views/users/edit/userEdit.html',
|
||||
controller: 'UserEditCtrl'
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -1,4 +1,4 @@
|
||||
'use strict'
|
||||
'use strict';
|
||||
|
||||
angular.module('dssWebApp')
|
||||
.controller('MixCtrl', function ($scope, mix, comments) {
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
'use strict'
|
||||
|
||||
angular.module('dssWebApp')
|
||||
.config(['$stateProvider', function ($stateProvider) {
|
||||
$stateProvider
|
||||
.state('root.mixes.mix', {
|
||||
url: '/:slug',
|
||||
resolve: {
|
||||
mix: function ($stateParams, MixModel) {
|
||||
return MixModel.find($stateParams.slug);
|
||||
},
|
||||
comments: function ($stateParams, CommentModel) {
|
||||
return CommentModel.findAll({
|
||||
mix__slug: $stateParams.slug,
|
||||
ordering: '-id'
|
||||
});
|
||||
}
|
||||
},
|
||||
views: {
|
||||
'content@': {
|
||||
templateUrl: 'app/views/mixes/item/mix.html',
|
||||
controller: 'MixCtrl'
|
||||
}
|
||||
}
|
||||
})
|
||||
}]);
|
||||
@@ -1,7 +1,7 @@
|
||||
<div class="box">
|
||||
<div class="box-title">
|
||||
<a ui-sref="root.mixes.mix({slug: mix.slug})"><h3><i class="fa fa-headphones"></i>{{mix.title}}</h3></a>
|
||||
<div class="actions" ng-show="$root.currentUser">
|
||||
<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">
|
||||
<i class="fa fa-pencil"></i>
|
||||
</a>
|
||||
@@ -24,7 +24,7 @@
|
||||
<h4></h4>
|
||||
</div>
|
||||
<div class="row">
|
||||
<aside>By <a ui-sref="root.users.user({slug: mix.user.slug})">{{mix.user.display_name}}</a></aside>
|
||||
<aside>By <a ui-sref="root.user({user: mix.user.slug})">{{mix.user.display_name}}</a></aside>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="btn-group mix-tools" role="group" aria-label="Default button group">
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('dssWebApp')
|
||||
.config(['$stateProvider', function ($stateProvider) {
|
||||
$stateProvider
|
||||
.state('root.mixes', {
|
||||
url: '/mix',
|
||||
resolve: {
|
||||
mixes: function (MixModel) {
|
||||
return MixModel.findAll({
|
||||
waveform_generated: "True",
|
||||
is_featured: "True"
|
||||
});
|
||||
}
|
||||
},
|
||||
views: {
|
||||
'content@': {
|
||||
templateUrl: 'app/views/mixes/mixes.html',
|
||||
controller: 'MixesCtrl'
|
||||
}
|
||||
}
|
||||
});
|
||||
}]);
|
||||
@@ -38,7 +38,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.mixes.mix', {slug: m.slug});
|
||||
$state.go('root.user.mix', {user: m.user.slug, slug: m.slug});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('dssWebApp')
|
||||
.config(['$stateProvider', function ($stateProvider) {
|
||||
$stateProvider
|
||||
.state('root.upload', {
|
||||
url: '/upload',
|
||||
resolve: {
|
||||
mix: function () {
|
||||
return null;
|
||||
}
|
||||
},
|
||||
views: {
|
||||
'content@': {
|
||||
templateUrl: 'app/views/mixes/upload/upload.html',
|
||||
controller: 'MixUploadCtrl'
|
||||
}
|
||||
}
|
||||
}).state('root.edit', {
|
||||
url: '/edit/:slug',
|
||||
resolve: {
|
||||
mix: function ($stateParams, MixModel) {
|
||||
var ret = MixModel.find($stateParams.slug);
|
||||
return ret;
|
||||
}
|
||||
},
|
||||
views: {
|
||||
'content@': {
|
||||
templateUrl: 'app/views/mixes/upload/upload.html',
|
||||
controller: 'MixUploadCtrl'
|
||||
}
|
||||
}
|
||||
});
|
||||
}]);
|
||||
@@ -1,15 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('dssWebApp')
|
||||
.config(function ($stateProvider) {
|
||||
$stateProvider
|
||||
.state('root.radio', {
|
||||
url: '/radio',
|
||||
views: {
|
||||
'content@': {
|
||||
templateUrl: 'app/views/radio/radio.html',
|
||||
controller: 'RadioAdminCtrl'
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -1,19 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('dssWebApp')
|
||||
.config(function ($stateProvider) {
|
||||
$stateProvider
|
||||
.state('root.schedule', {
|
||||
url: '/schedule',
|
||||
views: {
|
||||
'content@': {
|
||||
templateUrl: 'app/views/schedule/schedule.html',
|
||||
controller: 'ScheduleCtrl'
|
||||
}
|
||||
}, resolve: {
|
||||
shows: function (ShowModel) {
|
||||
return ShowModel.findAll({});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -16,7 +16,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-content">
|
||||
<a ui-sref="root.mixes.mix({slug: mix.slug})"><img ng-src="{{mix.mix_image}}"/>
|
||||
<a ui-sref="root.user.mix({user: mix.user.slug, mix: mix.slug})"><img ng-src="{{mix.mix_image}}"/>
|
||||
</a>
|
||||
<h5>{{mix.title}}</h5>
|
||||
</div>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<a ui-sref="root.mixes.mix({slug: match.model.slug})">
|
||||
<a ui-sref="root.user.mix({user: mix.user.slug, mix: mix.slug})">
|
||||
<div class="widget">
|
||||
<div class="widget-simple">
|
||||
<div href="javascript:void(0)" class="widget-icon pull-left animation-fadeIn themed-background">
|
||||
|
||||
89
client/app/views/user/edit/userEdit.html
Normal file
89
client/app/views/user/edit/userEdit.html
Normal file
@@ -0,0 +1,89 @@
|
||||
<div class="col-md-6">
|
||||
<div class="block">
|
||||
<div class="block-title">
|
||||
<h2><strong>My Details</strong></h2>
|
||||
</div>
|
||||
<form class="form-horizontal form-bordered">
|
||||
<div class="fieldset">
|
||||
<div class="form-group">
|
||||
<div class="col-md-4">
|
||||
<label class="control-label">Display Name</label>
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<input type="text" ng-model="vm.user.display_name" ng-blur="updateUser()" class="form-control"/>
|
||||
</div>
|
||||
</div>
|
||||
<div ng-class="{'has-error': vm.slugError}" class="form-group">
|
||||
<div class="col-md-4">
|
||||
<label class="control-label">Profile Url</label>
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<div class="input-group">
|
||||
<input type="text" ng-model="vm.tempSlug" ng-change="checkSlug()" ng-blur="saveSlug()" class="form-control"/><span class="input-group-addon"><i ng-class="{'fa-spin': vm.slugChanging || vm.slugError, 'text-danger': vm.slugError}" class="fa fa-asterisk"></i></span>
|
||||
</div><span ng-show="!vm.slugError" class="help-block">Your profile URL will be /users/{{vm.tempSlug}}</span><span ng-show="vm.slugError" class="help-block animation-slideDown">Slug must be unique</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-md-4">
|
||||
<label class="control-label">Email Address</label>
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<input type="text" ng-model="vm.user.email" ng-blur="updateUser()" class="form-control"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="block">
|
||||
<div class="block-title">
|
||||
<h2><i class="ace-icon fa fa-share green"></i><strong></strong> Sharing</h2>
|
||||
</div>
|
||||
<form class="form-horizontal form-bordered">
|
||||
<div class="form-group">
|
||||
<label class="col-md-2 control-label"><i class="fa fa-facebook"></i> Facebook</label>
|
||||
<div class="col-md-10">
|
||||
<label ng-repeat="item in sharing_options" ng-model="vm.user.activity_sharing_facebook" checkbox-bitfield="" ng-change="updateUser()" class="radio-inline">
|
||||
<input type="checkbox" value="{{item.power}}"/> {{item.abbr}}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-md-2 control-label"><i class="fa fa-twitter"></i> Twitter</label>
|
||||
<div class="col-md-10">
|
||||
<label ng-repeat="item in sharing_options" ng-model="vm.user.activity_sharing_twitter" checkbox-bitfield="" ng-change="updateUser()" class="radio-inline">
|
||||
<input type="checkbox" value="{{item.power}}"/> {{item.abbr}}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="block">
|
||||
<div class="block-title">
|
||||
<h2><i class="fa fa-envelope"></i><strong></strong> Email Notifications</h2>
|
||||
</div>
|
||||
<form class="form-horizontal form-bordered">
|
||||
<div class="form-group">
|
||||
<label ng-repeat="item in sharing_options" ng-model="vm.user.email_notifications" checkbox-bitfield="" ng-change="updateUser()" class="radio-inline">
|
||||
<input type="checkbox" value="{{item.power}}"/> {{item.abbr}}
|
||||
</label>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="block">
|
||||
<div class="block-title">
|
||||
<div class="block-options pull-right"><a ng-click="updateUser()" class="btn btn-alt btn-sm btn-default"><i class="fa fa-save"></i></a></div>
|
||||
<h2><strong>My Description</strong><small>This is experimental feedback appreciated </small></h2>
|
||||
</div>
|
||||
<form class="form-horizontal form-bordered">
|
||||
<fieldset>
|
||||
<div class="form-group">
|
||||
<div class="col-xs-12">
|
||||
<textarea dss-ckeditor="dss-ckeditor" on-change="updateDescription()" ng-model="vm.user.description" blur="updateUser()" ng-blur="updateUser()"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@@ -34,7 +34,7 @@
|
||||
</div>
|
||||
<div class="box-content">
|
||||
<div ng-repeat="follower in user.followers" class="col-xs-4 col-sm-3 col-lg-2 block-section">
|
||||
<a ui-sref="root.users.user({slug: follower.slug})">
|
||||
<a ui-sref="root.user({user: follower.slug})">
|
||||
<img ng-src="{{follower.profile_image_small}}" alt="image" data-toggle="tooltip"
|
||||
title="{{follower.display_name}}" class="img-circle user-profile-insert"/>
|
||||
</a>
|
||||
@@ -4,7 +4,7 @@ angular.module('dssWebApp')
|
||||
.controller('UserItemCtrl', function ($scope, UserModel, MixModel, user, logger) {
|
||||
logger.logSuccess('UserItemCtrl', $scope);
|
||||
$scope.user = user;
|
||||
$scope.showLatest = function(){
|
||||
$scope.showLatest = function () {
|
||||
$scope.mixTitle = "Latest";
|
||||
MixModel.findAll({
|
||||
user__slug: user.slug,
|
||||
@@ -15,7 +15,7 @@ angular.module('dssWebApp')
|
||||
$scope.mixPage = 1;
|
||||
});
|
||||
};
|
||||
$scope.showPopular = function(){
|
||||
$scope.showPopular = function () {
|
||||
$scope.mixTitle = "Popular";
|
||||
MixModel.findAll({
|
||||
user__slug: user.slug,
|
||||
@@ -1,6 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('dssWebApp')
|
||||
.controller('UsersCtrl', function ($scope, users) {
|
||||
.controller('UserCtrl', function ($scope, users) {
|
||||
$scope.users = users;
|
||||
});
|
||||
@@ -1,7 +1,7 @@
|
||||
<div class="col-sm-4 col-md-4" ng-repeat="user in users">
|
||||
<div class="post">
|
||||
<div class="post-img-content">
|
||||
<a ui-sref="root.users.user({slug: user.slug})">
|
||||
<a ui-sref="root.user({user: user.slug})">
|
||||
<img class="userlist-profile-image" ng-src="{{user.profile_image_medium}}" class="img-responsive"/>
|
||||
</a>
|
||||
<br/>
|
||||
@@ -24,10 +24,10 @@
|
||||
<img ng-src="{{user.profile_image_header}}" alt="background"
|
||||
class="widget-background animation-pulseSlow">
|
||||
<h3 class="widget-content widget-content-image widget-content-light clearfix">
|
||||
<a ui-sref="root.users.user({slug: user.slug})" class="pull-right">
|
||||
<a ui-sref="root.user({user: user.slug})" class="pull-right">
|
||||
<img ng-src="{{user.profile_image_medium}}" alt="avatar" class="widget-image img-circle">
|
||||
</a>
|
||||
<a ui-sref="root.users.user({slug: user.slug})"
|
||||
<a ui-sref="root.user({user: user.slug})"
|
||||
class="themed-color-autumn">{{user.display_name}}</a>
|
||||
<br>
|
||||
<small>{{user.title}}</small>
|
||||
@@ -1,86 +0,0 @@
|
||||
.col-md-6
|
||||
.block
|
||||
.block-title
|
||||
h2
|
||||
strong My Details
|
||||
form.form-horizontal.form-bordered
|
||||
.fieldset
|
||||
.form-group
|
||||
.col-md-4
|
||||
label.control-label Display Name
|
||||
.col-md-8
|
||||
input.form-control(type='text', ng-model="vm.user.display_name" ng-blur="updateUser()")
|
||||
.form-group(ng-class="{'has-error': vm.slugError}")
|
||||
.col-md-4
|
||||
label.control-label Profile Url
|
||||
.col-md-8
|
||||
.input-group
|
||||
input.form-control(type='text', ng-model="vm.tempSlug" ng-change="checkSlug()" ng-blur="saveSlug()")
|
||||
span.input-group-addon
|
||||
i.fa.fa-asterisk(
|
||||
ng-class="{'fa-spin': vm.slugChanging || vm.slugError, 'text-danger': vm.slugError}"
|
||||
)
|
||||
span.help-block(ng-show='!vm.slugError') Your profile URL will be /users/{{vm.tempSlug}}
|
||||
span.help-block.animation-slideDown(ng-show="vm.slugError") Slug must be unique
|
||||
.form-group
|
||||
.col-md-4
|
||||
label.control-label Email Address
|
||||
.col-md-8
|
||||
input.form-control(type='text', ng-model="vm.user.email" ng-blur="updateUser()")
|
||||
.block
|
||||
.block-title
|
||||
h2
|
||||
i.ace-icon.fa.fa-share.green
|
||||
strong
|
||||
| Sharing
|
||||
form.form-horizontal.form-bordered
|
||||
.form-group
|
||||
label.col-md-2.control-label
|
||||
i.fa.fa-facebook
|
||||
| Facebook
|
||||
.col-md-10
|
||||
label.radio-inline(ng-repeat='item in sharing_options', ng-model='vm.user.activity_sharing_facebook', checkbox-bitfield=''
|
||||
ng-change="updateUser()")
|
||||
input(type='checkbox', value='{{item.power}}')
|
||||
| {{item.abbr}}
|
||||
.form-group
|
||||
label.col-md-2.control-label
|
||||
i.fa.fa-twitter
|
||||
| Twitter
|
||||
.col-md-10
|
||||
label.radio-inline(ng-repeat='item in sharing_options', ng-model='vm.user.activity_sharing_twitter', checkbox-bitfield=''
|
||||
ng-change="updateUser()")
|
||||
input(type='checkbox', value='{{item.power}}')
|
||||
| {{item.abbr}}
|
||||
.block
|
||||
.block-title
|
||||
h2
|
||||
i.fa.fa-envelope
|
||||
strong
|
||||
| Email Notifications
|
||||
form.form-horizontal.form-bordered
|
||||
.form-group
|
||||
label.radio-inline(ng-repeat='item in sharing_options', ng-model='vm.user.email_notifications', checkbox-bitfield=''
|
||||
ng-change="updateUser()")
|
||||
input(type='checkbox', value='{{item.power}}')
|
||||
| {{item.abbr}}
|
||||
.col-md-6
|
||||
.block
|
||||
.block-title
|
||||
.block-options.pull-right
|
||||
a.btn.btn-alt.btn-sm.btn-default(ng-click="updateUser()")
|
||||
i.fa.fa-save
|
||||
h2
|
||||
strong My Description
|
||||
small This is experimental feedback appreciated
|
||||
form.form-horizontal.form-bordered
|
||||
fieldset
|
||||
.form-group
|
||||
.col-xs-12
|
||||
textarea(
|
||||
dss-ckeditor
|
||||
on-change='updateDescription()'
|
||||
ng-model='vm.user.description'
|
||||
blur='updateUser()'
|
||||
ng-blur='updateUser()'
|
||||
)
|
||||
@@ -1,20 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('dssWebApp')
|
||||
.config(function ($stateProvider) {
|
||||
$stateProvider
|
||||
.state('root.users.edit', {
|
||||
url: '/edit',
|
||||
resolve: {
|
||||
user: function ($stateParams, $rootScope, UserModel) {
|
||||
return UserModel.findAll({slug: $rootScope.currentUser.slug});
|
||||
}
|
||||
},
|
||||
views: {
|
||||
'content@': {
|
||||
templateUrl: 'app/views/users/edit/userEdit.html',
|
||||
controller: 'UserEditCtrl'
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -1,20 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('dssWebApp')
|
||||
.config(function ($stateProvider) {
|
||||
$stateProvider
|
||||
.state('root.users.user', {
|
||||
url: '/:slug',
|
||||
resolve: {
|
||||
user: function ($stateParams, UserModel) {
|
||||
return UserModel.find($stateParams.slug);
|
||||
}
|
||||
},
|
||||
views: {
|
||||
'content@': {
|
||||
templateUrl: 'app/views/users/item/userItem.html',
|
||||
controller: 'UserItemCtrl'
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -1,23 +0,0 @@
|
||||
/*
|
||||
'use strict';
|
||||
|
||||
describe('Controller: UsersCtrl', function () {
|
||||
|
||||
// load the controller's module
|
||||
beforeEach(module('dssWebApp'));
|
||||
|
||||
var UsersCtrl, scope;
|
||||
|
||||
// Initialize the controller and a mock scope
|
||||
beforeEach(inject(function ($controller, $rootScope) {
|
||||
scope = $rootScope.$new();
|
||||
UsersCtrl = $controller('UsersCtrl', {
|
||||
$scope: scope
|
||||
});
|
||||
}));
|
||||
|
||||
it('should ...', function () {
|
||||
expect(1).toEqual(1);
|
||||
});
|
||||
});
|
||||
*/
|
||||
@@ -1,22 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('dssWebApp')
|
||||
.config(function ($stateProvider) {
|
||||
$stateProvider
|
||||
.state('root.users', {
|
||||
url: '/users',
|
||||
templateUrl: 'app/users/users.html',
|
||||
controller: 'UsersCtrl',
|
||||
resolve: {
|
||||
users: function (UserModel) {
|
||||
return UserModel.findAll();
|
||||
}
|
||||
},
|
||||
views: {
|
||||
'content@': {
|
||||
templateUrl: 'app/views/users/users.html',
|
||||
controller: 'UsersCtrl'
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -1,5 +1,9 @@
|
||||
@charset "UTF-8";
|
||||
@import url(http://fonts.googleapis.com/css?family=Open+Sans:400,300);
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
|
||||
>>>>>>> develop
|
||||
.input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child > .btn, .input-group-btn:first-child > .dropdown-toggle, .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) {
|
||||
-moz-border-radius: 0;
|
||||
-webkit-border-radius: 0;
|
||||
|
||||
BIN
client/assets/site/img/logo.png
Normal file
BIN
client/assets/site/img/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 21 KiB |
@@ -143,7 +143,6 @@
|
||||
<script src="app/components/messagepopup/messagepopup.directive.js"></script>
|
||||
<script src="app/components/navbar/navbar.controller.js"></script>
|
||||
<script src="app/components/pageheader/pageheader.controller.js"></script>
|
||||
<script src="app/components/sidebar/sidebar.controller.js"></script>
|
||||
<script src="app/components/socket/socket.service.js"></script>
|
||||
<script src="app/constants/audio.js"></script>
|
||||
<script src="app/constants/backends.js"></script>
|
||||
@@ -184,7 +183,7 @@
|
||||
<script src="app/models/user.js"></script>
|
||||
<script src="app/providers/logger/logger.service.js"></script>
|
||||
<script src="app/providers/server.settings.js"></script>
|
||||
<script src="app/root.js"></script>
|
||||
<script src="app/routes.js"></script>
|
||||
<script src="app/services/audio/audio.events.js"></script>
|
||||
<script src="app/services/audio/audio.service.js"></script>
|
||||
<script src="app/services/auth/auth.interceptor.js"></script>
|
||||
@@ -197,25 +196,15 @@
|
||||
<script src="app/services/user/notification.service.js"></script>
|
||||
<script src="app/services/user/user.roles.js"></script>
|
||||
<script src="app/views/home/home.controller.js"></script>
|
||||
<script src="app/views/home/home.js"></script>
|
||||
<script src="app/views/me/edit.js"></script>
|
||||
<script src="app/views/mixes/item/mix.controller.js"></script>
|
||||
<script src="app/views/mixes/item/mix.js"></script>
|
||||
<script src="app/views/mixes/mixes.controller.js"></script>
|
||||
<script src="app/views/mixes/mixes.directive.js"></script>
|
||||
<script src="app/views/mixes/mixes.routes.js"></script>
|
||||
<script src="app/views/mixes/upload/upload.controller.js"></script>
|
||||
<script src="app/views/mixes/upload/upload.js"></script>
|
||||
<script src="app/views/radio/radio.controller.js"></script>
|
||||
<script src="app/views/radio/radio.routes.js"></script>
|
||||
<script src="app/views/schedule/schedule.controller.js"></script>
|
||||
<script src="app/views/schedule/schedule.routes.js"></script>
|
||||
<script src="app/views/users/edit/userEdit.js"></script>
|
||||
<script src="app/views/users/edit/userEditCtrl.js"></script>
|
||||
<script src="app/views/users/item/userItem.js"></script>
|
||||
<script src="app/views/users/item/userItemCtrl.js"></script>
|
||||
<script src="app/views/users/users.controller.js"></script>
|
||||
<script src="app/views/users/users.js"></script>
|
||||
<script src="app/views/user/edit/userEditCtrl.js"></script>
|
||||
<script src="app/views/user/item/userItemCtrl.js"></script>
|
||||
<script src="app/views/user/user.controller.js"></script>
|
||||
<!-- endinjector -->
|
||||
<!-- endbuild -->
|
||||
|
||||
|
||||
Reference in New Issue
Block a user