Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (function() {
- 'use strict';
- angular
- .module('app.exercise', [
- 'ngSanitize',
- 'luegg.directives',
- 'app.editor',
- 'app.api',
- 'app.user'
- ])
- .controller('exerciseController', function ($scope, $routeParams, $sce, $document, $rootScope, API, User, EditorData) {
- $scope.instructions = "Ecrivez un Hello World dans le langage de votre choix \
- et utilisez main.sh pour le compiler ou l'executer.";
- $scope.consoleOutput = "Output:";
- angular.element(document).ready(function() {
- var id = 0;
- var data = [
- {name: 'exercise.sh', language: 'shell', closable: false, readonly: false, content: '#!/bin/bash\n\n'}
- ];
- API.get("user_exercises").then(function(r) {
- for (var i = 0; i < r.data.data.length; i++) {
- console.log(r.data.data[i])
- if (r.data.data[i].exercice_id == $routeParams.exerciseId) {
- id = r.data.data[i].id;
- }
- }
- API.get("user_exercise/" + id + "/codes").then(function(c) {
- $scope.exerciseId = $routeParams.exerciseId;
- if ($routeParams.exerciseId !== undefined) {
- // console.log(resp)
- $scope.instructions = c.data.data[0].instruction;
- data = [
- {name: c.data.data[0].name, language: "shell", closable: false, readonly: false, content: c.data.data[0].content}
- ];
- $scope.$emit("editorSpawn", data);
- }
- else
- $scope.$emit("editorSpawn", data);
- }, function(err) {
- console.log("didn't load");
- console.log(err);
- $scope.exerciseId = $routeParams.exerciseId;
- if ($routeParams.exerciseId !== undefined) {
- API.get("exercise/" + $routeParams.exerciseId).then(function(resp) {
- console.log(resp)
- $scope.instructions = resp.data.data[0].instruction;
- $scope.$emit("editorSpawn", data);
- }, API.err);
- }
- else
- $scope.$emit("editorSpawn", data);
- });
- }, function(err) {
- console.log("Won't load from db")
- $scope.exerciseId = $routeParams.exerciseId;
- if ($routeParams.exerciseId !== undefined) {
- API.get("exercise/" + $routeParams.exerciseId).then(function(resp) {
- console.log(resp)
- $scope.instructions = resp.data.data[0].instruction;
- $scope.$emit("editorSpawn", data);
- }, API.err);
- }
- else
- $scope.$emit("editorSpawn", data);
- });
- });
- $scope.consoleAppend = function(str, sep) {
- $scope.$apply(function() {
- if ($scope.consoleOutput.length > 0)
- $scope.consoleOutput += (sep === undefined ? "\n" : sep);
- $scope.consoleOutput += str;
- });
- };
- $scope.consoleClear = function() {
- $scope.consoleOutput = "";
- };
- $scope.consoleScroll = function() {
- };
- $scope.codeSave = function() {
- };
- $scope.codeCompile = function() {
- //$rootScope.$emit("editorCompile");
- API.get("user_exercises").then(function(lastExercise) {
- API.put("user_exercise/" + lastExercise.data.data.last().id, {user_exercice_id: lastExercise.data.data.last().id, account_id: User.id, exercice_id: $scope.exerciseId}).then(function(r) {
- console.log(r);
- API.get("user_exercises").then(function(ue) {
- console.log(ue);
- //EditorData.files[0].doc.getValue()
- EditorData.files.forEach(function(e, i, a) {
- API.put("user_exercise/code/" + lastExercise.data.data.last().id, {user_exercice_id: ue.data.data.last().id, content: e.doc.getValue(), name: e.name}).then(function(c) {
- console.log(c);
- }, function(err) {
- console.log("In PUT:");
- console.log(err);
- });
- });
- //API.post("user_exercise/code", {}
- }, API.err);
- }, API.err);
- }, function() {
- API.post("user_exercise", {account_id: User.id, exercice_id: $scope.exerciseId}).then(function(r) {
- console.log(r);
- API.get("user_exercises").then(function(ue) {
- console.log(ue);
- //EditorData.files[0].doc.getValue()
- EditorData.files.forEach(function(e, i, a) {
- API.post("user_exercise/code", {user_exercice_id: ue.data.data.last().id, content: e.doc.getValue(), name: e.name}).then(function(c) {
- console.log(c);
- }, API.err);
- });
- //API.post("user_exercise/code", {}
- }, API.err);
- }, API.err);
- });
- };
- $scope.trustAsHtml = function(content) {
- return ($sce.trustAsHtml(content));
- };
- $rootScope.$on('commServiceCmdLog', function(msg, j) {
- $scope.consoleAppend(j.log);
- });
- });
- })();
Advertisement
Add Comment
Please, Sign In to add comment