package com.psddev.cms.tool.widget; import java.io.IOException; import javax.servlet.ServletException; import com.psddev.cms.db.Content; import com.psddev.cms.db.Site; import com.psddev.cms.db.ToolUi; import com.psddev.cms.tool.CmsTool; import com.psddev.cms.tool.Dashboard; import com.psddev.cms.tool.DefaultDashboardWidget; import com.psddev.cms.tool.ToolPageContext; import com.psddev.cms.tool.page.UploadFiles; import com.psddev.dari.db.ObjectField; import com.psddev.dari.db.ObjectType; public class BulkUploadWidget extends DefaultDashboardWidget { @Override public int getColumnIndex() { return 1; } @Override public int getWidgetIndex() { return 1; } @Override public void writeHtml(ToolPageContext page, Dashboard dashboard) throws IOException, ServletException { boolean hasUploadable = false; for (ObjectType t : ObjectType.getInstance(Content.class).as(ToolUi.class).findDisplayTypes()) { for (ObjectField field : t.getFields()) { if (ObjectField.FILE_TYPE.equals(field.getInternalItemType())) { hasUploadable = true; break; } } } CmsTool.BulkUploadSettings settings = null; Site site = page.getSite(); if (site != null) { settings = site.getBulkUploadSettings(); } if (settings == null) { settings = page.getCmsTool().getBulkUploadSettings(); } ObjectType defaultType = settings != null ? settings.getDefaultType() : null; page.writeStart("div", "class", "widget uploadable"); page.writeStart("h1", "class", "icon icon-action-upload"); page.writeHtml(page.localize(BulkUploadWidget.class, "title")); page.writeEnd(); page.writeStart("div", "class", "message message-info"); if (!hasUploadable) { page.writeHtml(page.localize(BulkUploadWidget.class, "message.noTypes")); } else { //TODO: LOCALIZE String uploadFilesPath = page.getCmsTool().isEnableFrontEndUploader() ? "/content/upload" : "/content/uploadFiles"; page.writeHtml("Drag and drop or "); page.writeStart("a", "class", "uploadableLink", "target", "uploadFiles", "href", page.url(uploadFilesPath, "typeId", ObjectType.getInstance(Content.class).getId(), "type", defaultType != null ? defaultType.getId() : null), "context", UploadFiles.Context.GLOBAL); page.writeHtml("select"); page.writeEnd(); page.writeHtml(" files."); } page.writeEnd(); page.writeEnd(); } }