Search in sources :

Example 6 with Number

use of ai.elimu.model.content.Number in project webapp by elimu-ai.

the class ImageEditController method handleAddContentLabelRequest.

@RequestMapping(value = "/{id}/add-content-label", method = RequestMethod.POST)
@ResponseBody
public String handleAddContentLabelRequest(HttpServletRequest request, @PathVariable Long id) {
    logger.info("handleAddContentLabelRequest");
    logger.info("id: " + id);
    Image image = imageDao.read(id);
    String letterIdParameter = request.getParameter("letterId");
    logger.info("letterIdParameter: " + letterIdParameter);
    if (StringUtils.isNotBlank(letterIdParameter)) {
        Long letterId = Long.valueOf(letterIdParameter);
        Letter letter = letterDao.read(letterId);
        Set<Letter> letters = image.getLetters();
        if (!letters.contains(letter)) {
            letters.add(letter);
            image.setRevisionNumber(image.getRevisionNumber() + 1);
            imageDao.update(image);
        }
    }
    String numberIdParameter = request.getParameter("numberId");
    logger.info("numberIdParameter: " + numberIdParameter);
    if (StringUtils.isNotBlank(numberIdParameter)) {
        Long numberId = Long.valueOf(numberIdParameter);
        Number number = numberDao.read(numberId);
        Set<Number> numbers = image.getNumbers();
        if (!numbers.contains(number)) {
            numbers.add(number);
            image.setRevisionNumber(image.getRevisionNumber() + 1);
            imageDao.update(image);
        }
    }
    String wordIdParameter = request.getParameter("wordId");
    logger.info("wordIdParameter: " + wordIdParameter);
    if (StringUtils.isNotBlank(wordIdParameter)) {
        Long wordId = Long.valueOf(wordIdParameter);
        Word word = wordDao.read(wordId);
        Set<Word> words = image.getWords();
        if (!words.contains(word)) {
            words.add(word);
            image.setRevisionNumber(image.getRevisionNumber() + 1);
            imageDao.update(image);
        }
    }
    return "success";
}
Also used : Letter(ai.elimu.model.content.Letter) Word(ai.elimu.model.content.Word) Number(ai.elimu.model.content.Number) Image(ai.elimu.model.content.multimedia.Image) RequestMapping(org.springframework.web.bind.annotation.RequestMapping) ResponseBody(org.springframework.web.bind.annotation.ResponseBody)

Example 7 with Number

use of ai.elimu.model.content.Number in project webapp by elimu-ai.

the class VideoEditController method handleAddContentLabelRequest.

@RequestMapping(value = "/{id}/add-content-label", method = RequestMethod.POST)
@ResponseBody
public String handleAddContentLabelRequest(HttpServletRequest request, @PathVariable Long id) {
    logger.info("handleAddContentLabelRequest");
    logger.info("id: " + id);
    Video video = videoDao.read(id);
    String letterIdParameter = request.getParameter("letterId");
    logger.info("letterIdParameter: " + letterIdParameter);
    if (StringUtils.isNotBlank(letterIdParameter)) {
        Long letterId = Long.valueOf(letterIdParameter);
        Letter letter = letterDao.read(letterId);
        Set<Letter> letters = video.getLetters();
        if (!letters.contains(letter)) {
            letters.add(letter);
            video.setRevisionNumber(video.getRevisionNumber() + 1);
            videoDao.update(video);
        }
    }
    String numberIdParameter = request.getParameter("numberId");
    logger.info("numberIdParameter: " + numberIdParameter);
    if (StringUtils.isNotBlank(numberIdParameter)) {
        Long numberId = Long.valueOf(numberIdParameter);
        Number number = numberDao.read(numberId);
        Set<Number> numbers = video.getNumbers();
        if (!numbers.contains(number)) {
            numbers.add(number);
            video.setRevisionNumber(video.getRevisionNumber() + 1);
            videoDao.update(video);
        }
    }
    String wordIdParameter = request.getParameter("wordId");
    logger.info("wordIdParameter: " + wordIdParameter);
    if (StringUtils.isNotBlank(wordIdParameter)) {
        Long wordId = Long.valueOf(wordIdParameter);
        Word word = wordDao.read(wordId);
        Set<Word> words = video.getWords();
        if (!words.contains(word)) {
            words.add(word);
            video.setRevisionNumber(video.getRevisionNumber() + 1);
            videoDao.update(video);
        }
    }
    return "success";
}
Also used : Letter(ai.elimu.model.content.Letter) Word(ai.elimu.model.content.Word) Number(ai.elimu.model.content.Number) Video(ai.elimu.model.content.multimedia.Video) RequestMapping(org.springframework.web.bind.annotation.RequestMapping) ResponseBody(org.springframework.web.bind.annotation.ResponseBody)

Example 8 with Number

use of ai.elimu.model.content.Number in project webapp by elimu-ai.

the class VideoEditController method handleRemoveContentLabelRequest.

@RequestMapping(value = "/{id}/remove-content-label", method = RequestMethod.POST)
@ResponseBody
public String handleRemoveContentLabelRequest(HttpServletRequest request, @PathVariable Long id) {
    logger.info("handleRemoveContentLabelRequest");
    logger.info("id: " + id);
    Video video = videoDao.read(id);
    String letterIdParameter = request.getParameter("letterId");
    logger.info("letterIdParameter: " + letterIdParameter);
    if (StringUtils.isNotBlank(letterIdParameter)) {
        Long letterId = Long.valueOf(letterIdParameter);
        Letter letter = letterDao.read(letterId);
        Set<Letter> letters = video.getLetters();
        Iterator<Letter> iterator = letters.iterator();
        while (iterator.hasNext()) {
            Letter existingLetter = iterator.next();
            if (existingLetter.getId().equals(letter.getId())) {
                iterator.remove();
            }
        }
        video.setRevisionNumber(video.getRevisionNumber() + 1);
        videoDao.update(video);
    }
    String numberIdParameter = request.getParameter("numberId");
    logger.info("numberIdParameter: " + numberIdParameter);
    if (StringUtils.isNotBlank(numberIdParameter)) {
        Long numberId = Long.valueOf(numberIdParameter);
        Number number = numberDao.read(numberId);
        Set<Number> numbers = video.getNumbers();
        Iterator<Number> iterator = numbers.iterator();
        while (iterator.hasNext()) {
            Number existingNumber = iterator.next();
            if (existingNumber.getId().equals(number.getId())) {
                iterator.remove();
            }
        }
        video.setRevisionNumber(video.getRevisionNumber() + 1);
        videoDao.update(video);
    }
    String wordIdParameter = request.getParameter("wordId");
    logger.info("wordIdParameter: " + wordIdParameter);
    if (StringUtils.isNotBlank(wordIdParameter)) {
        Long wordId = Long.valueOf(wordIdParameter);
        Word word = wordDao.read(wordId);
        Set<Word> words = video.getWords();
        Iterator<Word> iterator = words.iterator();
        while (iterator.hasNext()) {
            Word existingWord = iterator.next();
            if (existingWord.getId().equals(word.getId())) {
                iterator.remove();
            }
        }
        video.setRevisionNumber(video.getRevisionNumber() + 1);
        videoDao.update(video);
    }
    return "success";
}
Also used : Letter(ai.elimu.model.content.Letter) Word(ai.elimu.model.content.Word) Number(ai.elimu.model.content.Number) Video(ai.elimu.model.content.multimedia.Video) RequestMapping(org.springframework.web.bind.annotation.RequestMapping) ResponseBody(org.springframework.web.bind.annotation.ResponseBody)

Example 9 with Number

use of ai.elimu.model.content.Number in project webapp by elimu-ai.

the class NumberCreateController method handleSubmit.

@RequestMapping(method = RequestMethod.POST)
public String handleSubmit(HttpSession session, @Valid Number number, BindingResult result, Model model) {
    logger.info("handleSubmit");
    if (number.getLocale() == Locale.AR) {
        if (StringUtils.isBlank(number.getSymbol())) {
            result.rejectValue("symbol", "NotNull");
        }
    }
    Number existingNumber = numberDao.readByValue(number.getLocale(), number.getValue());
    if (existingNumber != null) {
        result.rejectValue("value", "NonUnique");
    }
    Contributor contributor = (Contributor) session.getAttribute("contributor");
    if (result.hasErrors()) {
        model.addAttribute("number", number);
        List<Word> words = wordDao.readAllOrdered(contributor.getLocale());
        model.addAttribute("words", words);
        return "content/number/create";
    } else {
        number.setTimeLastUpdate(Calendar.getInstance());
        numberDao.create(number);
        return "redirect:/content/number/list#" + number.getId();
    }
}
Also used : Word(ai.elimu.model.content.Word) Number(ai.elimu.model.content.Number) Contributor(ai.elimu.model.Contributor) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 10 with Number

use of ai.elimu.model.content.Number in project webapp by elimu-ai.

the class NumberEditController method handleSubmit.

@RequestMapping(value = "/{id}", method = RequestMethod.POST)
public String handleSubmit(HttpSession session, @Valid Number number, BindingResult result, Model model) {
    logger.info("handleSubmit");
    if (number.getLocale() == Locale.AR) {
        if (StringUtils.isBlank(number.getSymbol())) {
            result.rejectValue("symbol", "NotNull");
        }
    }
    Number existingNumber = numberDao.readByValue(number.getLocale(), number.getValue());
    if ((existingNumber != null) && !existingNumber.getId().equals(number.getId())) {
        result.rejectValue("value", "NonUnique");
    }
    Contributor contributor = (Contributor) session.getAttribute("contributor");
    if (result.hasErrors()) {
        model.addAttribute("number", number);
        List<Word> words = wordDao.readAllOrdered(contributor.getLocale());
        model.addAttribute("words", words);
        return "content/number/edit";
    } else {
        number.setTimeLastUpdate(Calendar.getInstance());
        number.setRevisionNumber(number.getRevisionNumber() + 1);
        numberDao.update(number);
        return "redirect:/content/number/list#" + number.getId();
    }
}
Also used : Word(ai.elimu.model.content.Word) Number(ai.elimu.model.content.Number) Contributor(ai.elimu.model.Contributor) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Aggregations

Number (ai.elimu.model.content.Number)17 Word (ai.elimu.model.content.Word)14 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)11 Letter (ai.elimu.model.content.Letter)9 ResponseBody (org.springframework.web.bind.annotation.ResponseBody)6 Contributor (ai.elimu.model.Contributor)5 ArrayList (java.util.ArrayList)5 LetterGson (ai.elimu.model.gson.content.LetterGson)3 NumberGson (ai.elimu.model.gson.content.NumberGson)3 WordGson (ai.elimu.model.gson.content.WordGson)3 Audio (ai.elimu.model.content.multimedia.Audio)2 Image (ai.elimu.model.content.multimedia.Image)2 Video (ai.elimu.model.content.multimedia.Video)2 Test (org.junit.Test)2 Device (ai.elimu.model.Device)1 NumberLearningEvent (ai.elimu.model.analytics.NumberLearningEvent)1 AudioGson (ai.elimu.model.gson.content.multimedia.AudioGson)1 ImageGson (ai.elimu.model.gson.content.multimedia.ImageGson)1 VideoGson (ai.elimu.model.gson.content.multimedia.VideoGson)1