Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/assessmentApplicationContext.xml =================================================================== diff -u -r9091ed8c9bae9a48f88622c0c5031af2a39772dc -r50e336123ddaab4628f5f94f795340c8e845c6df --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/assessmentApplicationContext.xml (.../assessmentApplicationContext.xml) (revision 9091ed8c9bae9a48f88622c0c5031af2a39772dc) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/assessmentApplicationContext.xml (.../assessmentApplicationContext.xml) (revision 50e336123ddaab4628f5f94f795340c8e845c6df) @@ -103,6 +103,9 @@ + + + Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/AssessmentUserDAO.java =================================================================== diff -u -r0336d51e6688a15639cb7d414223e947a1e8d118 -r50e336123ddaab4628f5f94f795340c8e845c6df --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/AssessmentUserDAO.java (.../AssessmentUserDAO.java) (revision 0336d51e6688a15639cb7d414223e947a1e8d118) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/AssessmentUserDAO.java (.../AssessmentUserDAO.java) (revision 50e336123ddaab4628f5f94f795340c8e845c6df) @@ -58,8 +58,4 @@ List getRawLeaderMarksByToolContentId(Long toolContentId); Object[] getStatsMarksForLeaders(Long toolContentId); - - List getExistingIndividualTimeLimitUsers(long toolContentId); - - List getPossibleIndividualTimeLimitUsers(long toolContentId, String searchString); } Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentUserDAOHibernate.java =================================================================== diff -u -r0336d51e6688a15639cb7d414223e947a1e8d118 -r50e336123ddaab4628f5f94f795340c8e845c6df --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentUserDAOHibernate.java (.../AssessmentUserDAOHibernate.java) (revision 0336d51e6688a15639cb7d414223e947a1e8d118) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentUserDAOHibernate.java (.../AssessmentUserDAOHibernate.java) (revision 50e336123ddaab4628f5f94f795340c8e845c6df) @@ -62,16 +62,6 @@ + " JOIN tl_laasse10_assessment a ON s.assessment_uid = a.uid " + " WHERE r.finish_date IS NOT NULL AND r.latest = 1 AND a.content_id = :toolContentId"; - private static final String FIND_POSSIBLE_INDIVIDUAL_TIME_LIMIT_USERS = "FROM " + AssessmentUser.class.getName() - + " AS u WHERE u.timeLimitAdjustment IS NULL AND u.assessment.contentId = :toolContentId " - + "AND (u.firstName LIKE CONCAT('%', :searchString, '%') " - + "OR u.lastName LIKE CONCAT('%', :searchString, '%') " - + "OR u.loginName LIKE CONCAT('%', :searchString, '%')) ORDER BY u.firstName, u.lastName"; - - private static final String FIND_EXISTING_INDIVIDUAL_TIME_LIMIT_USERS = "FROM " + AssessmentUser.class.getName() - + " AS u WHERE u.timeLimitAdjustment IS NOT NULL AND u.assessment.contentId = :toolContentId " - + " ORDER BY u.firstName, u.lastName"; - @SuppressWarnings("rawtypes") @Override public AssessmentUser getUserByUserIDAndSessionID(Long userID, Long sessionId) { @@ -332,17 +322,4 @@ List list = query.list(); return list; } - - @Override - public List getPossibleIndividualTimeLimitUsers(long toolContentId, String searchString) { - return getSession().createQuery(FIND_POSSIBLE_INDIVIDUAL_TIME_LIMIT_USERS, AssessmentUser.class) - .setParameter("toolContentId", toolContentId).setParameter("searchString", searchString) - .getResultList(); - } - - @Override - public List getExistingIndividualTimeLimitUsers(long toolContentId) { - return getSession().createQuery(FIND_EXISTING_INDIVIDUAL_TIME_LIMIT_USERS, AssessmentUser.class) - .setParameter("toolContentId", toolContentId).getResultList(); - } -} +} \ No newline at end of file Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20200617.sql =================================================================== diff -u -r0336d51e6688a15639cb7d414223e947a1e8d118 -r50e336123ddaab4628f5f94f795340c8e845c6df --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20200617.sql (.../patch20200617.sql) (revision 0336d51e6688a15639cb7d414223e947a1e8d118) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20200617.sql (.../patch20200617.sql) (revision 50e336123ddaab4628f5f94f795340c8e845c6df) @@ -8,7 +8,16 @@ ALTER TABLE tl_laasse10_assessment CHANGE COLUMN time_limit relative_time_limit SMALLINT UNSIGNED NOT NULL DEFAULT 0; ALTER TABLE tl_laasse10_assessment ADD COLUMN absolute_time_limit DATETIME AFTER relative_time_limit; -ALTER TABLE tl_laasse10_user ADD COLUMN time_limit_adjustment SMALLINT; +CREATE TABLE tl_laasse10_time_limit ( + assessment_uid BIGINT NOT NULL, + user_id BIGINT NOT NULL, + adjustment SMALLINT NOT NULL DEFAULT 0, + CONSTRAINT FK_tl_laasse10_time_limit_1 FOREIGN KEY (assessment_uid) + REFERENCES tl_laasse10_assessment (uid) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT FK_tl_laasse10_time_limit_2 FOREIGN KEY (user_id) + REFERENCES lams_user (user_id) ON DELETE CASCADE ON UPDATE CASCADE + ); + -- Put all sql statements above here Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/Assessment.java =================================================================== diff -u -r29bc39cd5828fbffdc6a414fd18b91e6a89f66c4 -r50e336123ddaab4628f5f94f795340c8e845c6df --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/Assessment.java (.../Assessment.java) (revision 29bc39cd5828fbffdc6a414fd18b91e6a89f66c4) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/Assessment.java (.../Assessment.java) (revision 50e336123ddaab4628f5f94f795340c8e845c6df) @@ -26,19 +26,24 @@ import java.time.LocalDateTime; import java.time.ZoneId; import java.util.Date; +import java.util.HashMap; import java.util.Iterator; +import java.util.Map; import java.util.Set; import java.util.TreeSet; import javax.persistence.CascadeType; +import javax.persistence.CollectionTable; import javax.persistence.Column; +import javax.persistence.ElementCollection; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; +import javax.persistence.MapKeyColumn; import javax.persistence.OneToMany; import javax.persistence.OrderBy; import javax.persistence.Table; @@ -86,6 +91,12 @@ @Column(name = "absolute_time_limit") private LocalDateTime absoluteTimeLimit; + @ElementCollection(fetch = FetchType.LAZY) + @CollectionTable(name = "tl_laasse10_time_limit", joinColumns = @JoinColumn(name = "assessment_uid")) + @MapKeyColumn(name = "user_id") + @Column(name = "adjustment") + private Map timeLimitAdjustments = new HashMap<>(); + @Column(name = "questions_per_page") private int questionsPerPage; @@ -254,6 +265,8 @@ if (createdBy != null) { assessment.setCreatedBy((AssessmentUser) createdBy.clone()); } + + assessment.setTimeLimitAdjustments(new HashMap<>(this.getTimeLimitAdjustments())); } catch (CloneNotSupportedException e) { log.error("When clone " + Assessment.class + " failed"); } @@ -453,10 +466,16 @@ this.absoluteTimeLimit = absoluteTimeLimit; } + public Map getTimeLimitAdjustments() { + return timeLimitAdjustments; + } + + public void setTimeLimitAdjustments(Map timeLimitAdjustment) { + this.timeLimitAdjustments = timeLimitAdjustment; + } + /** * @return Returns the instructions set by the teacher. - * - * */ public String getInstructions() { return instructions; Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentUser.java =================================================================== diff -u -r0336d51e6688a15639cb7d414223e947a1e8d118 -r50e336123ddaab4628f5f94f795340c8e845c6df --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentUser.java (.../AssessmentUser.java) (revision 0336d51e6688a15639cb7d414223e947a1e8d118) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentUser.java (.../AssessmentUser.java) (revision 50e336123ddaab4628f5f94f795340c8e845c6df) @@ -79,9 +79,6 @@ @JoinColumn(name = "assessment_uid") private Assessment assessment; - @Column(name = "time_limit_adjustment") - private Integer timeLimitAdjustment; - // *************** NON Persist Fields ******************** // the user access some reousrce question date time. Use in monitoring summary page @@ -237,14 +234,6 @@ this.sessionFinished = sessionFinished; } - public Integer getTimeLimitAdjustment() { - return timeLimitAdjustment; - } - - public void setTimeLimitAdjustment(Integer timeLimitAdjustment) { - this.timeLimitAdjustment = timeLimitAdjustment; - } - @Override public boolean equals(Object obj) { if (this == obj) { Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java =================================================================== diff -u -r0336d51e6688a15639cb7d414223e947a1e8d118 -r50e336123ddaab4628f5f94f795340c8e845c6df --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 0336d51e6688a15639cb7d414223e947a1e8d118) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 50e336123ddaab4628f5f94f795340c8e845c6df) @@ -61,6 +61,8 @@ import org.lamsfoundation.lams.learningdesign.service.ExportToolContentException; import org.lamsfoundation.lams.learningdesign.service.IExportToolContentService; import org.lamsfoundation.lams.learningdesign.service.ImportToolContentException; +import org.lamsfoundation.lams.lesson.Lesson; +import org.lamsfoundation.lams.lesson.service.ILessonService; import org.lamsfoundation.lams.logevent.service.ILogEventService; import org.lamsfoundation.lams.notebook.model.NotebookEntry; import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants; @@ -169,6 +171,8 @@ private IUserManagementService userManagementService; + private ILessonService lessonService; + private IExportToolContentService exportContentService; private ICoreNotebookService coreNotebookService; @@ -3282,6 +3286,10 @@ this.learnerService = learnerService; } + public void setLessonService(ILessonService lessonService) { + this.lessonService = lessonService; + } + public IEventNotificationService getEventNotificationService() { return eventNotificationService; } @@ -3652,12 +3660,8 @@ } @Override - public List getExistingIndividualTimeLimitUsers(long toolContentId) { - return assessmentUserDao.getExistingIndividualTimeLimitUsers(toolContentId); + public List getPossibleIndividualTimeLimitUsers(long toolContentId, String searchString) { + Lesson lesson = lessonService.getLessonByToolContentId(toolContentId); + return lessonService.getLessonLearners(lesson.getLessonId(), searchString, null, null, true); } - - @Override - public List getPossibleIndividualTimeLimitUsers(long toolContentId, String searchString) { - return assessmentUserDao.getPossibleIndividualTimeLimitUsers(toolContentId, searchString); - } } \ No newline at end of file Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java =================================================================== diff -u -r0336d51e6688a15639cb7d414223e947a1e8d118 -r50e336123ddaab4628f5f94f795340c8e845c6df --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java (.../IAssessmentService.java) (revision 0336d51e6688a15639cb7d414223e947a1e8d118) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java (.../IAssessmentService.java) (revision 50e336123ddaab4628f5f94f795340c8e845c6df) @@ -540,7 +540,5 @@ Collection getAllGroupUsers(Long toolSessionId); - List getExistingIndividualTimeLimitUsers(long toolContentId); - - List getPossibleIndividualTimeLimitUsers(long toolContentId, String searchString); + List getPossibleIndividualTimeLimitUsers(long toolContentId, String searchString); } \ No newline at end of file Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/LearningWebsocketServer.java =================================================================== diff -u -r0336d51e6688a15639cb7d414223e947a1e8d118 -r50e336123ddaab4628f5f94f795340c8e845c6df --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/LearningWebsocketServer.java (.../LearningWebsocketServer.java) (revision 0336d51e6688a15639cb7d414223e947a1e8d118) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/LearningWebsocketServer.java (.../LearningWebsocketServer.java) (revision 50e336123ddaab4628f5f94f795340c8e845c6df) @@ -12,7 +12,6 @@ import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; -import java.util.stream.Collectors; import javax.websocket.CloseReason; import javax.websocket.CloseReason.CloseCodes; @@ -49,7 +48,7 @@ private LocalDateTime absoluteTimeLimit; // mapping of user ID (not UID) and when the learner entered the activity private final Map timeLimitLaunchedDate = new ConcurrentHashMap<>(); - private Map timeLimitAdjustment = new HashMap<>(); + private Map timeLimitAdjustment = new HashMap<>(); } /** @@ -101,9 +100,7 @@ updateAllUsers = true; } - Map existingTimeLimitAdjustment = LearningWebsocketServer.getAssessmentService() - .getExistingIndividualTimeLimitUsers(toolContentId).stream().collect(Collectors - .toMap(AssessmentUser::getUserId, AssessmentUser::getTimeLimitAdjustment)); + Map existingTimeLimitAdjustment = assessment.getTimeLimitAdjustments(); if (!existingTimeLimitAdjustment.equals(timeCache.timeLimitAdjustment)) { timeCache.timeLimitAdjustment = existingTimeLimitAdjustment; updateAllUsers = true; @@ -229,7 +226,7 @@ return timeCache == null ? null : LearningWebsocketServer.getSecondsLeft(timeCache, userId); } - private static Long getSecondsLeft(TimeCache timeCache, long userId) { + private static Long getSecondsLeft(TimeCache timeCache, Long userId) { if (timeCache.relativeTimeLimit == 0 && timeCache.absoluteTimeLimit == null) { // no time limit is set at all return null; @@ -250,7 +247,7 @@ LocalDateTime now = LocalDateTime.now(); long secondsLeft = Duration.between(now, finish).toSeconds(); - Integer adjustment = timeCache.timeLimitAdjustment.get(userId); + Integer adjustment = timeCache.timeLimitAdjustment.get(userId.intValue()); if (adjustment != null) { secondsLeft += adjustment * 60; } Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/MonitoringController.java =================================================================== diff -u -r0336d51e6688a15639cb7d414223e947a1e8d118 -r50e336123ddaab4628f5f94f795340c8e845c6df --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/MonitoringController.java (.../MonitoringController.java) (revision 0336d51e6688a15639cb7d414223e947a1e8d118) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/MonitoringController.java (.../MonitoringController.java) (revision 50e336123ddaab4628f5f94f795340c8e845c6df) @@ -29,6 +29,7 @@ import java.time.OffsetDateTime; import java.util.ArrayList; import java.util.Arrays; +import java.util.Comparator; import java.util.Date; import java.util.LinkedList; import java.util.List; @@ -842,15 +843,20 @@ public String getPossibleIndividualTimeLimitUsers( @RequestParam(name = AssessmentConstants.PARAM_TOOL_CONTENT_ID) long toolContentId, @RequestParam(name = "term") String searchString) { - List users = service.getPossibleIndividualTimeLimitUsers(toolContentId, searchString); + Assessment assessment = service.getAssessmentByContentId(toolContentId); + Map timeLimitAdjustments = assessment.getTimeLimitAdjustments(); + List users = service.getPossibleIndividualTimeLimitUsers(toolContentId, searchString); + ArrayNode responseJSON = JsonNodeFactory.instance.arrayNode(); - for (AssessmentUser user : users) { - // this format is required by jQuery UI autocomplete - ObjectNode userJSON = JsonNodeFactory.instance.objectNode(); - userJSON.put("value", user.getUid()); - userJSON.put("label", user.getFirstName() + " " + user.getLastName() + " (" + user.getLoginName() + ")"); - responseJSON.add(userJSON); + for (User user : users) { + if (!timeLimitAdjustments.containsKey(user.getUserId())) { + // this format is required by jQuery UI autocomplete + ObjectNode userJSON = JsonNodeFactory.instance.objectNode(); + userJSON.put("value", user.getUserId()); + userJSON.put("label", user.getFirstName() + " " + user.getLastName() + " (" + user.getLogin() + ")"); + responseJSON.add(userJSON); + } } return responseJSON.toString(); } @@ -859,27 +865,39 @@ @ResponseBody public String getExistingIndividualTimeLimitUsers( @RequestParam(name = AssessmentConstants.PARAM_TOOL_CONTENT_ID) long toolContentId) { - List users = service.getExistingIndividualTimeLimitUsers(toolContentId); + Assessment assessment = service.getAssessmentByContentId(toolContentId); + Map timeLimitAdjustments = assessment.getTimeLimitAdjustments(); + // find User objects based on their userIDs and sort by names + List users = assessment.getTimeLimitAdjustments().keySet().stream() + .map(userId -> userManagementService.getUserById(userId)).sorted(Comparator + .comparing(User::getFirstName).thenComparing(User::getLastName).thenComparing(User::getLogin)) + .collect(Collectors.toList()); + ArrayNode responseJSON = JsonNodeFactory.instance.arrayNode(); - for (AssessmentUser user : users) { - // this format is required by jQuery UI autocomplete + for (User user : users) { ObjectNode userJSON = JsonNodeFactory.instance.objectNode(); - userJSON.put("uid", user.getUid()); - userJSON.put("name", user.getFirstName() + " " + user.getLastName() + " (" + user.getLoginName() + ")"); - userJSON.put("adjustment", user.getTimeLimitAdjustment()); + userJSON.put("userId", user.getUserId()); + userJSON.put("name", user.getFirstName() + " " + user.getLastName() + " (" + user.getLogin() + ")"); + userJSON.put("adjustment", timeLimitAdjustments.get(user.getUserId().intValue())); responseJSON.add(userJSON); } return responseJSON.toString(); } @RequestMapping(path = "/updateIndividualTimeLimit", method = RequestMethod.POST) @ResponseStatus(HttpStatus.OK) - public void updateIndividualTimeLimit(@RequestParam long userUid, - @RequestParam(required = false) Integer adjustment) { - AssessmentUser user = (AssessmentUser) userManagementService.findById(AssessmentUser.class, userUid); - user.setTimeLimitAdjustment(adjustment); - userManagementService.save(user); + public void updateIndividualTimeLimit( + @RequestParam(name = AssessmentConstants.PARAM_TOOL_CONTENT_ID) long toolContentId, + @RequestParam int userId, @RequestParam(required = false) Integer adjustment) { + Assessment assessment = service.getAssessmentByContentId(toolContentId); + Map timeLimitAdjustments = assessment.getTimeLimitAdjustments(); + if (adjustment == null) { + timeLimitAdjustments.remove(userId); + } else { + timeLimitAdjustments.put(userId, adjustment); + } + service.saveOrUpdateAssessment(assessment); } @SuppressWarnings("unchecked") @@ -888,5 +906,4 @@ request.setAttribute(AssessmentConstants.ATTR_SESSION_MAP_ID, sessionMapID); return (SessionMap) request.getSession().getAttribute(sessionMapID); } - -} +} \ No newline at end of file Index: lams_tool_assessment/web/pages/authoring/advance.jsp =================================================================== diff -u -r1d135e72e252815fb722b15da2d14900c4e36891 -r50e336123ddaab4628f5f94f795340c8e845c6df --- lams_tool_assessment/web/pages/authoring/advance.jsp (.../advance.jsp) (revision 1d135e72e252815fb722b15da2d14900c4e36891) +++ lams_tool_assessment/web/pages/authoring/advance.jsp (.../advance.jsp) (revision 50e336123ddaab4628f5f94f795340c8e845c6df) @@ -123,9 +123,9 @@
-
Index: lams_tool_assessment/web/pages/monitoring/monitoring.jsp =================================================================== diff -u -r0336d51e6688a15639cb7d414223e947a1e8d118 -r50e336123ddaab4628f5f94f795340c8e845c6df --- lams_tool_assessment/web/pages/monitoring/monitoring.jsp (.../monitoring.jsp) (revision 0336d51e6688a15639cb7d414223e947a1e8d118) +++ lams_tool_assessment/web/pages/monitoring/monitoring.jsp (.../monitoring.jsp) (revision 50e336123ddaab4628f5f94f795340c8e845c6df) @@ -63,7 +63,6 @@ - Index: lams_tool_assessment/web/pages/monitoring/summary.jsp =================================================================== diff -u -r1feb0ae4be363318fca052f56c5e7be2f17c9f83 -r50e336123ddaab4628f5f94f795340c8e845c6df --- lams_tool_assessment/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision 1feb0ae4be363318fca052f56c5e7be2f17c9f83) +++ lams_tool_assessment/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision 50e336123ddaab4628f5f94f795340c8e845c6df) @@ -427,17 +427,17 @@ // and identify row and userUid var button = $(this), row = button.closest('.individual-time-limit-row'), - userUid = row.data('userUid'); + userId = row.data('userId'); // disable individual time adjustment if (toggle === false) { - updateIndividualTimeLimitOnServer(userUid); + updateIndividualTimeLimitOnServer(userId); return; } var existingAdjustment = +$('.individual-time-limit-value', row).text(), newAdjustment = existingAdjustment + adjust; - updateIndividualTimeLimitOnServer(userUid, newAdjustment); + updateIndividualTimeLimitOnServer(userId, newAdjustment); return; } } @@ -586,13 +586,14 @@ } - function updateIndividualTimeLimitOnServer(userUid, adjustment) { + function updateIndividualTimeLimitOnServer(userId, adjustment) { $.ajax({ 'url' : '', 'type': 'post', 'cache' : 'false', 'data': { - 'userUid' : userUid, + 'toolContentID' : '${assessment.contentId}', + 'userId' : userId, 'adjustment' : adjustment, '' : '' }, @@ -625,20 +626,15 @@ now = new Date().getTime(); $.each(users, function(){ var row = template.clone() - .attr('id', 'individual-time-limit-row-' + this.uid) - .data('userUid', this.uid) + .attr('id', 'individual-time-limit-row-' + this.userId) + .data('userId', this.userId) .addClass('individual-time-limit-row') .appendTo(table); $('.individual-time-limit-user-name', row).text(this.name); $('.individual-time-limit-value', row).text(this.adjustment); - // var individualFinishTime = now + (this.adjustment * 60 * 1000), - // individualFinishDate = new Date(individualFinishTime).toString(); - // $('time.timeago', row).attr('datetime', individualFinishDate); row.removeClass('hidden'); }); - - // $("time.timeago").timeago(); } }); }