SenpaiSilver

Untitled

Sep 19th, 2016
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (function() {
  2.     'use strict';
  3.     angular
  4.     .module('app.exercise', [
  5.         'ngSanitize',
  6.         'luegg.directives',
  7.         'app.editor',
  8.         'app.api',
  9.         'app.user'
  10.     ])
  11.     .controller('exerciseController', function ($scope, $routeParams, $sce, $document, $rootScope, API, User, EditorData) {
  12.         $scope.instructions = "Ecrivez un Hello World dans le langage de votre choix \
  13.         et utilisez main.sh pour le compiler ou l'executer.";
  14.         $scope.consoleOutput = "Output:";
  15.        
  16.         angular.element(document).ready(function() {
  17.             var id = 0;
  18.             var data = [
  19.                 {name: 'exercise.sh', language: 'shell', closable: false, readonly: false, content: '#!/bin/bash\n\n'}
  20.             ];
  21.            
  22.             API.get("user_exercises").then(function(r) {
  23.                 for (var i = 0; i < r.data.data.length; i++) {
  24.                     console.log(r.data.data[i])
  25.                     if (r.data.data[i].exercice_id == $routeParams.exerciseId) {
  26.                         id = r.data.data[i].id;
  27.                     }
  28.                 }
  29.                 API.get("user_exercise/" + id + "/codes").then(function(c) {
  30.                     $scope.exerciseId = $routeParams.exerciseId;
  31.                     if ($routeParams.exerciseId !== undefined) {
  32.                             // console.log(resp)
  33.                             $scope.instructions = c.data.data[0].instruction;
  34.                             data = [
  35.                                 {name: c.data.data[0].name, language: "shell", closable: false, readonly: false, content: c.data.data[0].content}
  36.                             ];
  37.                             $scope.$emit("editorSpawn", data);
  38.                        
  39.                     }
  40.                     else
  41.                         $scope.$emit("editorSpawn", data);
  42.                 }, function(err) {
  43.                     console.log("didn't load");
  44.                     console.log(err);
  45.                     $scope.exerciseId = $routeParams.exerciseId;
  46.                     if ($routeParams.exerciseId !== undefined) {
  47.                         API.get("exercise/" + $routeParams.exerciseId).then(function(resp) {
  48.                             console.log(resp)
  49.                             $scope.instructions = resp.data.data[0].instruction;
  50.                             $scope.$emit("editorSpawn", data);
  51.                         }, API.err);
  52.                     }
  53.                     else
  54.                         $scope.$emit("editorSpawn", data);
  55.                 });
  56.             }, function(err) {
  57.                 console.log("Won't load from db")
  58.                 $scope.exerciseId = $routeParams.exerciseId;
  59.                 if ($routeParams.exerciseId !== undefined) {
  60.                     API.get("exercise/" + $routeParams.exerciseId).then(function(resp) {
  61.                         console.log(resp)
  62.                         $scope.instructions = resp.data.data[0].instruction;
  63.                         $scope.$emit("editorSpawn", data);
  64.                     }, API.err);
  65.                 }
  66.                 else
  67.                     $scope.$emit("editorSpawn", data);
  68.             });
  69.         });
  70.         $scope.consoleAppend = function(str, sep) {
  71.             $scope.$apply(function() {
  72.                 if ($scope.consoleOutput.length > 0)
  73.                     $scope.consoleOutput += (sep === undefined ? "\n" : sep);
  74.                 $scope.consoleOutput += str;
  75.             });
  76.         };
  77.         $scope.consoleClear = function() {
  78.             $scope.consoleOutput = "";
  79.         };
  80.         $scope.consoleScroll = function() {
  81.         };
  82.         $scope.codeSave = function() {
  83.         };
  84.         $scope.codeCompile = function() {
  85.             //$rootScope.$emit("editorCompile");
  86.            
  87.             API.get("user_exercises").then(function(lastExercise) {
  88.                 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) {
  89.                     console.log(r);
  90.                     API.get("user_exercises").then(function(ue) {
  91.                         console.log(ue);
  92.                         //EditorData.files[0].doc.getValue()
  93.                         EditorData.files.forEach(function(e, i, a) {
  94.                             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) {
  95.                                 console.log(c);
  96.                             }, function(err) {
  97.                                 console.log("In PUT:");
  98.                                 console.log(err);
  99.                             });
  100.                         });
  101.                         //API.post("user_exercise/code", {}
  102.                     }, API.err);
  103.                 }, API.err);
  104.             }, function() {
  105.                 API.post("user_exercise", {account_id: User.id, exercice_id: $scope.exerciseId}).then(function(r) {
  106.                     console.log(r);
  107.                     API.get("user_exercises").then(function(ue) {
  108.                         console.log(ue);
  109.                         //EditorData.files[0].doc.getValue()
  110.                         EditorData.files.forEach(function(e, i, a) {
  111.                             API.post("user_exercise/code", {user_exercice_id: ue.data.data.last().id, content: e.doc.getValue(), name: e.name}).then(function(c) {
  112.                                 console.log(c);
  113.                             }, API.err);
  114.                         });
  115.                         //API.post("user_exercise/code", {}
  116.                     }, API.err);
  117.                 }, API.err);
  118.             });
  119.            
  120.         };
  121.         $scope.trustAsHtml = function(content) {
  122.             return ($sce.trustAsHtml(content));
  123.         };
  124.         $rootScope.$on('commServiceCmdLog', function(msg, j) {
  125.             $scope.consoleAppend(j.log);
  126.         });
  127.     });
  128. })();
Advertisement
Add Comment
Please, Sign In to add comment