Skip to content

Commit

Permalink
Merge pull request #366 from jogrimst/master
Browse files Browse the repository at this point in the history
#364 Remove labeling of existing images, and move code to ImageCreateController
  • Loading branch information
literacyapp authored Apr 27, 2017
2 parents 275ea86 + 07ceff3 commit 73b47e7
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,18 @@
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;
import org.apache.commons.lang.StringUtils;

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;
Expand Down Expand Up @@ -42,6 +46,9 @@ public class ImageCreateController {

@Autowired
private ImageDao imageDao;

@Autowired
private WordDao wordDao;

@RequestMapping(method = RequestMethod.GET)
public String handleRequest(Model model) {
Expand Down Expand Up @@ -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<Word> labeledWords = new HashSet<>();
if (!labeledWords.contains(matchingWord)) {
labeledWords.add(matchingWord);
image.setWords(labeledWords);
imageDao.update(image);
}
}

return "redirect:/content/multimedia/image/list#" + image.getId();
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -24,32 +21,14 @@ public class ImageListController {

@Autowired
private ImageDao imageDao;

@Autowired
private WordDao wordDao;

@RequestMapping(method = RequestMethod.GET)
public String handleRequest(Model model, HttpSession session) {
logger.info("handleRequest");

Contributor contributor = (Contributor) session.getAttribute("contributor");

// Label Images with Words of matching title
// TODO: move to ImageCreateController
List<Image> images = imageDao.readAllOrdered(contributor.getLocale());
for (Image image : images) {
Word matchingWord = wordDao.readByText(contributor.getLocale(), image.getTitle());
if (matchingWord != null) {
Set<Word> 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";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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) {
Expand Down Expand Up @@ -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<Word> labeledWords = matchingImage.getWords();
if (!labeledWords.contains(word)) {
labeledWords.add(word);
matchingImage.setWords(labeledWords);
imageDao.update(matchingImage);
}
}

return "redirect:/content/word/list#" + word.getId();
}
}
Expand Down
7 changes: 5 additions & 2 deletions src/main/webapp/css/content/styles.css
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,9 @@ nav {
letter-spacing: .5rem;
}

#labeledImages img {
width: 50%;
#labeledAudios img,
#labeledImages img,
#labeledVideos img {
width: 47%;
margin-right: 2%;
}

0 comments on commit 73b47e7

Please sign in to comment.