Skip to content

Commit

Permalink
S2U-27 Messages: Convert a private message into a forum message in th…
Browse files Browse the repository at this point in the history
…e FAQ forum - MASTER (#11757)
  • Loading branch information
SirSaibot authored Jul 21, 2023
1 parent a15eabe commit cecc96a
Show file tree
Hide file tree
Showing 23 changed files with 692 additions and 20 deletions.
5 changes: 5 additions & 0 deletions kernel/api/src/main/java/org/sakaiproject/site/api/Site.java
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,11 @@ public interface Site extends Edit, Comparable, Serializable, AuthzGroup
*/
public final static String PROP_SITE_MATHJAX_ALLOWED = "mathJaxAllowed";

/**
* property name for site locale
*/
public final static String PROP_SITE_LOCALE = "locale_string";

/**
* property name for custom overview
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,9 @@

import java.util.LinkedHashSet;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Optional;
import java.util.Set;

import org.sakaiproject.entity.api.Entity;
Expand Down Expand Up @@ -1441,4 +1443,16 @@ public enum SiteTitleValidationStatus {
* @return true if the stealthed tool is present in the given site; false otherwise
*/
public boolean isStealthedToolPresent(Site site, String toolID);

/**
* Gets site locale for site id
* @return Optional of locale defined as site property
*/
public Optional<Locale> getSiteLocale(String siteId);

/**
* Gets site locale for site
* @return Optional of locale defined as site property
*/
public Optional<Locale> getSiteLocale(Site site);
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,11 @@
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Observable;
import java.util.Observer;
import java.util.Optional;
import java.util.Properties;
import java.util.Set;
import java.util.Stack;
Expand Down Expand Up @@ -3926,4 +3928,29 @@ public boolean isStealthedToolPresent(Site site, String toolID) {

return false;
}

public Optional<Locale> getSiteLocale(String siteId) {
try {
return getSiteLocale(getSite(siteId));
} catch (IdUnusedException e) {
log.error("Could not find site with id [{}], returning empty optional: {}",
siteId, e.toString());
return Optional.empty();
}
}

public Optional<Locale> getSiteLocale(Site site) {
if (site != null) {
String localeString = site.getProperties().getProperty(Site.PROP_SITE_LOCALE);
if (localeString != null) {
Locale locale = serverConfigurationService().getLocaleFromString(localeString);
return Optional.of(locale);
}
// No locale specified in site properties, that's okay
} else {
log.error("Site is null, returning empty optional: {}");
}

return Optional.empty();
}
}
10 changes: 7 additions & 3 deletions library/src/skins/default/src/sass/tool.scss
Original file line number Diff line number Diff line change
Expand Up @@ -228,9 +228,13 @@ label {
color: var(--sakai-text-color-2);
}

.form-control-required .form-control-label::after {
content: ' *';
color: var(--sakai-highlight-color);
.form-control-required {
.form-control-label, .form-label {
&::after {
content: ' *';
color: var(--sakai-highlight-color);
}
}
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -971,3 +971,20 @@ widget_title=Discussions

forums_revise_title_validation=Please enter a valid forum title.
topics_revise_title_validation=Please enter a valid topic title.

#S2U-27
pvt_publish_to_faq=Post to FAQ Forum
pvt_publish_to_faq_success=The message was successfully posted to FAQ
pvt_title=Title
pvt_question=Question
pvt_question_title_prefix=Q:
pvt_answer=Answer
pvt_answer_title_prefix=A:
pvt_answer_info=You can leave the answer field empty if you don\u0027t want to post it yet.
pvt_missing_title=You must enter a title before you can post to FAQ.
pvt_missing_question=You must enter a question before you can post to FAQ.

cdfm_faq_forum_title=FAQ Forum
cdfm_faq_forum_description=Forum for frequently asked questions
cdfm_faq_topic_title=FAQ Topic
cdfm_faq_topic_description=Topic for frequently asked questions
Original file line number Diff line number Diff line change
Expand Up @@ -966,3 +966,19 @@ widget_title=Debat

forums_revise_title_validation=Cal que introdu\u00efu un nom de f\u00f2rum v\u00e0lid.
topics_revise_title_validation=Cal que introdu\u00efu un nom de tema v\u00e0lid.

#S2U-27
pvt_publish_to_faq=Publicar al debat FAQ
pvt_publish_to_faq_success=El missatge s\u2019ha publicat correctament en Preguntes Mes Frequents
pvt_title=T\u00edtol
pvt_question=Pregunta
pvt_question_title_prefix=P:
pvt_answer=Resposta
pvt_answer_title_prefix=R:
pvt_answer_info=Podeu deixar el camp de resposta buit si encara no el voleu publicar
pvt_missing_title=Heu d\u0027introduir un titol abans de poder publicar a les Preguntes Freq\u00fcents
pvt_missing_question=Heu d\u0027introduir una pregunta abans de poder publicar a les Preguntes Freq\u00fcents
cdfm_faq_forum_title=F\u00f2rum Preguntes Freq\u00fcents
cdfm_faq_forum_description=F\u00f2rum per Preguntes Freq\u00fcents
cdfm_faq_topic_title=Tema Preguntes Freq\u00fcents
cdfm_faq_topic_description=Tema per a Preguntes Freq\u00fcents
Original file line number Diff line number Diff line change
Expand Up @@ -951,3 +951,19 @@ widget_title=Foros

forums_revise_title_validation=Introduzca un t\u00edtulo v\u00e1lido para el foro
topics_revise_title_validation=Introduzca un t\u00edtulo v\u00e1lido para el tema

#S2U-27
pvt_publish_to_faq=Publicar en el foro FAQ
pvt_publish_to_faq_success=El mensaje se ha publicado correctamente en preguntas m\u00e1s frecuentes
pvt_title=T\u00edtulo
pvt_question=Pregunta
pvt_question_title_prefix=P:
pvt_answer=Respuesta
pvt_answer_title_prefix=R:
pvt_answer_info=Puedes dejar la respuesta vac\u00eda si no quieres publicarla a\u00fan.
pvt_missing_title=Debe introducir un t\u00edtulo antes de poder publicar en preguntas frecuentes.
pvt_missing_question=Debe introducir una pregunta antes de poder publicar en preguntas frecuentes.
cdfm_faq_forum_title=Foro preguntas frecuentes
cdfm_faq_forum_description=Foro para preguntas frecuentes
cdfm_faq_topic_title=Preguntas frecuentes
cdfm_faq_topic_description=Tema para las preguntas m\u00e1s frecuentes
Original file line number Diff line number Diff line change
Expand Up @@ -966,3 +966,21 @@ widget_title=Foroak

forums_revise_title_validation=Idatzi baliozko titulu bat fororako.
topics_revise_title_validation=Idatzi baliozko titulu bat gairako.

#S2U-27
pvt_publish_to_faq=Publish to FAQ
pvt_publish_to_faq=Publikatu FAQ gisa
pvt_publish_to_faq_success=Mezua ongi publikatu da FAQ gisa
pvt_title=Titulua
pvt_question=Galdera
pvt_question_title_prefix=Q:
pvt_answer=Erantzuna
pvt_answer_title_prefix=A:
pvt_answer_info=Erantzunaren eremua hutsik utz dezakezu publikatu nahi ez baduzu oraindik.
pvt_missing_title=Ezinbestekoa da izenburu bat sartzea "Ohiko galderak" atalean publikatzeko.
pvt_missing_question=Ezinbestekoa da galdera bat sartzea "Ohiko galderak" atalean publikatzeko.

cdfm_faq_forum_title=FAQ foroa
cdfm_faq_forum_description=Galdera ohikoentzako foroa
cdfm_faq_topic_title=FAQ gaia
cdfm_faq_topic_description=Galdera ohikoentzako gaia
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,9 @@ public interface DiscussionForum extends OpenForum {
public Boolean getRestrictPermissionsForGroups();

public void setRestrictPermissionsForGroups(Boolean restrictPermissionsForGroups);
}

public Boolean getFaqForum();

public void setFaqForum(Boolean isFaqForum);

}
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,8 @@ public interface DiscussionTopic extends OpenTopic {
public Boolean getRestrictPermissionsForGroups();

public void setRestrictPermissionsForGroups(Boolean restrictPermissionsForGroups);
}

public Boolean getFaqTopic();

public void setFaqTopic(Boolean isFaqTopic);
}
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,44 @@ public interface MessageForumsForumManager {
public BaseForum getForumById(boolean open, Long forumId);
public BaseForum getForumByUuid(String forumId);

/**
* Retrieve FAQ Forum from a given area
* @return existing faq forum or null
*/
public DiscussionForum getFaqForumForArea(Area area);

/**
* Retrieve FAQ Topic from a given forum
* @return existing faq forum or null
*/
public DiscussionTopic getFaqTopicForForum(DiscussionForum discussionForum);

/**
* Create and save FAQ Forum for a given area
* @return newly created faq forum
*/
public DiscussionForum createFaqForum(Area discussionArea);

/**
* Create and save FAQ Topic for a given forum
* @return newly created faq topic
*/
public DiscussionTopic createFaqTopic(DiscussionForum discussionForum);

/**
* Retrieve or create and save FAQ Forum from a given area
* Create and save FAQ Forum for a given area
* @return existing or newly created faq forum
*/
public DiscussionForum getOrCreateFaqForumForArea(Area area);

/**
* Retrieve or create and save FAQ Topic from a given forum
* Create and save FAQ Forum for a given area
* @return existing or newly created faq topic
*/
public DiscussionTopic getOrCreateFaqTopicForForum(DiscussionForum discussionForum);

/**
* Create and save an empty discussion forum
* @return discussion forum
Expand Down
4 changes: 4 additions & 0 deletions msgcntr/messageforums-app/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,10 @@
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -324,6 +324,8 @@ public class DiscussionForumTool {
private static final String AUTOCREATE_TOPICS_GROUPS_DESCRIPTION = "cdfm_autocreate_topics_desc_groups";
private static final String DUPLICATE_COPY_TITLE = "cdfm_duplicate_copy_title";
private static final String TASK_NOT_CREATED = "cdfm_cant_create_task";
private static final String MSG_PVT_ANSWER_PREFIX = "pvt_answer_title_prefix";
private static final String MSG_PVT_QUESTION_PREFIX = "pvt_question_title_prefix";

private static final String FROM_PAGE = "msgForum:mainOrForumOrTopic";
/**
Expand Down Expand Up @@ -4316,12 +4318,34 @@ public String processDfMsgReplyMsgFromEntire()

public String processDfMsgReplyMsg()
{
selectedMessageCount = 0;
if(selectedMessage.getMessage().getTitle() != null && !selectedMessage.getMessage().getTitle().startsWith(getResourceBundleString(MSG_REPLY_PREFIX)))
this.composeTitle = getResourceBundleString(MSG_REPLY_PREFIX) + " " + selectedMessage.getMessage().getTitle() + " ";
else
this.composeTitle = selectedMessage.getMessage().getTitle();

selectedMessageCount = 0;

boolean isFaqForum = Boolean.TRUE.equals(selectedTopic.getTopic().getFaqTopic());

String replyPrefix = getResourceBundleString(MSG_REPLY_PREFIX);
String answerPrefix = getResourceBundleString(MSG_PVT_ANSWER_PREFIX);
String questionPrefix = getResourceBundleString(MSG_PVT_QUESTION_PREFIX);
String title = StringUtils.trim(selectedMessage.getMessage().getTitle());

if (StringUtils.startsWith(title, replyPrefix)) {
// Re: title --> Re: title
this.composeTitle = title;
} else if (isFaqForum) {
if (StringUtils.startsWith(title, questionPrefix)) {
// Q: title -> A: title
this.composeTitle = StringUtils.replace(title, questionPrefix, answerPrefix);
} else {
// title --> Re: title
// A: title --> Re: A: title
this.composeTitle = replyPrefix + " " + title;
}
} else {
// title --> Re: title
// A: title --> Re: A: title
// Q: title --> Re: Q: title
this.composeTitle = replyPrefix + " " + title;
}

return "dfMessageReply";
}

Expand Down
Loading

0 comments on commit cecc96a

Please sign in to comment.