InsertScriptBean.java
package sk.iway.iwcm.components.insertScript; //NOSONAR
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import javax.persistence.*;
import javax.validation.constraints.NotBlank;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import sk.iway.iwcm.database.ActiveRecordRepository;
import sk.iway.iwcm.doc.DocDB;
import sk.iway.iwcm.doc.DocDetails;
import sk.iway.iwcm.doc.GroupsDB;
import sk.iway.iwcm.system.adminlog.EntityListenersType;
import sk.iway.iwcm.system.datatable.DataTableColumnType;
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.jpa.AllowHtmlAttributeConverter;
/**
* InsertScriptBean.java - >>>POPIS MA<<<<
*
*@Title webjet7
*@Company Interway s.r.o. (www.interway.sk)
*@Copyright Interway s.r.o. (c) 2001-2010
*@author $Author: prau $
*@version $Revision: 1.3 $
*@created Date: 14.09.2016 14:46:13
*@modified $Date: 2004/08/16 06:26:11 $
*/
@Entity
@Table(name="insert_script")
@EntityListeners(sk.iway.iwcm.system.adminlog.AuditEntityListener.class)
@EntityListenersType(sk.iway.iwcm.Adminlog.TYPE_INSERT_SCRIPT)
public class InsertScriptBean extends ActiveRecordRepository implements Serializable
{
@JsonIgnore
private static final long serialVersionUID = -1L;
@Id
@GeneratedValue(generator="WJGen_insert_script")
@TableGenerator(name="WJGen_insert_script",pkColumnValue="insert_script")
@Column(name="insert_script_id")
@DataTableColumn(inputType=DataTableColumnType.ID)
private Long id;
@Column(name="name")
@NotBlank
@DataTableColumn(inputType=DataTableColumnType.OPEN_EDITOR, tab="main")
String name;
@Column(name="position")
@NotBlank
@DataTableColumn(
inputType=DataTableColumnType.TEXT,
tab="main",
editor = {
@DataTableColumnEditor(
attr = {
@DataTableColumnEditorAttr(key = "data-ac-url", value = "/admin/rest/components/insert-script/positions"),
@DataTableColumnEditorAttr(key = "data-ac-select", value = "true")
}
)
}
)
String position;
@Column(name="cookie_class")
@NotBlank
@DataTableColumn(inputType=DataTableColumnType.SELECT, tab="main")
String cookieClass;
@Column(name="valid_from")
@Temporal(TemporalType.TIMESTAMP)
@DataTableColumn(inputType=DataTableColumnType.DATETIME, tab="scriptPerms", title="user.admin.allowLoginStart")
Date validFrom;
@Column(name="valid_to")
@Temporal(TemporalType.TIMESTAMP)
@DataTableColumn(inputType=DataTableColumnType.DATETIME, tab="scriptPerms", title="user.admin.allowLoginEnd")
Date validTo;
@JsonManagedReference(value="insertScriptBeanGr")
@OneToMany(mappedBy="insertScriptBeanGr",fetch=FetchType.LAZY,cascade={CascadeType.ALL},orphanRemoval=true)
@DataTableColumn(inputType=DataTableColumnType.JSON, tab="scriptPerms", title="grouptree.title", className="dt-tree-group-array",
editor = { @DataTableColumnEditor( attr = {
@DataTableColumnEditorAttr(key = "data-dt-json-addbutton", value = "editor.json.addGroup")
} )}
)
List<InsertScriptGroupBean> groupIds; //NOSONAR
@JsonManagedReference(value="insertScriptBeanDoc")
@OneToMany(mappedBy="insertScriptBeanDoc",fetch=FetchType.LAZY,cascade={CascadeType.ALL},orphanRemoval=true)
@DataTableColumn(inputType=DataTableColumnType.JSON, tab="scriptPerms", title="components.insert_script.choose_pages", className="dt-tree-page-array",
editor = { @DataTableColumnEditor( attr = {
@DataTableColumnEditorAttr(key = "data-dt-json-addbutton", value = "editor.json.addPage")
} )}
)
List<InsertScriptDocBean> docIds; //NOSONAR
@Column(name="script_body")
@Convert(converter = AllowHtmlAttributeConverter.class)
@DataTableColumn(inputType=DataTableColumnType.TEXTAREA, tab="scriptBody", title="components.insert_script.body", className = "textarea-code show-html")
String scriptBody;
@Column(name="save_date")
@Temporal(TemporalType.TIMESTAMP)
Date saveDate;
@Column(name="user_id")
int user;
@Column(name="domain_id")
int domainId;
public InsertScriptBean() {
super();
validFrom = null;
validTo = null;
}
@Override
public void setId(Long id) {
this.id = id;
}
@Override
public Long getId()
{
return id;
}
public int getInsertScriptId()
{
if (id==null) return 0;
return getId().intValue();
}
public void setInsertScriptId(int insertScriptId)
{
setId(Long.valueOf(insertScriptId));
}
public int getUser()
{
return user;
}
public void setUser(int user)
{
this.user = user;
}
public String getScriptBody()
{
return scriptBody;
}
public void setScriptBody(String scriptBody)
{
this.scriptBody = scriptBody;
}
public String getPosition()
{
return position;
}
public void setPosition(String position)
{
this.position = position;
}
public Date getSaveDate() {
return saveDate;
}
public void setSaveDate(Date saveDate) {
this.saveDate = saveDate;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getValidFrom() {
return validFrom;
}
public void setValidFrom(Date validFrom) {
this.validFrom = validFrom;
}
public Date getValidTo() {
return validTo;
}
public void setValidTo(Date validTo) {
this.validTo = validTo;
}
public List<InsertScriptGroupBean> getGroupIds() {
return groupIds;
}
//@JsonManagedReference(value="insertScriptBeanGr")
public void setGroupIds(List<InsertScriptGroupBean> groupIds) {
this.groupIds = groupIds;
}
public List<InsertScriptDocBean> getDocIds() {
return docIds;
}
//@JsonManagedReference(value="insertScriptBeanDoc")
public void setDocIds(List<InsertScriptDocBean> docIds) {
this.docIds = docIds;
}
@Override
public boolean save()
{
setSaveDate(new Date());
InsertScriptDB.deleteCache();
return super.save();
}
@Override
public boolean delete()
{
InsertScriptDB.deleteCache();
return super.delete();
}
public int getDomainId() {
return domainId;
}
public void setDomainId(int domainId) {
this.domainId = domainId;
}
public String getCookieClass() {
return cookieClass;
}
public void setCookieClass(String cookieClass) {
this.cookieClass = cookieClass;
}
public List<String> getGroupsAndDocs() {
List<String> groups = null;
try {
groups = getGroupIds().stream().map(g ->
GroupsDB.getInstance().getGroupNamePath(g.groupId) + " (" + g.groupId + ")"
).collect(Collectors.toList());
} catch (Exception e) {
}
List<String> docs = null;
try {
docs = getDocIds().stream().map(d -> {
DocDetails doc = DocDB.getInstance().getDoc(d.docId);
try {
return doc.getVirtualPath() + " (" + doc.getDocId() + ")";
} catch(Exception e) {
return "";
}
}).collect(Collectors.toList());
} catch (Exception e) {
}
List<String> result = new ArrayList<>();
if(groups != null) {
result.addAll(groups);
}
if(docs != null) {
result.addAll(docs);
}
return result;
}
}
/*
!!!!!
alter table insert_script add cookie_class NVARCHAR2(255);
!!!!!
GRANT SELECT, UPDATE, INSERT, DELETE ON INSERT_SCRIPT TO NN_WEB_PUBLIC;
GRANT SELECT, UPDATE, INSERT, DELETE ON INSERT_SCRIPT_DOC TO NN_WEB_PUBLIC;
GRANT SELECT, UPDATE, INSERT, DELETE ON INSERT_SCRIPT_GR TO NN_WEB_PUBLIC;
GRANT SELECT, UPDATE, INSERT, DELETE ON insert_script TO NN_WEB_PUBLIC;
GRANT SELECT, UPDATE, INSERT, DELETE ON insert_script_doc TO NN_WEB_PUBLIC;
GRANT SELECT, UPDATE, INSERT, DELETE ON insert_script_gr TO NN_WEB_PUBLIC;
mysql
java.sql.SQLSyntaxErrorException: ORA-00900: neplatn� pr�kaz SQL
CREATE TABLE insert_script (
insert_script_id INT NOT NULL PRIMARY KEY,
create_date DATETIME,
user INT,
script_body VARCHAR(255),
position INT);
INSERT INTO pkey_generator VALUES('insert_script', 1 , 'insert_script', 'insert_script_id')
mssql
java.sql.SQLSyntaxErrorException: ORA-00900: neplatn� pr�kaz SQL
CREATE TABLE insert_script (
[insert_script_id] [INT] NOT NULL PRIMARY KEY,
create_date [DATETIME],
user [INT],
script_body [NVARCHAR](255),
position [INT]);
INSERT INTO pkey_generator VALUES('insert_script', 1 , 'insert_script', 'insert_script_id')
oracle
java.sql.SQLSyntaxErrorException: ORA-00900: neplatn� pr�kaz SQL
CREATE TABLE insert_script (
insert_script_id INT NOT NULL PRIMARY KEY,
create_date DATE,
user INTEGER,
script_body NVARCHAR2(255),
position INTEGER);
INSERT INTO pkey_generator VALUES('insert_script', 1 , 'insert_script', 'insert_script_id')
PKEY:
INSERT INTO pkey_generator VALUES('insert_script', 1 , 'insert_script', 'insert_script_id');
*/