From 07ceff3e8350df983f85fc5437c959f69f7e1bc6 Mon Sep 17 00:00:00 2001 From: Jo Grimstad Date: Thu, 27 Apr 2017 11:34:42 +0200 Subject: [PATCH] #364 Remove labeling of existing images, and move code to ImageCreateController --- .../image/ImageCreateController.java | 18 ++++++++++++++++ .../multimedia/image/ImageListController.java | 21 ------------------- .../content/word/WordCreateController.java | 18 ++++++++++++++++ src/main/webapp/css/content/styles.css | 7 +++++-- 4 files changed, 41 insertions(+), 23 deletions(-) diff --git a/src/main/java/org/literacyapp/web/content/multimedia/image/ImageCreateController.java b/src/main/java/org/literacyapp/web/content/multimedia/image/ImageCreateController.java index 71e6dd330..39f725c68 100644 --- a/src/main/java/org/literacyapp/web/content/multimedia/image/ImageCreateController.java +++ b/src/main/java/org/literacyapp/web/content/multimedia/image/ImageCreateController.java @@ -3,6 +3,8 @@ import java.io.IOException; import java.net.URLEncoder; import java.util.Calendar; +import java.util.HashSet; +import java.util.Set; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; @@ -10,7 +12,9 @@ import org.apache.log4j.Logger; import org.literacyapp.dao.ImageDao; +import org.literacyapp.dao.WordDao; import org.literacyapp.model.Contributor; +import org.literacyapp.model.content.Word; import org.literacyapp.model.content.multimedia.Image; import org.literacyapp.model.enums.ContentLicense; import org.literacyapp.model.enums.Environment; @@ -42,6 +46,9 @@ public class ImageCreateController { @Autowired private ImageDao imageDao; + + @Autowired + private WordDao wordDao; @RequestMapping(method = RequestMethod.GET) public String handleRequest(Model model) { @@ -147,6 +154,17 @@ public String handleSubmit( SlackApiHelper.postMessage(Team.CONTENT_CREATION, text, iconUrl, imageUrl); } + // Label Image with Word of matching title + Word matchingWord = wordDao.readByText(contributor.getLocale(), image.getTitle()); + if (matchingWord != null) { + Set labeledWords = new HashSet<>(); + if (!labeledWords.contains(matchingWord)) { + labeledWords.add(matchingWord); + image.setWords(labeledWords); + imageDao.update(image); + } + } + return "redirect:/content/multimedia/image/list#" + image.getId(); } } diff --git a/src/main/java/org/literacyapp/web/content/multimedia/image/ImageListController.java b/src/main/java/org/literacyapp/web/content/multimedia/image/ImageListController.java index c1880eaa1..fb0e7a53c 100644 --- a/src/main/java/org/literacyapp/web/content/multimedia/image/ImageListController.java +++ b/src/main/java/org/literacyapp/web/content/multimedia/image/ImageListController.java @@ -1,14 +1,11 @@ package org.literacyapp.web.content.multimedia.image; import java.util.List; -import java.util.Set; import javax.servlet.http.HttpSession; import org.apache.log4j.Logger; import org.literacyapp.dao.ImageDao; -import org.literacyapp.dao.WordDao; import org.literacyapp.model.Contributor; -import org.literacyapp.model.content.Word; import org.literacyapp.model.content.multimedia.Image; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -24,9 +21,6 @@ public class ImageListController { @Autowired private ImageDao imageDao; - - @Autowired - private WordDao wordDao; @RequestMapping(method = RequestMethod.GET) public String handleRequest(Model model, HttpSession session) { @@ -34,22 +28,7 @@ public String handleRequest(Model model, HttpSession session) { Contributor contributor = (Contributor) session.getAttribute("contributor"); - // Label Images with Words of matching title - // TODO: move to ImageCreateController List images = imageDao.readAllOrdered(contributor.getLocale()); - for (Image image : images) { - Word matchingWord = wordDao.readByText(contributor.getLocale(), image.getTitle()); - if (matchingWord != null) { - Set labeledWords = image.getWords(); - if (!labeledWords.contains(matchingWord)) { - labeledWords.add(matchingWord); - image.setWords(labeledWords); - imageDao.update(image); - } - } - } - - images = imageDao.readAllOrdered(contributor.getLocale()); model.addAttribute("images", images); return "content/multimedia/image/list"; diff --git a/src/main/java/org/literacyapp/web/content/word/WordCreateController.java b/src/main/java/org/literacyapp/web/content/word/WordCreateController.java index 89c6ec243..2392579de 100644 --- a/src/main/java/org/literacyapp/web/content/word/WordCreateController.java +++ b/src/main/java/org/literacyapp/web/content/word/WordCreateController.java @@ -2,18 +2,22 @@ import java.net.URLEncoder; import java.util.Calendar; +import java.util.HashSet; import java.util.List; +import java.util.Set; import javax.servlet.http.HttpSession; import javax.validation.Valid; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.literacyapp.dao.AllophoneDao; +import org.literacyapp.dao.ImageDao; import org.literacyapp.dao.WordDao; import org.literacyapp.dao.WordRevisionEventDao; import org.literacyapp.model.Contributor; import org.literacyapp.model.content.Allophone; import org.literacyapp.model.content.Word; +import org.literacyapp.model.content.multimedia.Image; import org.literacyapp.model.contributor.WordRevisionEvent; import org.literacyapp.model.enums.Environment; import org.literacyapp.model.enums.Team; @@ -40,6 +44,9 @@ public class WordCreateController { @Autowired private WordRevisionEventDao wordRevisionEventDao; + + @Autowired + private ImageDao imageDao; @RequestMapping(method = RequestMethod.GET) public String handleRequest(Model model, HttpSession session) { @@ -116,6 +123,17 @@ public String handleSubmit( SlackApiHelper.postMessage(Team.CONTENT_CREATION, text, iconUrl, null); } + // Label Image with Word of matching title + Image matchingImage = imageDao.read(word.getText(), word.getLocale()); + if (matchingImage != null) { + Set labeledWords = matchingImage.getWords(); + if (!labeledWords.contains(word)) { + labeledWords.add(word); + matchingImage.setWords(labeledWords); + imageDao.update(matchingImage); + } + } + return "redirect:/content/word/list#" + word.getId(); } } diff --git a/src/main/webapp/css/content/styles.css b/src/main/webapp/css/content/styles.css index 2a2baaa12..582e83adf 100644 --- a/src/main/webapp/css/content/styles.css +++ b/src/main/webapp/css/content/styles.css @@ -49,6 +49,9 @@ nav { letter-spacing: .5rem; } -#labeledImages img { - width: 50%; +#labeledAudios img, +#labeledImages img, +#labeledVideos img { + width: 47%; + margin-right: 2%; }