cmspublishqueuepersonallist.java
来自「找了很久才找到到源代码」· Java 代码 · 共 524 行 · 第 1/2 页
JAVA
524 行
List ret = new ArrayList();
List queue;
if (OpenCms.getRoleManager().hasRole(getCms(), CmsRole.ROOT_ADMIN)) {
queue = OpenCms.getPublishManager().getPublishHistory();
} else {
queue = OpenCms.getPublishManager().getPublishHistory(getCms().getRequestContext().currentUser());
}
Iterator iter = queue.iterator();
while (iter.hasNext()) {
CmsPublishJobFinished publishJob = (CmsPublishJobFinished)iter.next();
CmsListItem item = getList().newItem(new Long(publishJob.getStartTime()).toString());
Map state = getState(publishJob);
item.set(LIST_COLUMN_PROJECT, publishJob.getProjectName());
item.set(LIST_COLUMN_STARTTIME, new Date(publishJob.getStartTime()));
item.set(LIST_COLUMN_ENDTIME, new Date(publishJob.getFinishTime()));
item.set(LIST_COLUMN_STATE, state.get(LIST_COLUMN_STATE));
item.set(LIST_COLUMN_RESCOUNT, new Integer(publishJob.getSize()));
item.set(LIST_COLUMN_ID, publishJob.getPublishHistoryId());
item.set(LIST_COLUMN_USER, publishJob.getUserName(getCms()));
item.set(LIST_COLUMN_WARNINGS, state.get(LIST_COLUMN_WARNINGS));
item.set(LIST_COLUMN_ERRORS, state.get(LIST_COLUMN_ERRORS));
ret.add(item);
}
// set the user column visibility
getList().getMetadata().getColumnDefinition(LIST_COLUMN_USER).setVisible(
OpenCms.getRoleManager().hasRole(getCms(), CmsRole.PROJECT_MANAGER));
return ret;
}
/**
* @see org.opencms.workplace.list.A_CmsListDialog#setColumns(org.opencms.workplace.list.CmsListMetadata)
*/
protected void setColumns(CmsListMetadata metadata) {
// create view column
CmsListColumnDefinition viewCol = new CmsListColumnDefinition(LIST_COLUMN_VIEW);
viewCol.setName(Messages.get().container(Messages.GUI_PERSONALQUEUE_COLS_VIEW_0));
viewCol.setWidth("20");
viewCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER);
viewCol.setSorteable(false);
// add view action
CmsListDirectAction viewAction = new CmsListDirectAction(LIST_ACTION_VIEW);
viewAction.setName(Messages.get().container(Messages.GUI_PERSONALQUEUE_ACTION_VIEW_NAME_0));
viewAction.setHelpText(Messages.get().container(Messages.GUI_PERSONALQUEUE_ACTION_VIEW_HELP_0));
viewAction.setIconPath(PUBLISHQUEUE_VIEW_BUTTON);
viewCol.addDirectAction(viewAction);
// add it to the list definition
metadata.addColumn(viewCol);
// create state icon column
CmsListColumnDefinition stateIconCol = new CmsListColumnDefinition(LIST_COLUMN_STATE_ICON);
stateIconCol.setName(Messages.get().container(Messages.GUI_PERSONALQUEUE_COLS_STATE_0));
stateIconCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER);
stateIconCol.setWidth("20");
// add state ok action
CmsListDirectAction stateAction = new CmsListDirectAction(LIST_ACTION_STATE_OK) {
/**
* @see org.opencms.workplace.tools.A_CmsHtmlIconButton#isVisible()
*/
public boolean isVisible() {
String state = (String)getItem().get(LIST_COLUMN_STATE);
return STATE_OK.equals(state);
}
};
stateAction.setName(Messages.get().container(Messages.GUI_PUBLISH_JOB_FINISHED_0));
stateAction.setHelpText(Messages.get().container(Messages.GUI_PERSONALQUEUE_ACTION_VIEW_HELP_0));
stateAction.setIconPath(PUBLISHQUEUE_OK_ICON);
stateIconCol.addDirectAction(stateAction);
// add state err action
CmsListDirectAction stateErrAction = new CmsListDirectAction(LIST_ACTION_STATE_ERR) {
/**
* @see org.opencms.workplace.tools.A_CmsHtmlIconButton#getIconPath()
*/
public String getIconPath() {
String state = (String)getItem().get(LIST_COLUMN_STATE);
if (STATE_ERROR.equals(state)) {
return PUBLISHQUEUE_ERROR_ICON;
}
return PUBLISHQUEUE_WARN_ICON;
}
/**
* @see org.opencms.workplace.tools.A_CmsHtmlIconButton#getHelpText()
*/
public CmsMessageContainer getName() {
Integer warns = (Integer)getItem().get(LIST_COLUMN_WARNINGS);
Integer errors = (Integer)getItem().get(LIST_COLUMN_ERRORS);
return Messages.get().container(Messages.GUI_PUBLISH_JOB_FINISHED_WITH_WARNS_2, warns, errors);
}
/**
* @see org.opencms.workplace.tools.A_CmsHtmlIconButton#isVisible()
*/
public boolean isVisible() {
String state = (String)getItem().get(LIST_COLUMN_STATE);
return !STATE_OK.equals(state);
}
};
stateErrAction.setHelpText(Messages.get().container(Messages.GUI_PERSONALQUEUE_ACTION_VIEW_HELP_0));
stateIconCol.addDirectAction(stateErrAction);
metadata.addColumn(stateIconCol);
// create project column
CmsListColumnDefinition projectCol = new CmsListColumnDefinition(LIST_COLUMN_PROJECT);
projectCol.setName(Messages.get().container(Messages.GUI_PERSONALQUEUE_COLS_PROJECT_0));
projectCol.setAlign(CmsListColumnAlignEnum.ALIGN_LEFT);
projectCol.setWidth("30%");
// add default action
CmsListDefaultAction projectAction = new CmsListDefaultAction(LIST_ACTION_PROJECT);
projectAction.setName(Messages.get().container(Messages.GUI_PERSONALQUEUE_ACTION_VIEW_NAME_0));
projectAction.setHelpText(Messages.get().container(Messages.GUI_PERSONALQUEUE_ACTION_VIEW_HELP_0));
projectCol.addDefaultAction(projectAction);
metadata.addColumn(projectCol);
// create start time column
CmsListColumnDefinition startCol = new CmsListColumnDefinition(LIST_COLUMN_STARTTIME);
startCol.setName(Messages.get().container(Messages.GUI_PERSONALQUEUE_COLS_STARTPUBLISHING_0));
startCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER);
startCol.setFormatter(new CmsListDateMacroFormatter(Messages.get().container(
Messages.GUI_LIST_DATE_FORMAT_WITH_SECONDS_1), Messages.get().container(
org.opencms.workplace.list.Messages.GUI_LIST_DATE_FORMAT_NEVER_0)));
startCol.setWidth("20%");
// add default action
CmsListDefaultAction startAction = new CmsListDefaultAction(LIST_ACTION_START);
startAction.setName(Messages.get().container(Messages.GUI_PERSONALQUEUE_ACTION_VIEW_NAME_0));
startAction.setHelpText(Messages.get().container(Messages.GUI_PERSONALQUEUE_ACTION_VIEW_HELP_0));
startCol.addDefaultAction(startAction);
metadata.addColumn(startCol);
// create end time column
CmsListColumnDefinition endCol = new CmsListColumnDefinition(LIST_COLUMN_ENDTIME);
endCol.setName(Messages.get().container(Messages.GUI_PERSONALQUEUE_COLS_STOPPUBLISHING_0));
endCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER);
endCol.setFormatter(new CmsListDateMacroFormatter(Messages.get().container(
Messages.GUI_LIST_DATE_FORMAT_WITH_SECONDS_1), Messages.get().container(
org.opencms.workplace.list.Messages.GUI_LIST_DATE_FORMAT_NEVER_0)));
endCol.setWidth("20%");
// add default action
CmsListDefaultAction endAction = new CmsListDefaultAction(LIST_ACTION_END);
endAction.setName(Messages.get().container(Messages.GUI_PERSONALQUEUE_ACTION_VIEW_NAME_0));
endAction.setHelpText(Messages.get().container(Messages.GUI_PERSONALQUEUE_ACTION_VIEW_HELP_0));
endCol.addDefaultAction(endAction);
metadata.addColumn(endCol);
// create user column
CmsListColumnDefinition userCol = new CmsListColumnDefinition(LIST_COLUMN_USER);
userCol.setName(Messages.get().container(Messages.GUI_PERSONALQUEUE_COLS_USER_0));
userCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER);
userCol.setWidth("25%");
// add default action
CmsListDefaultAction userAction = new CmsListDefaultAction(LIST_ACTION_USER);
userAction.setName(Messages.get().container(Messages.GUI_PERSONALQUEUE_ACTION_VIEW_NAME_0));
userAction.setHelpText(Messages.get().container(Messages.GUI_PERSONALQUEUE_ACTION_VIEW_HELP_0));
userCol.addDefaultAction(userAction);
metadata.addColumn(userCol);
// create resource count column
CmsListColumnDefinition countCol = new CmsListColumnDefinition(LIST_COLUMN_RESCOUNT);
countCol.setName(Messages.get().container(Messages.GUI_PERSONALQUEUE_COLS_RESCOUNT_0));
countCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER);
countCol.setWidth("5%");
// add default action
CmsListDefaultAction countAction = new CmsListDefaultAction(LIST_ACTION_COUNT);
countAction.setName(Messages.get().container(Messages.GUI_PERSONALQUEUE_ACTION_VIEW_NAME_0));
countAction.setHelpText(Messages.get().container(Messages.GUI_PERSONALQUEUE_ACTION_VIEW_HELP_0));
countCol.addDefaultAction(countAction);
metadata.addColumn(countCol);
// create hidden column for job id
CmsListColumnDefinition idCol = new CmsListColumnDefinition(LIST_COLUMN_ID);
idCol.setName(Messages.get().container(Messages.GUI_PERSONALQUEUE_COLS_ID_0));
idCol.setSorteable(false);
idCol.setVisible(false);
metadata.addColumn(idCol);
// create state error column
CmsListColumnDefinition errCol = new CmsListColumnDefinition(LIST_COLUMN_ERRORS);
errCol.setVisible(false);
metadata.addColumn(errCol);
// create state warning column
CmsListColumnDefinition warnCol = new CmsListColumnDefinition(LIST_COLUMN_WARNINGS);
warnCol.setVisible(false);
metadata.addColumn(warnCol);
// create state warning column
CmsListColumnDefinition stateCol = new CmsListColumnDefinition(LIST_COLUMN_STATE);
stateCol.setVisible(false);
metadata.addColumn(stateCol);
}
/**
* @see org.opencms.workplace.list.A_CmsListDialog#setIndependentActions(org.opencms.workplace.list.CmsListMetadata)
*/
protected void setIndependentActions(CmsListMetadata metadata) {
//noop
}
/**
* @see org.opencms.workplace.list.A_CmsListDialog#setMultiActions(org.opencms.workplace.list.CmsListMetadata)
*/
protected void setMultiActions(CmsListMetadata metadata) {
//noop
}
/**
* Returns the state of the given publish job.<p>
*
* @param publishJob the publish job to get the state for
*
* @return the state of the given publish job
*/
private Map getState(CmsPublishJobFinished publishJob) {
Map result = new HashMap();
byte[] reportBytes = null;
try {
reportBytes = OpenCms.getPublishManager().getReportContents(publishJob);
} catch (CmsException e) {
if (LOG.isErrorEnabled()) {
LOG.error(e.getLocalizedMessage());
}
result.put(LIST_COLUMN_STATE, STATE_OK);
}
if ((reportBytes != null) && (result.get(LIST_COLUMN_STATE) == null)) {
String report = new String(reportBytes);
// see org.opencms.report.CmsHtmlReport#print(String, int)
if (report.indexOf("<span class='err'>") > -1) {
result.put(LIST_COLUMN_STATE, STATE_ERROR);
result.put(LIST_COLUMN_ERRORS, new Integer(
CmsStringUtil.splitAsList(report, "<span class='err'>").size() - 1));
result.put(LIST_COLUMN_WARNINGS, new Integer(
CmsStringUtil.splitAsList(report, "<span class='warn'>").size() - 1));
} else if (report.indexOf("<span class='warn'>") > -1) {
result.put(LIST_COLUMN_STATE, STATE_WARNING);
result.put(LIST_COLUMN_WARNINGS, new Integer(
CmsStringUtil.splitAsList(report, "<span class='warn'>").size() - 1));
} else {
result.put(LIST_COLUMN_STATE, STATE_OK);
}
}
if (result.get(LIST_COLUMN_WARNINGS) == null) {
result.put(LIST_COLUMN_WARNINGS, new Integer(0));
}
if (result.get(LIST_COLUMN_ERRORS) == null) {
result.put(LIST_COLUMN_ERRORS, new Integer(0));
}
return result;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?