Skip to content

Commit

Permalink
Merge pull request #98 from e-ucm/3in1
Browse files Browse the repository at this point in the history
3in1 to Master
  • Loading branch information
Dan Cristian, Rotaru committed Sep 17, 2018
2 parents 8eb30e5 + 577e094 commit 057af2b
Show file tree
Hide file tree
Showing 24 changed files with 1,526 additions and 410 deletions.
7 changes: 3 additions & 4 deletions app/public/js/controllers/activity-list.js
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,6 @@ angular.module('activitiesApp', ['ngStorage', 'services'])
var classId = $scope.classId ? $scope.classId : $scope.activity.classId;
var gameId = $scope.gameId ? $scope.gameId : $scope.activity.gameId;
var versionId = $scope.versionId;
console.log(gameId);

$scope.activityCreatedError = '';
if (!gameId) {
Expand Down Expand Up @@ -182,9 +181,9 @@ angular.module('activitiesApp', ['ngStorage', 'services'])
$scope.goToActivity(activity);
$rootScope.$broadcast('refreshActivities');
}).error(function (data, status) {
console.error('Error on post /kibana/dashboard/activity/' + activity._id + ' ' +
JSON.stringify(data) + ', status: ' + status);
});
console.error('Error on post /kibana/dashboard/activity/' + activity._id + ' ' +
JSON.stringify(data) + ', status: ' + status);
});
}
}).error(function (data, status) {
console.error('Error on post /kibana/visualization/activity/' + visualizationId + '/' + activity._id + ' ' +
Expand Down
399 changes: 261 additions & 138 deletions app/public/js/controllers/activity.js

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions app/public/js/controllers/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

// Declare app level module which depends on filters, and services
angular.module('myApp', [
'ngRoute', 'toolbarApp', 'signupApp', 'loginApp', 'loginPluginApp', 'classApp', 'classesApp','activitiesApp',
'ngRoute', 'toolbarApp', 'signupApp', 'loginApp', 'loginPluginApp', 'classApp', 'participantsApp', 'classesApp', 'activitiesApp',
'activityApp', 'gameApp', 'analysisApp', 'kibanaApp', 'gamesApp', 'activityApp', 'analyticsApp', 'devVisualizatorApp',
'services', 'xeditable', 'env-vars', 'ui.router'
]).run(function (editableOptions, $localStorage, $cookies) {
Expand Down Expand Up @@ -283,7 +283,7 @@ angular.module('myApp', [
$scope.selectedGame = Games.get({gameId: activity.gameId});
});
}
} else {
} else if (!$window.location.pathname.endsWith('loginbyplugin')) {
$location.url('login');
}
}
Expand Down
101 changes: 97 additions & 4 deletions app/public/js/controllers/class-list.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,22 +19,57 @@
'use strict';

angular.module('classesApp', ['ngStorage', 'services'])
.controller('ClassListCtrl', ['$scope', '$rootScope', '$location', '$http', 'Classes', '$timeout',
function ($scope, $rootScope, $location, $http, Classes, $timeout) {
.controller('ClassListCtrl', ['$scope', '$rootScope', '$location', '$http', 'Classes', 'Courses', '$timeout', 'CONSTANTS',
function ($scope, $rootScope, $location, $http, Classes, Courses, $timeout, CONSTANTS) {
$scope.activity = {};
$scope.courseId = {};
$scope.class = {};
$scope.newCourse = {};

$scope.editCourse = {};
$scope.editBoxCourse = {};
$scope.coursesTitles = {};

$scope.goToClass = function(c) {
$rootScope.$broadcast('selectClass', { class: c});
};

var getClasses = function () {
$scope.classes = Classes.my();
Classes.my().$promise.then(function(classes) {
$scope.classes = classes;
refreshCoursesTitles();
});
};

var getCourses = function () {
$scope.courses = Courses.all().$promise.then(function(courses) {
$scope.courses = courses;
$scope.courses.unshift({_id: 'NEW', title: 'New Course'});
$scope.courses.unshift({title: 'No Course'});
refreshCoursesTitles();
});
};

getClasses();
getCourses();
$scope.loading = false;

var refreshCoursesTitles = function() {
if ($scope.courses && $scope.classes) {
$scope.classes.forEach(function (cl) {
$scope.coursesTitles[cl.courseId] = 'No Course';
if (cl.courseId) {
for (var i = 0; $scope.courses.length; i++) {
if ($scope.courses[i]._id === cl.courseId) {
$scope.coursesTitles[cl.courseId] = $scope.courses[i].title;
break;
}
}
}
});
}
};

$scope.createClass = function () {
var c = new Classes();
c.name = $scope.class.name ? $scope.class.name : 'New class';
Expand All @@ -44,6 +79,64 @@ angular.module('classesApp', ['ngStorage', 'services'])
});
};

$scope.editBox = function(classObj) {
return $scope.editBoxCourse[classObj._id];
};

$scope.showSelectBox = function(classObj) {
return $scope.editCourse[classObj._id];
};

$scope.editCourseClass = function (classObj) {
Object.keys($scope.editCourse).forEach(function(key) {
$scope.editCourse[key] = false;
$scope.editBoxCourse[classObj._id] = false;
});
$scope.editCourse[classObj._id] = true;
};

$scope.acceptCourseClass = function (classObj) {
var courseId = $scope.courseId.id;
if (courseId === 'NEW') {
if ($scope.newCourse.newName) {
$http.post(CONSTANTS.PROXY + '/courses', {title: $scope.newCourse.newName})
.success(function(data) {
$http.put(CONSTANTS.PROXY + '/classes/' + classObj._id, {courseId: data._id})
.success(function () {
getClasses();
}).error(function (data, status) {
console.error('Error on put /classes/' + classObj._id + ' ' +
JSON.stringify(data) + ', status: ' + status);
});
}).error(function (data, status) {
console.error('Error on put /classes/' + classObj._id + ' ' +
JSON.stringify(data) + ', status: ' + status);
}).finally(function () {
$scope.editBoxCourse[classObj._id] = false;
$scope.editCourse[classObj._id] = false;
$scope.newCourse = {};
getCourses();
});
} else {
$scope.editBoxCourse[classObj._id] = true;
}
} else {
var reqObj;
if (!courseId) {
courseId = null;
}
reqObj = {courseId: courseId};
$http.put(CONSTANTS.PROXY + '/classes/' + classObj._id, reqObj)
.success(function () {
$scope.editCourse[classObj._id] = false;
getClasses();
}).error(function (data, status) {
console.error('Error on put /classes/' + classObj._id + ' ' +
JSON.stringify(data) + ', status: ' + status);
});
}
};

$scope.deleteClass = function (classObj) {
classObj.$remove().then(function() {
$timeout(function() {
Expand All @@ -53,7 +146,7 @@ angular.module('classesApp', ['ngStorage', 'services'])
};

$scope.$on('refreshClasses', function () {
Classes.my().$promise.then(function(classes) { $scope.classes = classes; });
getClasses();
});
}
]);
Loading

0 comments on commit 057af2b

Please sign in to comment.