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-94f89814c4df
master
jensp 2014-06-06 17:06:48 +00:00
parent 03a58e56e3
commit e4823ae780
5 changed files with 90 additions and 61 deletions

View File

@ -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.

View File

@ -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.

View File

@ -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=

View File

@ -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=

View File

@ -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();
} }
} }