import mir.config.MirPropertiesConfiguration;
import mir.entity.Entity;
-import mir.entity.adapter.*;
+import mir.entity.adapter.EntityAdapter;
+import mir.entity.adapter.EntityAdapterDefinition;
+import mir.entity.adapter.EntityAdapterModel;
+import mir.entity.adapter.ToManyRelationField;
+import mir.entity.adapter.ToOneRelationField;
import mir.generator.Generator;
import mir.generator.GeneratorExc;
import mir.generator.GeneratorFailure;
import mir.util.JDBCStringRoutines;
import mir.util.ParameterExpander;
import mir.util.StructuredContentParser;
-import mircoders.entity.EntityUploadedMedia;
import mircoders.entity.EntityContent;
+import mircoders.entity.EntityUploadedMedia;
import mircoders.global.MirGlobal;
import mircoders.localizer.MirAdminInterfaceLocalizer;
import mircoders.localizer.MirDataModelLocalizer;
import mircoders.localizer.MirLocalizerExc;
import mircoders.localizer.MirLocalizerFailure;
import mircoders.media.MediaHelper;
+import mircoders.module.ModuleCommentStatus;
import mircoders.module.ModuleContent;
import mircoders.module.ModuleLanguage;
import mircoders.storage.*;
import multex.Failure;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
public class MirBasicDataModelLocalizer implements MirDataModelLocalizer {
protected LoggerWrapper logger = new LoggerWrapper("Localizer.DataModel");
anEntityAdapterDefinition.addCalculatedField("language", new ToOneRelationField("to_language", "language", "id"));
anEntityAdapterDefinition.addCalculatedField("commentcount", new ContentCommentCountField(" and is_published='1'"));
anEntityAdapterDefinition.addCalculatedField("fullcommentcount", new ContentCommentCountField(""));
-
+ anEntityAdapterDefinition.addCalculatedField("commentstatuscount", new CommentStatusCountField());
anEntityAdapterDefinition.addCalculatedField("mediacount", new ContentMediaCountField("uploaded_media", true));
anEntityAdapterDefinition.addCalculatedField("fullmediacount", new ContentMediaCountField("uploaded_media", false));
anEntityAdapterDefinition.addCalculatedField("operations",
new EntityToSimpleOperationsField(MirGlobal.localizer().adminInterface().simpleArticleOperations()));
-
+
anEntityAdapterDefinition.addCalculatedField("languagename", new ContentToLanguageNameField());
anEntityAdapterDefinition.addCalculatedField("is_original", new ContentIsOriginalField());
public Object getValue(EntityAdapter anEntityAdapter) {
try {
- return Boolean.valueOf(MirGlobal.localizer().openPostings().
+ return new Boolean(MirGlobal.localizer().openPostings().
allowArticlePublication((EntityContent) anEntityAdapter.getEntity()));
}
catch (Throwable t) {
definition = new EntityAdapterDefinition();
definition.addCalculatedField("mediafolder", new ToOneRelationField("to_media_folder", "mediaFolder", "id"));
- definition.addCalculatedField("human_readable_size", new HumanReadableSizeField("value"));
+ definition.addCalculatedField("human_readable_size", new HumanReadableSizeField("size"));
definition.addDBDateField("creationdate", "webdb_create", configuration.getString("Mir.DefaultTimezone"));
definition.addCalculatedField("info", new MediaToMediaInfoField());
result.addMapping( "uploadedMedia", DatabaseUploadedMedia.getInstance(), definition);
definition = new EntityAdapterDefinition();
definition.addCalculatedField("mediafolder", new ToOneRelationField("to_media_folder", "mediaFolder", "id"));
- definition.addCalculatedField("human_readable_size", new HumanReadableSizeField("value"));
+ definition.addCalculatedField("human_readable_size", new HumanReadableSizeField("size"));
definition.addDBDateField("creationdate", "webdb_create", configuration.getString("Mir.DefaultTimezone"));
definition.addCalculatedField("info", new MediaToMediaInfoField());
definition.addCalculatedField("big_icon", new MediaToBigIconField());
result.addMapping( "image", DatabaseImages.getInstance(), definition);
definition = new EntityAdapterDefinition();
definition.addCalculatedField("mediafolder", new ToOneRelationField("to_media_folder", "mediaFolder", "id"));
- definition.addCalculatedField("human_readable_size", new HumanReadableSizeField("value"));
+ definition.addCalculatedField("human_readable_size", new HumanReadableSizeField("size"));
definition.addDBDateField("creationdate", "webdb_create", configuration.getString("Mir.DefaultTimezone"));
definition.addCalculatedField("info", new MediaToMediaInfoField());
definition.addCalculatedField("big_icon", new MediaToBigIconField());
result.addMapping( "audio", DatabaseAudio.getInstance(), definition);
definition = new EntityAdapterDefinition();
definition.addCalculatedField("mediafolder", new ToOneRelationField("to_media_folder", "mediaFolder", "id"));
- definition.addCalculatedField("human_readable_size", new HumanReadableSizeField("value"));
+ definition.addCalculatedField("human_readable_size", new HumanReadableSizeField("size"));
definition.addDBDateField("creationdate", "webdb_create", configuration.getString("Mir.DefaultTimezone"));
definition.addCalculatedField("info", new MediaToMediaInfoField());
definition.addCalculatedField("big_icon", new MediaToBigIconField());
definition = new EntityAdapterDefinition();
definition.addCalculatedField("mediafolder", new ToOneRelationField("to_media_folder", "mediaFolder", "id"));
- definition.addCalculatedField("human_readable_size", new HumanReadableSizeField("value"));
+ definition.addCalculatedField("human_readable_size", new HumanReadableSizeField("size"));
definition.addDBDateField("creationdate", "webdb_create", configuration.getString("Mir.DefaultTimezone"));
definition.addCalculatedField("info", new MediaToMediaInfoField());
definition.addCalculatedField("big_icon", new MediaToBigIconField());
List availableOperations = new ArrayList();
while (i.hasNext()) {
- MirAdminInterfaceLocalizer.MirSimpleEntityOperation operation =
- (MirAdminInterfaceLocalizer.MirSimpleEntityOperation) i.next();
+ MirAdminInterfaceLocalizer.EntityOperation operation =
+ (MirAdminInterfaceLocalizer.EntityOperation) i.next();
if (operation.isAvailable(anEntityAdapter)) {
availableOperations.add(operation.getName());
if (anEntityAdapter.get("is_html")!=null && anEntityAdapter.get("is_html").equals("1")) {
return MirGlobal.localizer().producerAssistant().filterHTMLText((String) anEntityAdapter.get(fieldName));
}
- return MirGlobal.localizer().producerAssistant().filterNonHTMLText((String) anEntityAdapter.get(fieldName));
+ return MirGlobal.localizer().producerAssistant().filterNonHTMLText((String) anEntityAdapter.get(fieldName));
}
catch (Throwable t) {
throw new RuntimeException(t.getMessage());
}
}
}
+
public static class MediaInfo {
private MediaHandler mediaHandler;
+ private Entity mediaType;
- public MediaInfo(MediaHandler aHandler) {
+ public MediaInfo(MediaHandler aHandler, Entity aMediaType) {
mediaHandler = aHandler;
+ mediaType = aMediaType;
}
+
public String getBigIcon() {
- if (mediaHandler == null)
- return "bla";
- return mediaHandler.getBigIconName();
+ return mediaHandler.getBigIconName();
}
public String getSmallIcon() {
- if (mediaHandler == null)
- return "bla";
- return mediaHandler.getTinyIconName();
+ return mediaHandler.getTinyIconName();
}
- public String getMediaType() {
- return "";
+ public String getDescription() {
+ return mediaHandler.getDescr(mediaType);
}
}
- protected class MediaToMediaInfoField implements EntityAdapterDefinition.CalculatedField {
+ protected static class MediaToMediaInfoField implements EntityAdapterDefinition.CalculatedField {
public Object getValue(EntityAdapter anEntityAdapter) {
try {
- MediaHandler mediaHandler = MediaHelper.getHandler(((EntityUploadedMedia) anEntityAdapter.getEntity()).getMediaType());
+ MediaHandler mediaHandler =
+ MediaHelper.getHandler(((EntityUploadedMedia) anEntityAdapter.getEntity()).getMediaType());
- return new MediaInfo(mediaHandler);
+ return new MediaInfo(mediaHandler,
+ ((EntityUploadedMedia) anEntityAdapter.getEntity()).getMediaType());
}
catch (Throwable t) {
- throw new RuntimeException(t.getMessage());
+ throw new Failure(t.getMessage(), t);
}
}
}
- protected class MediaToBigIconField implements EntityAdapterDefinition.CalculatedField {
+ protected static class MediaToBigIconField implements EntityAdapterDefinition.CalculatedField {
public Object getValue(EntityAdapter anEntityAdapter) {
try {
return MediaHelper.getHandler(((EntityUploadedMedia) anEntityAdapter.getEntity()).getMediaType()).getBigIconName();
}
}
- protected class ContentToCommentsField implements EntityAdapterDefinition.CalculatedField {
+ protected static class ContentToCommentsField implements EntityAdapterDefinition.CalculatedField {
private String extracondition;
private String order;
}
}
- protected class ContentToTopicsField implements EntityAdapterDefinition.CalculatedField {
+ protected static class ContentToTopicsField implements EntityAdapterDefinition.CalculatedField {
private String topicCondition;
private String topicOrder;
public Object getValue(EntityAdapter anEntityAdapter) {
try {
-
-
String condition = "cxt.content_id="+anEntityAdapter.get("id")+
" and cxt.topic_id=t.id";
- if (topicCondition!=null && topicCondition.length()>0)
+ if (topicCondition!=null && topicCondition.length()>0) {
condition = "(" + topicCondition + ") and " + condition;
+ }
return anEntityAdapter.getComplexRelation("t", Collections.singletonList("content_x_topic cxt"),
condition, topicOrder, "topic" );
}
}
- protected class ContentToMediaField implements EntityAdapterDefinition.CalculatedField {
+ protected static class ContentToMediaField implements EntityAdapterDefinition.CalculatedField {
private String definition;
private boolean published;
}
}
- protected class ContentToFirstMediaField implements EntityAdapterDefinition.CalculatedField {
+ protected static class ContentToFirstMediaField implements EntityAdapterDefinition.CalculatedField {
private String definition;
private boolean published;
}
}
- protected class CommentToMediaField implements EntityAdapterDefinition.CalculatedField {
+ protected static class CommentToMediaField implements EntityAdapterDefinition.CalculatedField {
private String definition;
private boolean published;
}
}
- protected class ContentToIconField implements EntityAdapterDefinition.CalculatedField {
+ protected static class ContentToIconField implements EntityAdapterDefinition.CalculatedField {
public Object getValue(EntityAdapter anEntityAdapter) {
- EntityAdapter media;
- Entity mediaType;
- Iterator iterator;
- Map result;
- MediaHandler mediaHandler;
String tinyIcon;
String iconAlt;
try {
- iterator = anEntityAdapter.getIterator("to_uploaded_media");
-
tinyIcon = MirGlobal.config().getString("Producer.Icon.TinyText");
iconAlt = "Text";
+ Iterator iterator = anEntityAdapter.getIterator("to_media_video");
+ if (!iterator.hasNext()) {
+ iterator = anEntityAdapter.getIterator("to_media_audio");
+ }
+ if (!iterator.hasNext()) {
+ iterator = anEntityAdapter.getIterator("to_media_images");
+ }
+ if (!iterator.hasNext()) {
+ iterator = anEntityAdapter.getIterator("to_media_other");
+ }
+
if (iterator.hasNext()) {
- media = (EntityAdapter) iterator.next();
+ EntityAdapter media = (EntityAdapter) iterator.next();
- mediaType = ((EntityUploadedMedia) (media.getEntity())).getMediaType();
- mediaHandler = MediaHelper.getHandler( mediaType );
+ Entity mediaType = ((EntityUploadedMedia) (media.getEntity())).getMediaType();
+ MediaHandler mediaHandler = MediaHelper.getHandler(mediaType);
tinyIcon = mediaHandler.getTinyIconName();
iconAlt = mediaHandler.getIconAltName();
}
}
catch (Throwable t) {
- logger.error("ContentToIconField: " +t.getMessage());
- throw new RuntimeException(t.getMessage());
+ throw new Failure(t.getMessage(), t);
}
- result = new HashMap();
+ Map result = new HashMap();
result.put("tiny_icon", MirGlobal.config().getString("Producer.ImageRoot") + "/" + tinyIcon);
result.put("icon_alt", iconAlt);
}
}
- protected class ContentCommentCountField implements EntityAdapterDefinition.CalculatedField {
+ protected static class ContentCommentCountField implements EntityAdapterDefinition.CalculatedField {
private String extraCondition;
public ContentCommentCountField(String anExtraCondition) {
- super();
-
extraCondition = anExtraCondition;
}
}
}
- protected class HumanReadableSizeField implements EntityAdapterDefinition.CalculatedField {
+ protected static class HumanReadableSizeField implements EntityAdapterDefinition.CalculatedField {
private String fieldName;
public HumanReadableSizeField(String aFieldName) {
public Object getValue(EntityAdapter anEntityAdapter) {
try {
String size = (String) anEntityAdapter.get(fieldName);
- if (size!=null)
+ if (size!=null) {
return NumberUtils.humanReadableSize(Double.parseDouble(size));
- return "";
+ }
+ return "";
}
catch (Throwable t) {
throw new RuntimeException(t.getMessage());
try {
if (anEntityAdapter.get("parent")!=null)
return anEntityAdapter.get("parent");
- return anEntityAdapter;
+ return anEntityAdapter;
}
catch (Throwable t) {
throw new MirLocalizerFailure(t);
}
}
}
+
+ protected static class CommentStatusCountField implements EntityAdapterDefinition.CalculatedField {
+ public Object getValue(EntityAdapter anEntityAdapter) {
+ return new CommentStatusCountField2(anEntityAdapter);
+ }
+ }
+
+ public static class CommentStatusCountField2 {
+ private final EntityAdapter comment;
+ private final ModuleCommentStatus mcs = new ModuleCommentStatus();
+
+ CommentStatusCountField2(EntityAdapter anEntityAdapter) {
+ comment = anEntityAdapter;
+ }
+
+ public String get(String aCommentStatus) {
+ try {
+ return Integer.toString(
+ DatabaseComment.getInstance().getSize(
+ "to_media=" + comment.get("id") + " and is_published='1' and to_comment_status = " +
+ mcs.commentStatusIdForName(aCommentStatus)));
+ }
+ catch (Exception e) {
+ return "0";
+ }
+ }
+ }
}