From bd6f29a054a3c822cae7b1e7af337514a8b81be6 Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Mon, 28 Oct 2019 15:38:25 +0100
Subject: [PATCH] frontend uses new api

---
 frontend-js/src/main/js/ServerConnector.js    | 12 ++++++
 .../src/main/js/gui/admin/LogListDialog.js    | 39 +++++++++++--------
 .../src/main/js/gui/admin/MapsAdminPanel.js   | 38 ++++++------------
 frontend-js/src/main/js/map/data/Project.js   | 31 ++++-----------
 ...rtOrder=asc&start=0&token=ADMIN_TOKEN_ID&} |  0
 5 files changed, 54 insertions(+), 66 deletions(-)
 rename frontend-js/testFiles/apiCalls/projects/sample/logs/{length=10&level=error&sortColumn=id&sortOrder=asc&start=0&token=ADMIN_TOKEN_ID& => length=10&sortColumn=id&sortOrder=asc&start=0&token=ADMIN_TOKEN_ID&} (100%)

diff --git a/frontend-js/src/main/js/ServerConnector.js b/frontend-js/src/main/js/ServerConnector.js
index 1b12de302a..8324610b82 100644
--- a/frontend-js/src/main/js/ServerConnector.js
+++ b/frontend-js/src/main/js/ServerConnector.js
@@ -2843,6 +2843,18 @@ ServerConnector.uploadFile = function (params) {
 };
 
 
+/**
+ *
+ * @param {Object} [params]
+ * @param {number} [params.start]
+ * @param {number} [params.length]
+ * @param {string} [params.sortColumn]
+ * @param {string} [params.sortOrder]
+ * @param {string} [params.search]
+ * @param {string} [params.level]
+ * @param {string} [params.projectId]
+ * @return {Promise}
+ */
 ServerConnector.getProjectLogs = function (params) {
   var self = this;
   if (params === undefined) {
diff --git a/frontend-js/src/main/js/gui/admin/LogListDialog.js b/frontend-js/src/main/js/gui/admin/LogListDialog.js
index 954ef03bc3..ffc387fd67 100644
--- a/frontend-js/src/main/js/gui/admin/LogListDialog.js
+++ b/frontend-js/src/main/js/gui/admin/LogListDialog.js
@@ -18,7 +18,8 @@ var GuiConnector = require('../../GuiConnector');
  * @param {CustomMap} [params.customMap]
  * @param {Configuration} params.configuration
  * @param {Project} [params.project]
- * @param {ServerConnector} [params.serverConnector]
+ * @param {string} params.projectId
+ * @param {ServerConnector} params.serverConnector
  *
  * @constructor
  * @extends AbstractGuiElement
@@ -27,7 +28,11 @@ function LogListDialog(params) {
   AbstractGuiElement.call(this, params);
   var self = this;
   self.createLogListDialogGui();
-  self._level = params.level;
+
+  /**
+   * @type {string}
+   * @private
+   */
   self._projectId = params.projectId;
 }
 
@@ -41,9 +46,10 @@ LogListDialog.prototype.createLogListDialogGui = function () {
   var self = this;
   var head = Functions.createElement({
     type: "thead",
-    content: "<tr>" + "<th>ID</th>" +
-    "<th>Content</th>" +
-    "</tr>"
+    content: "<tr>" +
+      "<th>ID</th>" +
+      "<th>Content</th>" +
+      "</tr>"
   });
   var body = Functions.createElement({
     type: "tbody"
@@ -95,20 +101,24 @@ LogListDialog.prototype.createLogListDialogGui = function () {
 /**
  *
  * @param {Object} data
+ * @param {number} data.start
+ * @param {number} data.length
+ * @param {Object} data.search
+ * @param {Object} data.draw
+ * @param {Array} data.order
  * @param {function} callback
  * @returns {Promise}
  * @private
  */
 LogListDialog.prototype._dataTableAjaxCall = function (data, callback) {
   var self = this;
-  return ServerConnector.getProjectLogs({
+  return self.getServerConnector().getProjectLogs({
     start: data.start,
     length: data.length,
     sortColumn: self.getColumnsDefinition()[data.order[0].column].name,
     sortOrder: data.order[0].dir,
     search: data.search.value,
-    projectId: self._projectId,
-    level: self._level
+    projectId: self._projectId
   }).then(function (logEntries) {
     var out = [];
     for (var i = 0; i < logEntries.data.length; i++) {
@@ -130,16 +140,13 @@ LogListDialog.prototype._dataTableAjaxCall = function (data, callback) {
 
 /**
  *
- * @param {Object} data
- * @param {function} callback
  * @returns {Promise}
  */
-LogListDialog.prototype.downloadAll = function (data, callback) {
+LogListDialog.prototype.downloadAll = function () {
   var self = this;
-  return ServerConnector.getProjectLogs({
+  return self.getServerConnector().getProjectLogs({
     length: 2147483646,
-    projectId: self._projectId,
-    level: self._level
+    projectId: self._projectId
   }).then(function (logEntries) {
     var tmp = [];
     for (var i = 0; i < logEntries.data.length; i++) {
@@ -170,8 +177,8 @@ LogListDialog.prototype.open = function () {
         serverSide: true,
         ordering: true,
         searching: true,
-        ajax: function (data, callback, settings) {
-          resolve(self._dataTableAjaxCall(data, callback, settings));
+        ajax: function (data, callback) {
+          resolve(self._dataTableAjaxCall(data, callback));
         },
         columns: self.getColumnsDefinition()
       });
diff --git a/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js b/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js
index 70b7104bc3..b10e49f3a0 100644
--- a/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js
+++ b/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js
@@ -174,15 +174,11 @@ MapsAdminPanel.prototype._createProjectTableRow = function () {
 
   $(projectsTable).on("click", "[name='showEditDialog']", function () {
     var button = this;
-    return self.showEditDialog($(button).attr("data")).then(null, GuiConnector.alert);
+    return self.showEditDialog($(button).attr("data")).catch(GuiConnector.alert);
   });
-  $(projectsTable).on("click", "[name='showErrors']", function () {
+  $(projectsTable).on("click", "[name='showLogEntries']", function () {
     var button = this;
-    return self.showLogs($(button).attr("data"), 'error').then(null, GuiConnector.alert);
-  });
-  $(projectsTable).on("click", "[name='showWarnings']", function () {
-    var button = this;
-    return self.showLogs($(button).attr("data"), 'warning').then(null, GuiConnector.alert);
+    return self.showLogs($(button).attr("data")).catch(GuiConnector.alert);
   });
 
   return projectsRow;
@@ -237,18 +233,10 @@ MapsAdminPanel.prototype.projectToTableRow = function (project, row, user) {
     user.hasPrivilege(self.getConfiguration().getPrivilegeType(PrivilegeType.IS_CURATOR));
 
   var icon;
-  if (project.hasErrors()) {
-    icon = "<i class='fa fa-exclamation-triangle' style='font-size:18px; font-weight:400; padding-right:10px;color:red'></i>";
-    if (isAdmin) {
-      status += "<a name='showErrors' href='#' data='" + project.getProjectId() + "'>" + icon + "</a>";
-    } else {
-      status += icon;
-    }
-  }
-  if (project.hasWarnings()) {
+  if (project.hasLogEntries()) {
     icon = "<i class='fa fa-exclamation-triangle' style='font-size:18px; font-weight:400; padding-right:10px;color:black'></i>";
     if (isAdmin) {
-      status += "<a name='showWarnings' href='#' data='" + project.getProjectId() + "'>" + icon + "</a>";
+      status += "<a name='showLogEntries' href='#' data='" + project.getProjectId() + "'>" + icon + "</a>";
     } else {
       status += icon;
     }
@@ -502,15 +490,14 @@ MapsAdminPanel.prototype.getDialog = function (project) {
 /**
  *
  * @param {string} projectId
- * @param {string} level
  * @returns {Promise<LogListDialog>}
  */
-MapsAdminPanel.prototype.getLogDialog = function (projectId, level) {
+MapsAdminPanel.prototype.getLogDialog = function (projectId) {
   var self = this;
   if (self._logDialogs === undefined) {
     self._logDialogs = [];
   }
-  var dialog = self._logDialogs[projectId + "-" + level];
+  var dialog = self._logDialogs[projectId];
   if (dialog === undefined) {
     dialog = new LogListDialog({
       element: Functions.createElement({
@@ -518,10 +505,10 @@ MapsAdminPanel.prototype.getLogDialog = function (projectId, level) {
       }),
       configuration: self.getConfiguration(),
       projectId: projectId,
-      customMap: null,
-      level: level
+      serverConnector: self.getServerConnector(),
+      customMap: null
     });
-    self._logDialogs[projectId + "-" + level] = dialog;
+    self._logDialogs[projectId] = dialog;
     return dialog.init().then(function () {
       return dialog;
     });
@@ -550,13 +537,12 @@ MapsAdminPanel.prototype.showEditDialog = function (id) {
 /**
  *
  * @param {string} id projectId
- * @param {string} level
  * @returns {Promise<LogListDialog>}
  */
-MapsAdminPanel.prototype.showLogs = function (id, level) {
+MapsAdminPanel.prototype.showLogs = function (id) {
   var self = this;
   GuiConnector.showProcessing();
-  return self.getLogDialog(id, level).then(function (dialog) {
+  return self.getLogDialog(id).then(function (dialog) {
     return dialog.open();
   }).finally(function () {
     GuiConnector.hideProcessing();
diff --git a/frontend-js/src/main/js/map/data/Project.js b/frontend-js/src/main/js/map/data/Project.js
index 27dc8ce9bd..30784831bd 100644
--- a/frontend-js/src/main/js/map/data/Project.js
+++ b/frontend-js/src/main/js/map/data/Project.js
@@ -78,8 +78,7 @@ Project.prototype.loadFromData = function (data) {
     self.setStatus(data.status);
     self.setNotifyEmail(data.notifyEmail);
     self.setProgress(data.progress);
-    self.setHasWarnings(data.warnings);
-    self.setHasErrors(data.errors);
+    self.setHasLogEntries(data.logEntries);
     self.setMapCanvasType(data.mapCanvasType);
   }
 };
@@ -114,8 +113,7 @@ Project.prototype._update = function (data) {
   self.setStatus(data.getStatus());
   self.setProgress(data.getProgress());
   self.setNotifyEmail(data.getNotifyEmail());
-  self.setHasWarnings(data.hasWarnings());
-  self.setHasErrors(data.hasErrors());
+  self.setHasLogEntries(data.hasLogEntries());
   self.setMapCanvasType(data.getMapCanvasType());
 
   if (data.getModels() !== undefined) {
@@ -146,33 +144,18 @@ Project.prototype.setId = function (id) {
  *
  * @returns {boolean}
  */
-Project.prototype.hasErrors = function () {
-  return this._hasErrors === true;
+Project.prototype.hasLogEntries = function () {
+  return this._hasLogEntries === true;
 };
 
 /**
  *
- * @param {boolean} hasErrors
+ * @param {boolean} hasLogEntries
  */
-Project.prototype.setHasErrors = function (hasErrors) {
-  this._hasErrors = hasErrors;
+Project.prototype.setHasLogEntries = function (hasLogEntries) {
+  this._hasLogEntries = hasLogEntries;
 };
 
-/**
- *
- * @returns {boolean}
- */
-Project.prototype.hasWarnings = function () {
-  return this._hasWarnings === true;
-};
-
-/**
- *
- * @param {boolean} hasWarnings
- */
-Project.prototype.setHasWarnings = function (hasWarnings) {
-  this._hasWarnings = hasWarnings;
-};
 
 /**
  *
diff --git a/frontend-js/testFiles/apiCalls/projects/sample/logs/length=10&level=error&sortColumn=id&sortOrder=asc&start=0&token=ADMIN_TOKEN_ID& b/frontend-js/testFiles/apiCalls/projects/sample/logs/length=10&sortColumn=id&sortOrder=asc&start=0&token=ADMIN_TOKEN_ID&
similarity index 100%
rename from frontend-js/testFiles/apiCalls/projects/sample/logs/length=10&level=error&sortColumn=id&sortOrder=asc&start=0&token=ADMIN_TOKEN_ID&
rename to frontend-js/testFiles/apiCalls/projects/sample/logs/length=10&sortColumn=id&sortOrder=asc&start=0&token=ADMIN_TOKEN_ID&
-- 
GitLab