Added a text for the empty new of the table in the ContentSoonExpiredPane
git-svn-id: https://svn.libreccm.org/ccm/trunk@2677 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
03a58e56e3
commit
e4823ae780
|
|
@ -1078,3 +1078,4 @@ cms.ui.authoring.items_with_this_name_already_exist=Items with whit name already
|
||||||
cms.ui.authoring.parameter_not_empty=This parameter may not be empty.
|
cms.ui.authoring.parameter_not_empty=This parameter may not be empty.
|
||||||
cms.ui.authoring.parameter_should_be_a_valid_filename=This parameter should be a valid filename.
|
cms.ui.authoring.parameter_should_be_a_valid_filename=This parameter should be a valid filename.
|
||||||
cms.ui.authoring.parameter_may_not_contain_periods=This parameter may not contain periods
|
cms.ui.authoring.parameter_may_not_contain_periods=This parameter may not contain periods
|
||||||
|
cms.ui.cse.none=No soon expired items were found.
|
||||||
|
|
|
||||||
|
|
@ -1072,3 +1072,4 @@ cms.ui.authoring.items_with_this_name_already_exist=Dokumentemitdiesem Namen exi
|
||||||
cms.ui.authoring.parameter_not_empty=Dieser Parameter darf nicht leer sein.
|
cms.ui.authoring.parameter_not_empty=Dieser Parameter darf nicht leer sein.
|
||||||
cms.ui.authoring.parameter_should_be_a_valid_filename=Dieser Parameter muss einem g\u00fcltigen Dateinamen entsprechen.
|
cms.ui.authoring.parameter_should_be_a_valid_filename=Dieser Parameter muss einem g\u00fcltigen Dateinamen entsprechen.
|
||||||
cms.ui.authoring.parameter_may_not_contain_periods=This parameter may not contain periods
|
cms.ui.authoring.parameter_may_not_contain_periods=This parameter may not contain periods
|
||||||
|
cms.ui.cse.none=Es wurde keine bald abgelaufenen Dokumente gefunden.
|
||||||
|
|
|
||||||
|
|
@ -126,3 +126,4 @@ cms.ui.authoring.items_with_this_name_already_exist=Items with whit name already
|
||||||
cms.ui.authoring.parameter_not_empty=This parameter may not be empty.
|
cms.ui.authoring.parameter_not_empty=This parameter may not be empty.
|
||||||
cms.ui.authoring.parameter_should_be_a_valid_filename=This parameter should be a valid filename.
|
cms.ui.authoring.parameter_should_be_a_valid_filename=This parameter should be a valid filename.
|
||||||
cms.ui.authoring.parameter_may_not_contain_periods=This parameter may not contain periods
|
cms.ui.authoring.parameter_may_not_contain_periods=This parameter may not contain periods
|
||||||
|
cms.ui.cse.none=
|
||||||
|
|
|
||||||
|
|
@ -600,3 +600,4 @@ cms.ui.authoring.items_with_this_name_already_exist=Items with whit name already
|
||||||
cms.ui.authoring.parameter_not_empty=This parameter may not be empty.
|
cms.ui.authoring.parameter_not_empty=This parameter may not be empty.
|
||||||
cms.ui.authoring.parameter_should_be_a_valid_filename=This parameter should be a valid filename.
|
cms.ui.authoring.parameter_should_be_a_valid_filename=This parameter should be a valid filename.
|
||||||
cms.ui.authoring.parameter_may_not_contain_periods=This parameter may not contain periods
|
cms.ui.authoring.parameter_may_not_contain_periods=This parameter may not contain periods
|
||||||
|
cms.ui.cse.none=
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,6 @@
|
||||||
* License along with this library; if not, write to the Free Software
|
* License along with this library; if not, write to the Free Software
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.arsdigita.cms.ui.cse;
|
package com.arsdigita.cms.ui.cse;
|
||||||
|
|
||||||
import com.arsdigita.bebop.table.TableCellRenderer;
|
import com.arsdigita.bebop.table.TableCellRenderer;
|
||||||
|
|
@ -23,7 +22,7 @@ import com.arsdigita.bebop.Label;
|
||||||
import com.arsdigita.bebop.Link;
|
import com.arsdigita.bebop.Link;
|
||||||
import com.arsdigita.bebop.PageState;
|
import com.arsdigita.bebop.PageState;
|
||||||
import com.arsdigita.bebop.SimpleContainer;
|
import com.arsdigita.bebop.SimpleContainer;
|
||||||
import com.arsdigita.cms.CMS;
|
import com.arsdigita.cms.CMS;
|
||||||
import com.arsdigita.cms.ContentItem;
|
import com.arsdigita.cms.ContentItem;
|
||||||
import com.arsdigita.cms.ContentSection;
|
import com.arsdigita.cms.ContentSection;
|
||||||
import com.arsdigita.cms.SecurityManager;
|
import com.arsdigita.cms.SecurityManager;
|
||||||
|
|
@ -56,7 +55,6 @@ import java.util.Iterator;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A pane that contains details to soon to be expired content.
|
* A pane that contains details to soon to be expired content.
|
||||||
*
|
*
|
||||||
|
|
@ -73,50 +71,61 @@ public class ContentSoonExpiredPane extends SimpleContainer {
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void generateXML(final PageState state, final Element parent) {
|
public final void generateXML(final PageState state, final Element parent) {
|
||||||
if ( !isVisible(state) ) { return; }
|
if (!isVisible(state)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SecurityManager sm = CMS.getContext().getSecurityManager();
|
SecurityManager sm = CMS.getContext().getSecurityManager();
|
||||||
User user = Web.getWebContext().getUser();
|
User user = Web.getWebContext().getUser();
|
||||||
|
|
||||||
DataTable dt = getDataTable();
|
DataTable dt = getDataTable();
|
||||||
DataQuery dq = dt.getDataQuery(state);
|
DataQuery dq = dt.getDataQuery(state);
|
||||||
dq.addFilter(getViewFilter(dq, user));
|
dq.addFilter(getViewFilter(dq, user));
|
||||||
|
|
||||||
dt.generateXML(state, parent);
|
dt.generateXML(state, parent);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Filter getViewFilter(DataQuery query, User user) {
|
private static Filter getViewFilter(DataQuery query, User user) {
|
||||||
PrivilegeDescriptor privilege = new PrivilegeDescriptor(SecurityConstants.CMS_READ_ITEM);
|
PrivilegeDescriptor privilege = new PrivilegeDescriptor(SecurityConstants.CMS_READ_ITEM);
|
||||||
FilterFactory ff = query.getFilterFactory();
|
FilterFactory ff = query.getFilterFactory();
|
||||||
OID partyOID = user.getOID();
|
OID partyOID = user.getOID();
|
||||||
return PermissionService.getFilterQuery(ff, "objectId", privilege, partyOID);
|
return PermissionService.getFilterQuery(ff, "objectId", privilege, partyOID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
protected DataTable getDataTable() {
|
protected DataTable getDataTable() {
|
||||||
if (dataTable == null) {
|
if (dataTable == null) {
|
||||||
dataTable = new DataTable(new ContentSoonExpiredQueryBuilder());
|
dataTable = new DataTable(new ContentSoonExpiredQueryBuilder());
|
||||||
dataTable.addColumn(GlobalizationUtil.globalize("cms.ui.cse.authorName").localize().toString(),
|
dataTable.addColumn(GlobalizationUtil.globalize("cms.ui.cse.authorName").localize()
|
||||||
|
.toString(),
|
||||||
"authorName", true);
|
"authorName", true);
|
||||||
dataTable.addColumn(GlobalizationUtil.globalize("cms.ui.cse.itemName").localize().toString(),
|
dataTable.addColumn(GlobalizationUtil.globalize("cms.ui.cse.itemName").localize()
|
||||||
|
.toString(),
|
||||||
"objectId", true, new ItemTitleCellRender());
|
"objectId", true, new ItemTitleCellRender());
|
||||||
dataTable.addColumn(GlobalizationUtil.globalize("cms.ui.cse.view").localize().toString(),
|
dataTable
|
||||||
"objectId", false, new ItemViewLinkCellRender());
|
.addColumn(GlobalizationUtil.globalize("cms.ui.cse.view").localize().toString(),
|
||||||
dataTable.addColumn(GlobalizationUtil.globalize("cms.ui.cse.edit").localize().toString(),
|
"objectId", false, new ItemViewLinkCellRender());
|
||||||
"objectId", false, new ItemEditLinkCellRender());
|
dataTable
|
||||||
dataTable.addColumn(GlobalizationUtil.globalize("cms.ui.cse.endDateTime").localize().toString(),
|
.addColumn(GlobalizationUtil.globalize("cms.ui.cse.edit").localize().toString(),
|
||||||
|
"objectId", false, new ItemEditLinkCellRender());
|
||||||
|
dataTable.addColumn(GlobalizationUtil.globalize("cms.ui.cse.endDateTime").localize()
|
||||||
|
.toString(),
|
||||||
"endDateTime", true);
|
"endDateTime", true);
|
||||||
|
|
||||||
|
dataTable.setEmptyView(new Label(GlobalizationUtil.globalize("cms.ui.cse.none")));
|
||||||
}
|
}
|
||||||
|
|
||||||
return dataTable;
|
return dataTable;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean hasSiteWideAdmin(User user) {
|
private static boolean hasSiteWideAdmin(User user) {
|
||||||
Application adminApp = Admin.getInstance();
|
Application adminApp = Admin.getInstance();
|
||||||
if ( adminApp == null ) { return false; }
|
if (adminApp == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
PermissionDescriptor admin = new PermissionDescriptor(PrivilegeDescriptor.ADMIN, adminApp, user);
|
PermissionDescriptor admin = new PermissionDescriptor(PrivilegeDescriptor.ADMIN, adminApp,
|
||||||
|
user);
|
||||||
return PermissionService.checkPermission(admin);
|
return PermissionService.checkPermission(admin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -129,20 +138,22 @@ public class ContentSoonExpiredPane extends SimpleContainer {
|
||||||
}
|
}
|
||||||
|
|
||||||
private class ContentSoonExpiredQueryBuilder implements DataQueryBuilder {
|
private class ContentSoonExpiredQueryBuilder implements DataQueryBuilder {
|
||||||
|
|
||||||
public String getKeyColumn() {
|
public String getKeyColumn() {
|
||||||
return "objectId";
|
return "objectId";
|
||||||
}
|
}
|
||||||
|
|
||||||
public DataQuery makeDataQuery(DataTable t, PageState s) {
|
public DataQuery makeDataQuery(DataTable t, PageState s) {
|
||||||
Session ses = SessionManager.getSession();
|
Session ses = SessionManager.getSession();
|
||||||
DataQuery query = ses.retrieveQuery("com.arsdigita.cms.getContentItemExpiredBeforeInSection");
|
DataQuery query = ses.retrieveQuery(
|
||||||
|
"com.arsdigita.cms.getContentItemExpiredBeforeInSection");
|
||||||
|
|
||||||
int months = ContentSection.getConfig().getSoonExpiredMonths();
|
int months = ContentSection.getConfig().getSoonExpiredMonths();
|
||||||
int days = ContentSection.getConfig().getSoonExpiredDays();
|
int days = ContentSection.getConfig().getSoonExpiredDays();
|
||||||
|
|
||||||
Calendar now = Calendar.getInstance();
|
Calendar now = Calendar.getInstance();
|
||||||
now.add(Calendar.DAY_OF_YEAR, days);
|
now.add(Calendar.DAY_OF_YEAR, days);
|
||||||
now.add(Calendar.MONTH, months);
|
now.add(Calendar.MONTH, months);
|
||||||
query.setParameter("endDateTime", now.getTime());
|
query.setParameter("endDateTime", now.getTime());
|
||||||
|
|
||||||
ContentSection section = CMS.getContext().getContentSection();
|
ContentSection section = CMS.getContext().getContentSection();
|
||||||
|
|
@ -150,13 +161,14 @@ public class ContentSoonExpiredPane extends SimpleContainer {
|
||||||
|
|
||||||
return query;
|
return query;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void lock() {
|
public void lock() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isLocked() {
|
public boolean isLocked() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private class ItemTitleCellRender implements TableCellRenderer {
|
private class ItemTitleCellRender implements TableCellRenderer {
|
||||||
|
|
@ -165,12 +177,14 @@ public class ContentSoonExpiredPane extends SimpleContainer {
|
||||||
|
|
||||||
public ItemTitleCellRender() {
|
public ItemTitleCellRender() {
|
||||||
threadLocal = new ThreadLocal() {
|
threadLocal = new ThreadLocal() {
|
||||||
protected Object initialValue() {
|
|
||||||
return new Label("");
|
protected Object initialValue() {
|
||||||
}
|
return new Label("");
|
||||||
};
|
}
|
||||||
|
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public Component getComponent(Table table, PageState state, Object value,
|
public Component getComponent(Table table, PageState state, Object value,
|
||||||
boolean isSelected, Object key,
|
boolean isSelected, Object key,
|
||||||
int row, int column) {
|
int row, int column) {
|
||||||
|
|
@ -179,6 +193,7 @@ public class ContentSoonExpiredPane extends SimpleContainer {
|
||||||
l.setLabel(ContentSoonExpiredPane.getItemFromIdString(id.toString()).getDisplayName());
|
l.setLabel(ContentSoonExpiredPane.getItemFromIdString(id.toString()).getDisplayName());
|
||||||
return l;
|
return l;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private class ItemEditLinkCellRender implements TableCellRenderer {
|
private class ItemEditLinkCellRender implements TableCellRenderer {
|
||||||
|
|
@ -187,39 +202,45 @@ public class ContentSoonExpiredPane extends SimpleContainer {
|
||||||
|
|
||||||
public ItemEditLinkCellRender() {
|
public ItemEditLinkCellRender() {
|
||||||
threadLocal = new ThreadLocal() {
|
threadLocal = new ThreadLocal() {
|
||||||
protected Object initialValue() {
|
|
||||||
return new Link(new Label(), "");
|
protected Object initialValue() {
|
||||||
}
|
return new Link(new Label(), "");
|
||||||
};
|
}
|
||||||
|
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public Component getComponent(Table table, PageState state, Object value,
|
public Component getComponent(Table table, PageState state, Object value,
|
||||||
boolean isSelected, Object key,
|
boolean isSelected, Object key,
|
||||||
int row, int column) {
|
int row, int column) {
|
||||||
boolean canEdit = false;
|
boolean canEdit = false;
|
||||||
BigDecimal id = (BigDecimal) key;
|
BigDecimal id = (BigDecimal) key;
|
||||||
User user = Web.getWebContext().getUser();
|
User user = Web.getWebContext().getUser();
|
||||||
ContentItem ci = getItemFromIdString(id.toString());
|
ContentItem ci = getItemFromIdString(id.toString());
|
||||||
Iterator permissions = PermissionService.getImpliedPrivileges(ci.getOID(), user.getOID());
|
Iterator permissions = PermissionService
|
||||||
while (permissions.hasNext()) {
|
.getImpliedPrivileges(ci.getOID(), user.getOID());
|
||||||
PrivilegeDescriptor permission = (PrivilegeDescriptor)permissions.next();
|
while (permissions.hasNext()) {
|
||||||
if (permission.equals(PrivilegeDescriptor.ADMIN) || permission.equals(PrivilegeDescriptor.EDIT)) {
|
PrivilegeDescriptor permission = (PrivilegeDescriptor) permissions.next();
|
||||||
canEdit = true;
|
if (permission.equals(PrivilegeDescriptor.ADMIN) || permission.equals(
|
||||||
break;
|
PrivilegeDescriptor.EDIT)) {
|
||||||
}
|
canEdit = true;
|
||||||
}
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!canEdit) {
|
if (!canEdit) {
|
||||||
return new Label("");
|
return new Label("");
|
||||||
}
|
}
|
||||||
|
|
||||||
Link l = (Link) threadLocal.get();
|
Link l = (Link) threadLocal.get();
|
||||||
// l.setTarget(ContentItemPage.getRelativeItemURL(ContentSoonExpiredPane.getItemDraft(id.toString()), ContentItemPage.AUTHORING_TAB));
|
// l.setTarget(ContentItemPage.getRelativeItemURL(ContentSoonExpiredPane.getItemDraft(id.toString()), ContentItemPage.AUTHORING_TAB));
|
||||||
l.setTarget(ContentItemPage.getItemURL(ContentSoonExpiredPane.getItemFromIdString(id.toString()), ContentItemPage.AUTHORING_TAB));
|
l.setTarget(ContentItemPage.getItemURL(ContentSoonExpiredPane.getItemFromIdString(id
|
||||||
|
.toString()), ContentItemPage.AUTHORING_TAB));
|
||||||
((Label) l.getChild()).setLabel(GlobalizationUtil.globalize("cms.ui.cse.editLink"));
|
((Label) l.getChild()).setLabel(GlobalizationUtil.globalize("cms.ui.cse.editLink"));
|
||||||
|
|
||||||
return l;
|
return l;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private class ItemViewLinkCellRender implements TableCellRenderer {
|
private class ItemViewLinkCellRender implements TableCellRenderer {
|
||||||
|
|
@ -228,12 +249,14 @@ public class ContentSoonExpiredPane extends SimpleContainer {
|
||||||
|
|
||||||
public ItemViewLinkCellRender() {
|
public ItemViewLinkCellRender() {
|
||||||
threadLocal = new ThreadLocal() {
|
threadLocal = new ThreadLocal() {
|
||||||
protected Object initialValue() {
|
|
||||||
return new Link(new Label(), "");
|
protected Object initialValue() {
|
||||||
}
|
return new Link(new Label(), "");
|
||||||
};
|
}
|
||||||
|
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public Component getComponent(Table table, PageState state, Object value,
|
public Component getComponent(Table table, PageState state, Object value,
|
||||||
boolean isSelected, Object key,
|
boolean isSelected, Object key,
|
||||||
int row, int column) {
|
int row, int column) {
|
||||||
|
|
@ -246,18 +269,19 @@ public class ContentSoonExpiredPane extends SimpleContainer {
|
||||||
if (item.getParent() instanceof ContentItem) {
|
if (item.getParent() instanceof ContentItem) {
|
||||||
item = (ContentItem) item.getParent();
|
item = (ContentItem) item.getParent();
|
||||||
if (!"/".equals(item.getName())) {
|
if (!"/".equals(item.getName())) {
|
||||||
url = "/"+item.getName()+url;
|
url = "/" + item.getName() + url;
|
||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ContentSection section = CMS.getContext().getContentSection();
|
ContentSection section = CMS.getContext().getContentSection();
|
||||||
l.setTarget("/"+section.getName()+url);
|
l.setTarget("/" + section.getName() + url);
|
||||||
|
|
||||||
((Label) l.getChild()).setLabel(GlobalizationUtil.globalize("cms.ui.cse.viewLink"));
|
((Label) l.getChild()).setLabel(GlobalizationUtil.globalize("cms.ui.cse.viewLink"));
|
||||||
return l;
|
return l;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ContentItem getItemFromIdString(String idString) {
|
private static ContentItem getItemFromIdString(String idString) {
|
||||||
|
|
@ -268,4 +292,5 @@ public class ContentSoonExpiredPane extends SimpleContainer {
|
||||||
ContentItem item = getItemFromIdString(idString);
|
ContentItem item = getItemFromIdString(idString);
|
||||||
return item.getDraftVersion().getID();
|
return item.getDraftVersion().getID();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue