TemplateDetails.java
package sk.iway.iwcm.doc;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Transient;
import javax.validation.constraints.NotBlank;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import sk.iway.iwcm.Constants;
import sk.iway.iwcm.Tools;
import sk.iway.iwcm.system.datatable.DataTableColumnType;
import sk.iway.iwcm.system.datatable.DocDetailsFullPathDeserializer;
import sk.iway.iwcm.system.datatable.TemplateGroupNameDeserializer;
import sk.iway.iwcm.system.datatable.annotations.DataTableColumn;
import sk.iway.iwcm.system.datatable.annotations.DataTableColumnEditor;
import sk.iway.iwcm.system.datatable.annotations.DataTableColumnEditorAttr;
import sk.iway.iwcm.system.datatable.annotations.DataTableColumnNested;
/**
* Drzi zaznam z tabulky templates
*
* @author $Author: jeeff $
* @version $Revision: 1.2 $
* @Title Interway Content Management
* @Company Interway s.r.o. (www.interway.sk)
* @Copyright Interway s.r.o. (c) 2001-2002
* @created $Date: 2003/11/23 13:22:41 $
*/
public class TemplateDetails {
@DataTableColumn(
data = "tempId",
inputType = {DataTableColumnType.ID},
title = "templates.temps-list.id"
)
private int tempId;
@NotBlank
@DataTableColumn(
inputType = DataTableColumnType.OPEN_EDITOR,
title = "components.news.template_title",
tab = "basic"
)
private String tempName;
@DataTableColumn(
inputType = DataTableColumnType.SELECT,
title = "admin.temp_group_list.editor.title",
tab = "basic"
)
@JsonDeserialize(using = TemplateGroupNameDeserializer.class)
private Long templatesGroupId;
private String templatesGroupName;
@NotBlank
@DataTableColumn(
inputType = DataTableColumnType.SELECT,
title = "admin.temps_list.jazyk",
tab = "basic"
)
private String lng = "";
/**
* V akych skupinach je mozne sablonu pouzit
*/
@JsonIgnore
private String availableGroups;
@DataTableColumn(inputType = DataTableColumnType.JSON, title="admin.temp.edit.showForDir",
tab = "accessTab", className = "dt-tree-group-array")
private List<GroupDetails> availableGrooupsList;
@NotBlank
@DataTableColumn(
inputType = DataTableColumnType.TEXT,
title = "temp_edit.forward",
tab = "basic",
editor = {
@DataTableColumnEditor(
attr = {
@DataTableColumnEditorAttr(key = "data-ac-url", value = "/admin/rest/templates/temps-list/autocomplete"),
@DataTableColumnEditorAttr(key = "data-ac-min-length", value = "1"),
@DataTableColumnEditorAttr(key = "data-ac-params", value = "#DTE_Field_templateInstallName,#DTE_Field_templatesGroupId"),
@DataTableColumnEditorAttr(key = "data-ac-select", value = "true")
}
)
}
)
private String forward;
@DataTableColumn(
inputType = DataTableColumnType.SELECT,
title = "admin.temp_group_list.inline_editing_mode",
tab = "basic"
)
private String inlineEditingMode;
@DataTableColumn(
inputType = DataTableColumnType.SELECT,
tab = "templatesTab",
title = "temp_edit.header",
editor = {
@DataTableColumnEditor(attr = {
@DataTableColumnEditorAttr(key = "data-dt-edit-url", value = "/admin/v9/webpages/web-pages-list/?groupid=SYSTEM&docid={id}"),
@DataTableColumnEditorAttr(key = "data-dt-edit-perms", value = "menuTemplates")
})
}
)
@JsonDeserialize(using = DocDetailsFullPathDeserializer.class)
private int headerDocId;
@JsonIgnore
private String headerDocData = null;
@DataTableColumn(
inputType = DataTableColumnType.SELECT,
tab = "templatesTab",
title = "temp_edit.footer",
editor = {
@DataTableColumnEditor(attr = {
@DataTableColumnEditorAttr(key = "data-dt-field-hr", value = "after"),
@DataTableColumnEditorAttr(key = "data-dt-edit-url", value = "/admin/v9/webpages/web-pages-list/?groupid=SYSTEM&docid={id}"),
@DataTableColumnEditorAttr(key = "data-dt-edit-perms", value = "menuTemplates")
})
}
)
@JsonDeserialize(using = DocDetailsFullPathDeserializer.class)
private int footerDocId;
@JsonIgnore
private String footerDocData = null;
@DataTableColumn(
inputType = DataTableColumnType.SELECT,
tab = "templatesTab",
title = "templates.temps-list.main-navigation",
editor = {
@DataTableColumnEditor(attr = {
@DataTableColumnEditorAttr(key = "data-dt-edit-url", value = "/admin/v9/webpages/web-pages-list/?groupid=SYSTEM&docid={id}"),
@DataTableColumnEditorAttr(key = "data-dt-edit-perms", value = "menuTemplates")
})
}
)
@JsonDeserialize(using = DocDetailsFullPathDeserializer.class)
private int menuDocId;
@JsonIgnore
private String menuDocData = null;
@DataTableColumn(
inputType = DataTableColumnType.SELECT,
tab = "templatesTab",
title = "templates.temps-list.side-navigation",
editor = {
@DataTableColumnEditor(attr = {
@DataTableColumnEditorAttr(key = "data-dt-field-hr", value = "after"),
@DataTableColumnEditorAttr(key = "data-dt-edit-url", value = "/admin/v9/webpages/web-pages-list/?groupid=SYSTEM&docid={id}"),
@DataTableColumnEditorAttr(key = "data-dt-edit-perms", value = "menuTemplates")
})
}
)
@JsonDeserialize(using = DocDetailsFullPathDeserializer.class)
private int rightMenuDocId;
@JsonIgnore
private String rightMenuDocData = null;
@DataTableColumn(
inputType = DataTableColumnType.SELECT,
tab = "templatesTab",
title = "templates.temps-list.object-a",
editor = {
@DataTableColumnEditor(attr = {
@DataTableColumnEditorAttr(key = "data-dt-edit-url", value = "/admin/v9/webpages/web-pages-list/?groupid=SYSTEM&docid={id}"),
@DataTableColumnEditorAttr(key = "data-dt-edit-perms", value = "menuTemplates")
})
}
)
@JsonDeserialize(using = DocDetailsFullPathDeserializer.class)
private int objectADocId;
@DataTableColumn(
inputType = DataTableColumnType.SELECT,
tab = "templatesTab",
title = "templates.temps-list.object-b",
editor = {
@DataTableColumnEditor(attr = {
@DataTableColumnEditorAttr(key = "data-dt-edit-url", value = "/admin/v9/webpages/web-pages-list/?groupid=SYSTEM&docid={id}"),
@DataTableColumnEditorAttr(key = "data-dt-edit-perms", value = "menuTemplates")
})
}
)
@JsonDeserialize(using = DocDetailsFullPathDeserializer.class)
private int objectBDocId;
@DataTableColumn(
inputType = DataTableColumnType.SELECT,
tab = "templatesTab",
title = "templates.temps-list.object-c",
editor = {
@DataTableColumnEditor(attr = {
@DataTableColumnEditorAttr(key = "data-dt-edit-url", value = "/admin/v9/webpages/web-pages-list/?groupid=SYSTEM&docid={id}"),
@DataTableColumnEditorAttr(key = "data-dt-edit-perms", value = "menuTemplates")
})
}
)
@JsonDeserialize(using = DocDetailsFullPathDeserializer.class)
private int objectCDocId;
@DataTableColumn(
inputType = DataTableColumnType.SELECT,
tab = "templatesTab",
title = "templates.temps-list.object-d",
editor = {
@DataTableColumnEditor(attr = {
@DataTableColumnEditorAttr(key = "data-dt-edit-url", value = "/admin/v9/webpages/web-pages-list/?groupid=SYSTEM&docid={id}"),
@DataTableColumnEditorAttr(key = "data-dt-edit-perms", value = "menuTemplates")
})
}
)
@JsonDeserialize(using = DocDetailsFullPathDeserializer.class)
private int objectDDocId;
@Transient
@DataTableColumn(inputType = DataTableColumnType.DATATABLE, title = " ",
tab = "folders",
editor = { @DataTableColumnEditor(
attr = {
@DataTableColumnEditorAttr(key = "data-dt-field-dt-url", value = "/admin/rest/groups?tempId={tempId}"),
@DataTableColumnEditorAttr(key = "data-dt-field-dt-columns", value = "sk.iway.iwcm.doc.GroupDetails"),
@DataTableColumnEditorAttr(key = "data-dt-field-dt-forceVisibleColumns", value = "groupId,groupName,fullPath"),
@DataTableColumnEditorAttr(key = "data-dt-field-dt-updateColumnsFunction", value = "updateColumnsGroupDetails"),
@DataTableColumnEditorAttr(key = "data-dt-field-dt-hideButtons", value = "create,edit,duplicate,remove,import,celledit"),
@DataTableColumnEditorAttr(key = "data-dt-field-full-headline", value = "templates.groups_title"),
@DataTableColumnEditorAttr(key = "data-dt-field-dt-serverSide", value = "false")
}
)
})
private List<GroupDetails> groupDetailsList;
@Transient
@DataTableColumn(inputType = DataTableColumnType.DATATABLE, title = " ",
tab = "sites",
editor = { @DataTableColumnEditor(
attr = {
@DataTableColumnEditorAttr(key = "data-dt-field-dt-url", value = "/admin/rest/web-pages?tempId={tempId}"),
@DataTableColumnEditorAttr(key = "data-dt-field-dt-columns", value = "sk.iway.iwcm.doc.DocDetails"),
@DataTableColumnEditorAttr(key = "data-dt-field-dt-forceVisibleColumns", value = "id,title,fullPath"),
@DataTableColumnEditorAttr(key = "data-dt-field-dt-updateColumnsFunction", value = "updateColumnsDocDetails"),
@DataTableColumnEditorAttr(key = "data-dt-field-dt-hideButtons", value = "create,edit,duplicate,remove,import,celledit"),
@DataTableColumnEditorAttr(key = "data-dt-field-full-headline", value = "templates.doc_title"),
@DataTableColumnEditorAttr(key = "data-dt-field-dt-serverSide", value = "true")
}
)
})
private List<DocDetails> docDetailsList;
@JsonIgnore
private String objectADocData = null;
@JsonIgnore
private String objectBDocData = null;
@JsonIgnore
private String objectCDocData = null;
@JsonIgnore
private String objectDDocData = null;
/**
* Moznost definovania InstallName per sablona (prepise aktualnu hodnotu z Constants)
*/
@DataTableColumn(inputType=DataTableColumnType.TEXT, title="temp_edit.install_name", tab = "basic")
private String templateInstallName;
@DataTableColumn(
inputType = DataTableColumnType.TEXTAREA,
title = "temp_edit.base_css_style",
tab = "style"
)
private String baseCssPath;
@DataTableColumn(
inputType = DataTableColumnType.TEXTAREA,
title = "templates.temps-list.css",
tab = "style",
editor = @DataTableColumnEditor(
attr = @DataTableColumnEditorAttr(key = "data-dt-field-hr", value = "after")
)
)
private String css;
@DataTableColumn(
inputType = DataTableColumnType.TEXTAREA,
title = "components.news.template_html",
tab = "style"
)
private String afterBodyData = "";
/**
* Moznost vypnutia spam ochrany per sablona
*/
@DataTableColumn(
inputType = DataTableColumnType.BOOLEAN,
title = "templates.temps-list.spam",
tab = "basic"
)
private boolean disableSpamProtection = false;
@DataTableColumn(
inputType = DataTableColumnType.DISABLED,
title = "admin.temps_list.pocet_pouziti",
renderFormat = "dt-format-number", //v DT to chceme ako cislo
sortAfter = "templatesGroupId",
editor = {
@DataTableColumnEditor(
type = "text",
attr = @DataTableColumnEditorAttr(key = "data-dt-field-hr", value = "before")
)
},
className = "hide-on-create"
)
private int pocetPouziti;
@DataTableColumnNested
@Transient
private TemplateDetailEditorFields editorFields = null;
public int getPocetPouziti() {
return pocetPouziti;
}
public void setPocetPouziti(int pocetPouziti) {
this.pocetPouziti = pocetPouziti;
}
/**
* Gets the tempId attribute of the TemplateDetails object
*
* @return The tempId value
*/
public int getTempId() {
return tempId;
}
/**
* Sets the tempId attribute of the TemplateDetails object
*
* @param newTempId The new tempId value
*/
public void setTempId(int newTempId) {
tempId = newTempId;
}
/**
* Sets the tempName attribute of the TemplateDetails object
*
* @param newTempName The new tempName value
*/
public void setTempName(String newTempName) {
tempName = newTempName;
}
/**
* Gets the tempName attribute of the TemplateDetails object
*
* @return The tempName value
*/
public String getTempName() {
return tempName;
}
/**
* Sets the forward attribute of the TemplateDetails object
*
* @param newForward The new forward value
*/
public void setForward(String newForward) {
forward = newForward;
}
/**
* Gets the forward attribute of the TemplateDetails object
*
* @return The forward value
*/
public String getForward() {
return forward;
}
/**
* Sets the headerDocId attribute of the TemplateDetails object
*
* @param newHeaderDocId The new headerDocId value
*/
public void setHeaderDocId(int newHeaderDocId) {
headerDocId = newHeaderDocId;
}
/**
* Gets the headerDocId attribute of the TemplateDetails object
*
* @return The headerDocId value
*/
public int getHeaderDocId() {
return headerDocId;
}
/**
* Sets the headerDocData attribute of the TemplateDetails object
*
* @param newHeaderDocData The new headerDocData value
*/
public void setHeaderDocData(String newHeaderDocData) {
headerDocData = newHeaderDocData;
}
/**
* Gets the headerDocData attribute of the TemplateDetails object
*
* @return The headerDocData value
*/
public String getHeaderDocData() {
if (headerDocData==null) headerDocData = TemplatesDB.getDocData(getHeaderDocId());
return headerDocData;
}
/**
* Sets the footerDocId attribute of the TemplateDetails object
*
* @param newFooterDocId The new footerDocId value
*/
public void setFooterDocId(int newFooterDocId) {
footerDocId = newFooterDocId;
}
/**
* Gets the footerDocId attribute of the TemplateDetails object
*
* @return The footerDocId value
*/
public int getFooterDocId() {
return footerDocId;
}
/**
* Sets the footerDocData attribute of the TemplateDetails object
*
* @param newFooterDocData The new footerDocData value
*/
public void setFooterDocData(String newFooterDocData) {
footerDocData = newFooterDocData;
}
/**
* Gets the footerDocData attribute of the TemplateDetails object
*
* @return The footerDocData value
*/
public String getFooterDocData() {
if (footerDocData==null) footerDocData = TemplatesDB.getDocData(getFooterDocId());
return footerDocData;
}
/**
* Sets the afterBodyData attribute of the TemplateDetails object
*
* @param newAfterBodyData The new afterBodyData value
*/
public void setAfterBodyData(String newAfterBodyData) {
afterBodyData = newAfterBodyData;
}
/**
* Gets the afterBodyData attribute of the TemplateDetails object
*
* @return The afterBodyData value
*/
public String getAfterBodyData() {
return afterBodyData;
}
/**
* Sets the css attribute of the TemplateDetails object
*
* @param newCss The new css value
*/
public void setCss(String newCss) {
css = newCss;
}
/**
* Gets the css attribute of the TemplateDetails object
*
* @return The css value
*/
public String getCss() {
return css;
}
public void setMenuDocId(int menuDocId) {
this.menuDocId = menuDocId;
}
public int getMenuDocId() {
return menuDocId;
}
public void setMenuDocData(String menuDocData) {
this.menuDocData = menuDocData;
}
public String getMenuDocData() {
if (menuDocData==null) menuDocData = TemplatesDB.getDocData(getMenuDocId());
return menuDocData;
}
public void setLng(String lng) {
this.lng = lng;
}
public String getLng() {
return lng;
}
public String getRightMenuDocData() {
if (rightMenuDocData==null) rightMenuDocData = TemplatesDB.getDocData(getRightMenuDocId());
return rightMenuDocData;
}
public void setRightMenuDocData(String rightMenuDocData) {
this.rightMenuDocData = rightMenuDocData;
}
public int getRightMenuDocId() {
return rightMenuDocId;
}
public void setRightMenuDocId(int rightMenuDocId) {
this.rightMenuDocId = rightMenuDocId;
}
public String getBaseCssPath() {
if (Tools.isEmpty(baseCssPath)) {
baseCssPath = "/css/page.css";
}
return baseCssPath;
}
public void setBaseCssPath(String baseCssPath) {
this.baseCssPath = baseCssPath;
}
public int getObjectADocId() {
return objectADocId;
}
public void setObjectADocId(int objectADocId) {
this.objectADocId = objectADocId;
}
public int getObjectBDocId() {
return objectBDocId;
}
public void setObjectBDocId(int objectBDocId) {
this.objectBDocId = objectBDocId;
}
public int getObjectCDocId() {
return objectCDocId;
}
public void setObjectCDocId(int objectCDocId) {
this.objectCDocId = objectCDocId;
}
public int getObjectDDocId() {
return objectDDocId;
}
public void setObjectDDocId(int objectDDocId) {
this.objectDDocId = objectDDocId;
}
public String getObjectADocData() {
if (objectADocData==null) objectADocData = TemplatesDB.getDocData(getObjectADocId());
return objectADocData;
}
public void setObjectADocData(String objectADocData) {
this.objectADocData = objectADocData;
}
public String getObjectBDocData() {
if (objectBDocData==null) objectBDocData = TemplatesDB.getDocData(getObjectBDocId());
return objectBDocData;
}
public void setObjectBDocData(String objectBDocData) {
this.objectBDocData = objectBDocData;
}
public String getObjectCDocData() {
if (objectCDocData==null) objectCDocData = TemplatesDB.getDocData(getObjectCDocId());
return objectCDocData;
}
public void setObjectCDocData(String objectCDocData) {
this.objectCDocData = objectCDocData;
}
public String getObjectDDocData() {
if (objectDDocData==null) objectDDocData = TemplatesDB.getDocData(getObjectDDocId());
return objectDDocData;
}
public void setObjectDDocData(String objectDDocData) {
this.objectDDocData = objectDDocData;
}
public String getAvailableGroups() {
return availableGroups;
}
@JsonIgnore
public int[] getAvailableGroupsInt() {
return Tools.getTokensInt(availableGroups, ",");
}
public void setAvailableGroups(String availableGroups) {
this.availableGroups = availableGroups;
}
public String getTemplateInstallName() {
return templateInstallName;
}
public void setTemplateInstallName(String templateInstallName) {
this.templateInstallName = templateInstallName;
}
public boolean isDisableSpamProtection() {
return disableSpamProtection;
}
public void setDisableSpamProtection(boolean disableSpamProtection) {
this.disableSpamProtection = disableSpamProtection;
}
public Long getTemplatesGroupId() {
return templatesGroupId;
}
public void setTemplatesGroupId(Long templatesGroupId) {
this.templatesGroupId = templatesGroupId;
}
//kvoli spatnej kompatibilite import/export medzi WebJETmi
public void setTemplatesGroupId(int templatesGroupId) {
this.templatesGroupId = Long.valueOf(templatesGroupId);
}
public String getTemplatesGroupName() {
return templatesGroupName;
}
public void setTemplatesGroupName(String templatesGroupName) {
this.templatesGroupName = templatesGroupName;
}
public boolean retrieveForwardExist() {
try {
File forwardFile = new File(sk.iway.iwcm.Tools.getRealPath("/templates/" + Constants.getInstallName() + "/" + this.forward));
return forwardFile.exists();
} catch (Exception e) {
sk.iway.iwcm.Logger.error(e);
}
return false;
}
public List<GroupDetails> getAvailableGrooupsList() {
List<GroupDetails> list = new ArrayList<>();
GroupsDB groupsDB = GroupsDB.getInstance();
for (int groupId : getAvailableGroupsInt()) {
GroupDetails group = groupsDB.getGroup(groupId);
if (group != null) list.add(group);
}
return list;
}
public void setAvailableGrooupsList(List<GroupDetails> availableGrooupsList) {
StringBuilder groupIds = new StringBuilder("");
for (GroupDetails group : availableGrooupsList) {
if (groupIds.length()>0) groupIds.append(",");
groupIds.append(String.valueOf(group.getGroupId()));
}
availableGroups = groupIds.toString();
}
public TemplateDetailEditorFields getEditorFields() {
return editorFields;
}
public void setEditorFields(TemplateDetailEditorFields editorFields) {
this.editorFields = editorFields;
}
public String getInlineEditingMode() {
return inlineEditingMode;
}
public void setInlineEditingMode(String inlineEditingMode) {
this.inlineEditingMode = inlineEditingMode;
}
}