Merge branch 'dev-2.0' of github.com:SafeExamBrowser/seb-server into redesign
This commit is contained in:
		
						commit
						600e805240
					
				
					 7 changed files with 107 additions and 10 deletions
				
			
		|  | @ -857,11 +857,23 @@ public final class Utils { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public static int compareDateTime(final DateTime dt1, final DateTime dt2, final boolean descending) { |     public static int compareDateTime(final DateTime dt1, final DateTime dt2, final boolean descending) { | ||||||
|         return Objects.compare(dt1, dt1, DateTime::compareTo ) * ((descending) ? -1 : 1); |         return ((dt1 == dt2) | ||||||
|  |             ? 0 | ||||||
|  |             : (dt1 == null || dt1 == null) | ||||||
|  |                 ? 1 | ||||||
|  |                 : (dt2 == null || dt2 == null) | ||||||
|  |                     ? -1 | ||||||
|  |                     : dt1.compareTo(dt2)) * ((descending) ? -1 : 1); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public static int compareIds(final Long id1, final Long id2, final boolean descending) { |     public static int compareIds(final Long id1, final Long id2, final boolean descending) { | ||||||
|         return Objects.compare(id1, id2, Long::compareTo ) * ((descending) ? -1 : 1); |         return ((Objects.equals(id1, id2)) | ||||||
|  |             ? 0 | ||||||
|  |             : (id1 == null || id1 == null) | ||||||
|  |                 ? 1 | ||||||
|  |                 : (id2 == null || id2 == null) | ||||||
|  |                     ? -1 | ||||||
|  |                     : id1.compareTo(id2)) * ((descending) ? -1 : 1); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public static String toFileName(final String name) { |     public static String toFileName(final String name) { | ||||||
|  |  | ||||||
|  | @ -70,6 +70,10 @@ public class CurrentUser { | ||||||
|         this.attributes.put(name, value); |         this.attributes.put(name, value); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     public void deleteAttribute(final String name) { | ||||||
|  |         this.attributes.remove(name); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     public String getAttribute(final String name) { |     public String getAttribute(final String name) { | ||||||
|         return this.attributes.get(name); |         return this.attributes.get(name); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -338,7 +338,7 @@ public class MonitoringProctoringService { | ||||||
|                     .getUserPassword(); |                     .getUserPassword(); | ||||||
|             final String body = "username=" + currentUser.get().username |             final String body = "username=" + currentUser.get().username | ||||||
|                     + "&password=" + userPassword.toString() |                     + "&password=" + userPassword.toString() | ||||||
|                     + "&redirect=/galleryView/" + group.uuid; |                     + "&redirect=/gallery-view/" + group.uuid; | ||||||
| 
 | 
 | ||||||
|             // apply jwt token request |             // apply jwt token request | ||||||
|             final HttpEntity<String> httpEntity = new HttpEntity<>(body, httpHeaders); |             final HttpEntity<String> httpEntity = new HttpEntity<>(body, httpHeaders); | ||||||
|  |  | ||||||
|  | @ -76,6 +76,7 @@ public class EntityTable<ROW extends ModelIdAware> { | ||||||
|     private final String sortAttrName; |     private final String sortAttrName; | ||||||
|     private final String sortOrderAttrName; |     private final String sortOrderAttrName; | ||||||
|     private final String currentPageAttrName; |     private final String currentPageAttrName; | ||||||
|  |     private final String columnWidthAttrName; | ||||||
|     private final boolean markupEnabled; |     private final boolean markupEnabled; | ||||||
|     private final Consumer<EntityTable<ROW>> pageReloadListener; |     private final Consumer<EntityTable<ROW>> pageReloadListener; | ||||||
| 
 | 
 | ||||||
|  | @ -138,6 +139,7 @@ public class EntityTable<ROW extends ModelIdAware> { | ||||||
|         this.sortAttrName = name + "_sort"; |         this.sortAttrName = name + "_sort"; | ||||||
|         this.sortOrderAttrName = name + "_sortOrder"; |         this.sortOrderAttrName = name + "_sortOrder"; | ||||||
|         this.currentPageAttrName = name + "_currentPage"; |         this.currentPageAttrName = name + "_currentPage"; | ||||||
|  |         this.columnWidthAttrName = name + "_columnWidth"; | ||||||
|         this.markupEnabled = markupEnabled; |         this.markupEnabled = markupEnabled; | ||||||
| 
 | 
 | ||||||
|         this.defaultSortColumn = defaultSortColumn; |         this.defaultSortColumn = defaultSortColumn; | ||||||
|  | @ -236,6 +238,7 @@ public class EntityTable<ROW extends ModelIdAware> { | ||||||
|         this.navigator = new TableNavigator(this); |         this.navigator = new TableNavigator(this); | ||||||
| 
 | 
 | ||||||
|         createTableColumns(); |         createTableColumns(); | ||||||
|  | 
 | ||||||
|         this.pageNumber = initCurrentPageFromUserAttr(); |         this.pageNumber = initCurrentPageFromUserAttr(); | ||||||
|         initFilterFromUserAttrs(); |         initFilterFromUserAttrs(); | ||||||
|         initSortFromUserAttr(); |         initSortFromUserAttr(); | ||||||
|  | @ -317,6 +320,8 @@ public class EntityTable<ROW extends ModelIdAware> { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public void reset() { |     public void reset() { | ||||||
|  |         deleteColumnWidths(); | ||||||
|  |         adaptColumnWidth(null); | ||||||
|         this.sortColumn = this.defaultSortColumn; |         this.sortColumn = this.defaultSortColumn; | ||||||
|         this.sortOrder = this.defaultSortOrder; |         this.sortOrder = this.defaultSortOrder; | ||||||
|         updateSortUserAttr(); |         updateSortUserAttr(); | ||||||
|  | @ -595,7 +600,7 @@ public class EntityTable<ROW extends ModelIdAware> { | ||||||
|         try { |         try { | ||||||
|             int currentTableWidth = this.table.getParent().getClientArea().width; |             int currentTableWidth = this.table.getParent().getClientArea().width; | ||||||
|             // If we have all columns with filter we need some more space for the |             // If we have all columns with filter we need some more space for the | ||||||
|             // filter actions in the right hand side. This tweak gives enough space for that |             // filter actions on the right hand side. This tweak gives enough space for that | ||||||
|             if (this.filter != null && this.columns.size() == this.filter.size()) { |             if (this.filter != null && this.columns.size() == this.filter.size()) { | ||||||
|                 currentTableWidth -= 60; |                 currentTableWidth -= 60; | ||||||
|             } |             } | ||||||
|  | @ -620,7 +625,7 @@ public class EntityTable<ROW extends ModelIdAware> { | ||||||
|                 final int newWidth = (pSize > 0) |                 final int newWidth = (pSize > 0) | ||||||
|                         ? columnUnitSize * column.getWidthProportion() |                         ? columnUnitSize * column.getWidthProportion() | ||||||
|                         : columnUnitSize; |                         : columnUnitSize; | ||||||
|                 tableColumn.setWidth(newWidth); |                 loadOrSetColumnWidth(index, newWidth); | ||||||
|                 if (this.filter != null) { |                 if (this.filter != null) { | ||||||
|                     this.filter.adaptColumnWidth(this.table.indexOf(tableColumn), newWidth); |                     this.filter.adaptColumnWidth(this.table.indexOf(tableColumn), newWidth); | ||||||
|                 } |                 } | ||||||
|  | @ -639,11 +644,7 @@ public class EntityTable<ROW extends ModelIdAware> { | ||||||
|         final Widget widget = event.widget; |         final Widget widget = event.widget; | ||||||
|         if (widget instanceof TableColumn) { |         if (widget instanceof TableColumn) { | ||||||
|             final TableColumn tableColumn = ((TableColumn) widget); |             final TableColumn tableColumn = ((TableColumn) widget); | ||||||
|             if (this.filter != null) { |             this.saveColumnSize(table.indexOf(tableColumn)); | ||||||
|                 this.filter.adaptColumnWidth( |  | ||||||
|                         this.table.indexOf(tableColumn), |  | ||||||
|                         tableColumn.getWidth()); |  | ||||||
|             } |  | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -906,4 +907,37 @@ public class EntityTable<ROW extends ModelIdAware> { | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     private void saveColumnSize(final int columnIndex) { | ||||||
|  |         final TableColumn column = table.getColumn(columnIndex); | ||||||
|  |         if (column.getWidth() > 0) { | ||||||
|  |             this.pageService | ||||||
|  |                     .getCurrentUser() | ||||||
|  |                     .putAttribute( | ||||||
|  |                             columnWidthAttrName + columnIndex, | ||||||
|  |                             String.valueOf(table.getColumn(columnIndex).getWidth())); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void loadOrSetColumnWidth(final int columnIndex, final int defaultWidth) { | ||||||
|  |         int width = defaultWidth; | ||||||
|  |         try { | ||||||
|  |             width = Integer.parseInt(this.pageService | ||||||
|  |                     .getCurrentUser() | ||||||
|  |                     .getAttribute(columnWidthAttrName + columnIndex)); | ||||||
|  |         } catch (final Exception e) { | ||||||
|  |             // ignore | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         table.getColumn(columnIndex).setWidth(width); | ||||||
|  |         saveColumnSize(columnIndex); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void deleteColumnWidths() { | ||||||
|  |         for (int i = 0; i < this.columns.size(); i++) { | ||||||
|  |             this.pageService | ||||||
|  |                     .getCurrentUser() | ||||||
|  |                     .deleteAttribute(columnWidthAttrName + i); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -530,6 +530,29 @@ public abstract class MoodleUtils { | ||||||
|             this.mailformat = mailformat; |             this.mailformat = mailformat; | ||||||
|             this.descriptionformat = descriptionformat; |             this.descriptionformat = descriptionformat; | ||||||
|         } |         } | ||||||
|  |         @Override | ||||||
|  |         public String toString() { | ||||||
|  |             return "MoodleUserDetails{" + | ||||||
|  |                     "id='" + id + '\'' + | ||||||
|  |                     ", username='" + username + '\'' + | ||||||
|  |                     ", firstname='" + firstname + '\'' + | ||||||
|  |                     ", lastname='" + lastname + '\'' + | ||||||
|  |                     ", fullname='" + fullname + '\'' + | ||||||
|  |                     ", email='" + email + '\'' + | ||||||
|  |                     ", department='" + department + '\'' + | ||||||
|  |                     ", firstaccess=" + firstaccess + | ||||||
|  |                     ", lastaccess=" + lastaccess + | ||||||
|  |                     ", auth='" + auth + '\'' + | ||||||
|  |                     ", suspended=" + suspended + | ||||||
|  |                     ", confirmed=" + confirmed + | ||||||
|  |                     ", lang='" + lang + '\'' + | ||||||
|  |                     ", theme='" + theme + '\'' + | ||||||
|  |                     ", timezone='" + timezone + '\'' + | ||||||
|  |                     ", description='" + description + '\'' + | ||||||
|  |                     ", mailformat=" + mailformat + | ||||||
|  |                     ", descriptionformat=" + descriptionformat + | ||||||
|  |                     '}'; | ||||||
|  |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @JsonIgnoreProperties(ignoreUnknown = true) |     @JsonIgnoreProperties(ignoreUnknown = true) | ||||||
|  |  | ||||||
|  | @ -403,6 +403,18 @@ public class MoodleCourseAccess implements CourseAccessAPI { | ||||||
|                 throw new RuntimeException("No user details on Moodle API request"); |                 throw new RuntimeException("No user details on Moodle API request"); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|  |             System.out.println("---------------------"); | ||||||
|  |             System.out.println("*************it got here moodle course access debugging"); | ||||||
|  |             if (log.isDebugEnabled()) { | ||||||
|  |                 System.out.println("*************inside if"); | ||||||
|  |                 log.debug("User details received from Moodle: {}", userDetails[0]); | ||||||
|  |             } | ||||||
|  |             System.out.println("firstname: " + userDetails[0].firstname); | ||||||
|  |             System.out.println("firstname: " + userDetails[0].lastname); | ||||||
|  |             System.out.println("firstname: " + userDetails[0].fullname); | ||||||
|  |             System.out.println(userDetails[0]); | ||||||
|  |             System.out.println("---------------------"); | ||||||
|  | 
 | ||||||
|             final Map<String, String> additionalAttributes = MoodleUtils.getMoodleAccountDetails(userDetails); |             final Map<String, String> additionalAttributes = MoodleUtils.getMoodleAccountDetails(userDetails); | ||||||
|             return new ExamineeAccountDetails( |             return new ExamineeAccountDetails( | ||||||
|                     userDetails[0].id, |                     userDetails[0].id, | ||||||
|  |  | ||||||
|  | @ -339,6 +339,18 @@ public class MoodlePluginCourseAccess extends AbstractCachedCourseAccess impleme | ||||||
|                 throw new RuntimeException("No user details on Moodle API request"); |                 throw new RuntimeException("No user details on Moodle API request"); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|  |             System.out.println("---------------------"); | ||||||
|  |             System.out.println("*************it got here moodle plugin debugging"); | ||||||
|  |             if (log.isDebugEnabled()) { | ||||||
|  |                 System.out.println("*************inside if"); | ||||||
|  |                 log.debug("User details received from Moodle: {}", userDetails[0]); | ||||||
|  |             } | ||||||
|  |             System.out.println("firstname: " + userDetails[0].firstname); | ||||||
|  |             System.out.println("firstname: " + userDetails[0].lastname); | ||||||
|  |             System.out.println("firstname: " + userDetails[0].fullname); | ||||||
|  |             System.out.println(userDetails[0]); | ||||||
|  |             System.out.println("---------------------"); | ||||||
|  | 
 | ||||||
|             final Map<String, String> additionalAttributes = MoodleUtils.getMoodleAccountDetails(userDetails); |             final Map<String, String> additionalAttributes = MoodleUtils.getMoodleAccountDetails(userDetails); | ||||||
|             return new ExamineeAccountDetails( |             return new ExamineeAccountDetails( | ||||||
|                     userDetails[0].id, |                     userDetails[0].id, | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Nadim Ritter
						Nadim Ritter