From: bsinou Date: Fri, 17 Feb 2017 20:25:28 +0000 (+0100) Subject: Enhance refactoring, bug shooting X-Git-Tag: argeo-suite-0.1.5~26 X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=commitdiff_plain;h=be7cb3f18ce76bde064cbbc2a38de6386f3498d2 Enhance refactoring, bug shooting --- diff --git a/org.argeo.suite.core/META-INF/spring/application.xml b/org.argeo.suite.core/META-INF/spring/application.xml deleted file mode 100644 index d3af814..0000000 --- a/org.argeo.suite.core/META-INF/spring/application.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/org.argeo.suite.core/META-INF/spring/osgi.xml b/org.argeo.suite.core/META-INF/spring/osgi.xml index 3301729..5335252 100644 --- a/org.argeo.suite.core/META-INF/spring/osgi.xml +++ b/org.argeo.suite.core/META-INF/spring/osgi.xml @@ -7,14 +7,9 @@ http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> - - - - - + - - + + diff --git a/org.argeo.suite.core/META-INF/spring/services.xml b/org.argeo.suite.core/META-INF/spring/services.xml new file mode 100644 index 0000000..ffbcc47 --- /dev/null +++ b/org.argeo.suite.core/META-INF/spring/services.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/org.argeo.suite.core/pom.xml b/org.argeo.suite.core/pom.xml index d64a194..5807828 100644 --- a/org.argeo.suite.core/pom.xml +++ b/org.argeo.suite.core/pom.xml @@ -14,7 +14,12 @@ org.argeo.connect - org.argeo.connect.people.core + org.argeo.connect.tracker + ${version.argeo-connect} + + + org.argeo.connect + org.argeo.connect.people ${version.argeo-connect} diff --git a/org.argeo.suite.core/src/org/argeo/suite/SuiteMaintenanceService.java b/org.argeo.suite.core/src/org/argeo/suite/SuiteMaintenanceService.java deleted file mode 100644 index ef1ade0..0000000 --- a/org.argeo.suite.core/src/org/argeo/suite/SuiteMaintenanceService.java +++ /dev/null @@ -1,115 +0,0 @@ -package org.argeo.suite; - -import java.net.URI; -import java.util.List; -import java.util.Map; - -import javax.jcr.Repository; -import javax.jcr.RepositoryException; -import javax.jcr.Session; -import javax.jcr.nodetype.NodeType; -import javax.jcr.security.Privilege; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.argeo.connect.AppMaintenanceService; -import org.argeo.connect.resources.ResourceService; -import org.argeo.jcr.JcrUtils; -import org.argeo.node.NodeConstants; - -/** Make the DJay-ing to provide a full running Suite platform */ -public class SuiteMaintenanceService implements AppMaintenanceService { - private final static Log log = LogFactory.getLog(SuiteMaintenanceService.class); - - /* DEPENDENCY INJECTION */ - private Repository repository; - private String workspaceName; - private ResourceService resourceService; - private List maintenanceServices; - private Map initResources = null; - private Map legacyResources = null; - - public void init() { - Session adminSession = null; - try { - adminSession = repository.login(workspaceName); - if (prepareJcrTree(adminSession)) { - configurePrivileges(adminSession); - importResources(adminSession, null); - } - } catch (Exception e) { - throw new SuiteException("Cannot initialise model", e); - } finally { - JcrUtils.logoutQuietly(adminSession); - } - } - - // TODO Hard-coded model initialisation - // To be cleaned once first init and config mechanisms have been implemented - private final static String publicPath = "/public"; - // FIXME Users must have read access on the jcr:system/jcr:versionStorage - // node under JackRabbit to be able to manage versions - private final static String jackRabbitVersionSystemPath = "/jcr:system"; - - @Override - public boolean prepareJcrTree(Session session) { - boolean hasCHanged = false; - try { - JcrUtils.mkdirs(session, publicPath, NodeType.NT_UNSTRUCTURED); - if (session.hasPendingChanges()) { - session.save(); - hasCHanged = true; - } - } catch (RepositoryException e) { - throw new SuiteException("Cannot build model", e); - } - for (AppMaintenanceService service : maintenanceServices) - hasCHanged |= service.prepareJcrTree(session); - log.info("Repository has been initialised with Argeo Suite model"); - return hasCHanged; - } - - @Override - public void configurePrivileges(Session session) { - // TODO check if first init. - try { - JcrUtils.addPrivilege(session, jackRabbitVersionSystemPath, ArgeoSuiteRole.coworker.dn(), - Privilege.JCR_READ); - // Default configuration of the workspace - JcrUtils.addPrivilege(session, "/", NodeConstants.ROLE_ADMIN, Privilege.JCR_ALL); - JcrUtils.addPrivilege(session, publicPath, NodeConstants.ROLE_USER, Privilege.JCR_READ); - JcrUtils.addPrivilege(session, publicPath, "anonymous", Privilege.JCR_READ); - JcrUtils.addPrivilege(session, publicPath, NodeConstants.ROLE_ANONYMOUS, Privilege.JCR_READ); - session.save(); - } catch (RepositoryException e) { - throw new SuiteException("Cannot build model", e); - } - for (AppMaintenanceService service : maintenanceServices) - service.configurePrivileges(session); - log.info("Access control configured"); - } - - @Override - public void importResources(Session session, Map initialResources) { - for (AppMaintenanceService service : maintenanceServices) - service.prepareJcrTree(session); - } - - @Override - public void importData(Session session, URI uri, Map resources) { - for (AppMaintenanceService service : maintenanceServices) - service.prepareJcrTree(session); - - } - - @Override - public void doBackup(Session session, URI uri, Object resource) { - for (AppMaintenanceService service : maintenanceServices) - service.prepareJcrTree(session); - } - - /* DEPENDENCY INJECTION */ - public void setMaintenanceServices(List maintenanceServices) { - this.maintenanceServices = maintenanceServices; - } -} diff --git a/org.argeo.suite.core/src/org/argeo/suite/core/DefaultSuiteMaintenanceService.java b/org.argeo.suite.core/src/org/argeo/suite/core/DefaultSuiteMaintenanceService.java new file mode 100644 index 0000000..d0a0468 --- /dev/null +++ b/org.argeo.suite.core/src/org/argeo/suite/core/DefaultSuiteMaintenanceService.java @@ -0,0 +1,106 @@ +package org.argeo.suite.core; + +import java.util.List; + +import javax.jcr.Repository; +import javax.jcr.RepositoryException; +import javax.jcr.Session; +import javax.jcr.nodetype.NodeType; +import javax.jcr.security.Privilege; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.argeo.connect.AppMaintenanceService; +import org.argeo.jcr.JcrUtils; +import org.argeo.node.NodeConstants; +import org.argeo.suite.ArgeoSuiteRole; +import org.argeo.suite.SuiteException; + +/** Make the DJay-ing to provide a full running Suite platform */ +public class DefaultSuiteMaintenanceService implements AppMaintenanceService { + private final static Log log = LogFactory.getLog(DefaultSuiteMaintenanceService.class); + + /* DEPENDENCY INJECTION */ + private Repository repository; + private String workspaceName; + private List maintenanceServices; + + public void init() { + Session adminSession = null; + try { + adminSession = repository.login(workspaceName); + if (prepareJcrTree(adminSession)) { + configurePrivileges(adminSession); + } + } catch (Exception e) { + throw new SuiteException("Cannot initialise model", e); + } finally { + JcrUtils.logoutQuietly(adminSession); + } + } + + // TODO Hard-coded model initialisation + // To be cleaned once first init and config mechanisms have been implemented + private final static String publicPath = "/public"; + // FIXME Users must have read access on the jcr:system/jcr:versionStorage + // node under JackRabbit to be able to manage versions + private final static String jackRabbitVersionSystemPath = "/jcr:system"; + + @Override + public boolean prepareJcrTree(Session session) { + boolean hasCHanged = false; + try { + JcrUtils.mkdirs(session, publicPath, NodeType.NT_UNSTRUCTURED); + if (session.hasPendingChanges()) { + session.save(); + hasCHanged = true; + } + } catch (RepositoryException e) { + throw new SuiteException("Cannot build model", e); + } + for (AppMaintenanceService service : maintenanceServices) + hasCHanged |= service.prepareJcrTree(session); + if (hasCHanged) + log.info("Repository has been initialised with Argeo Suite model"); + return hasCHanged; + } + + @Override + public void configurePrivileges(Session session) { + try { + // Remove unused default JCR rights + JcrUtils.clearAccessControList(session, "/", "everyone"); + + JcrUtils.addPrivilege(session, jackRabbitVersionSystemPath, ArgeoSuiteRole.coworker.dn(), + Privilege.JCR_READ); + // Default configuration of the workspace + JcrUtils.addPrivilege(session, "/", NodeConstants.ROLE_ADMIN, Privilege.JCR_ALL); + JcrUtils.addPrivilege(session, publicPath, NodeConstants.ROLE_USER, Privilege.JCR_READ); + JcrUtils.addPrivilege(session, publicPath, "anonymous", Privilege.JCR_READ); + JcrUtils.addPrivilege(session, publicPath, NodeConstants.ROLE_ANONYMOUS, Privilege.JCR_READ); + + session.save(); + } catch (RepositoryException e) { + throw new SuiteException("Cannot build model", e); + } + for (AppMaintenanceService service : maintenanceServices) + service.configurePrivileges(session); + log.info("Access control configured"); + } + + public void destroy() { + } + + /* DEPENDENCY INJECTION */ + public void setRepository(Repository repository) { + this.repository = repository; + } + + public void setWorkspaceName(String workspaceName) { + this.workspaceName = workspaceName; + } + + public void setMaintenanceServices(List maintenanceServices) { + this.maintenanceServices = maintenanceServices; + } +} diff --git a/org.argeo.suite.core/src/org/argeo/suite/people/PeopleSuiteServiceImpl.java b/org.argeo.suite.core/src/org/argeo/suite/people/PeopleSuiteServiceImpl.java index d512bfb..1aaf15b 100644 --- a/org.argeo.suite.core/src/org/argeo/suite/people/PeopleSuiteServiceImpl.java +++ b/org.argeo.suite.core/src/org/argeo/suite/people/PeopleSuiteServiceImpl.java @@ -14,7 +14,7 @@ import org.apache.commons.logging.LogFactory; import org.argeo.connect.people.PeopleConstants; import org.argeo.connect.people.PeopleService; import org.argeo.connect.people.core.PeopleServiceImpl; -import org.argeo.connect.resources.ResourceService; +import org.argeo.connect.resources.ResourcesService; import org.argeo.jcr.JcrUtils; import org.argeo.node.NodeConstants; import org.argeo.suite.ArgeoSuiteRole; @@ -31,7 +31,7 @@ public class PeopleSuiteServiceImpl extends PeopleServiceImpl implements PeopleS /* DEPENDENCY INJECTION */ private Repository repository; private String workspaceName; - private ResourceService resourceService; + private ResourcesService resourceService; private Map initResources = null; private Map legacyResources = null; diff --git a/org.argeo.suite.web/META-INF/spring/osgi.xml b/org.argeo.suite.web/META-INF/spring/osgi.xml index c00bc83..a19f910 100644 --- a/org.argeo.suite.web/META-INF/spring/osgi.xml +++ b/org.argeo.suite.web/META-INF/spring/osgi.xml @@ -7,11 +7,13 @@ http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> - - + + + - - + diff --git a/org.argeo.suite.web/META-INF/spring/people.xml b/org.argeo.suite.web/META-INF/spring/people.xml index 036fe60..1376ebf 100644 --- a/org.argeo.suite.web/META-INF/spring/people.xml +++ b/org.argeo.suite.web/META-INF/spring/people.xml @@ -9,7 +9,7 @@ - + @@ -60,11 +60,11 @@ + static-field="org.argeo.connect.resources.ResourcesTypes.RESOURCES_TAG_INSTANCE" /> - + @@ -76,8 +76,8 @@ static-field="org.argeo.connect.people.PeopleTypes.PEOPLE_MAILING_LIST" /> + - @@ -86,15 +86,15 @@ + - + - @@ -104,7 +104,7 @@ - + diff --git a/org.argeo.suite.web/src/org/argeo/suite/web/DefaultDashboard.java b/org.argeo.suite.web/src/org/argeo/suite/web/DefaultDashboard.java index 8b0c78c..e1085f4 100644 --- a/org.argeo.suite.web/src/org/argeo/suite/web/DefaultDashboard.java +++ b/org.argeo.suite.web/src/org/argeo/suite/web/DefaultDashboard.java @@ -10,7 +10,7 @@ import org.argeo.cms.util.CmsUtils; import org.argeo.connect.people.PeopleException; import org.argeo.connect.people.PeopleService; import org.argeo.connect.people.web.parts.PeopleSearchCmp; -import org.argeo.connect.resources.ResourceService; +import org.argeo.connect.resources.ResourcesService; import org.argeo.eclipse.ui.EclipseUiUtils; import org.eclipse.jface.viewers.DoubleClickEvent; import org.eclipse.jface.viewers.IDoubleClickListener; @@ -27,14 +27,14 @@ import org.eclipse.swt.widgets.Label; /** Default dashboard layout for Argeo Suite */ public class DefaultDashboard implements CmsUiProvider { - private ResourceService resourceService; + private ResourcesService resourceService; private PeopleService peopleService; private Map peopleIconPaths; // Local UI Providers // private CmsUiProvider orgPage; - public DefaultDashboard(ResourceService resourceService, PeopleService peopleService, Map peopleIconPaths) { + public DefaultDashboard(ResourcesService resourceService, PeopleService peopleService, Map peopleIconPaths) { this.resourceService = resourceService; this.peopleService = peopleService; this.peopleIconPaths = peopleIconPaths; diff --git a/org.argeo.suite.web/src/org/argeo/suite/web/DefaultMainPage.java b/org.argeo.suite.web/src/org/argeo/suite/web/DefaultMainPage.java index 6c4c74e..d22a5dd 100644 --- a/org.argeo.suite.web/src/org/argeo/suite/web/DefaultMainPage.java +++ b/org.argeo.suite.web/src/org/argeo/suite/web/DefaultMainPage.java @@ -19,7 +19,7 @@ import org.argeo.cms.widgets.auth.CmsLogin; import org.argeo.connect.people.PeopleService; import org.argeo.connect.people.PeopleTypes; import org.argeo.connect.people.web.pages.PeopleDefaultPage; -import org.argeo.connect.resources.ResourceService; +import org.argeo.connect.resources.ResourcesService; import org.argeo.eclipse.ui.EclipseUiUtils; import org.argeo.suite.web.fs.MyFilesBrowserPage; import org.eclipse.swt.SWT; @@ -42,7 +42,7 @@ public class DefaultMainPage implements LifeCycleUiProvider { private CmsUiProvider fsBrowserPage; /* DEPENDENCY INJECTION */ - private ResourceService resourceService; + private ResourcesService resourceService; private PeopleService peopleService; private FileSystemProvider nodeFileSystemProvider; private Map peopleIconPaths; @@ -123,7 +123,7 @@ public class DefaultMainPage implements LifeCycleUiProvider { } /* DEPENDENCY INJECTION */ - public void setResourceService(ResourceService resourceService) { + public void setResourceService(ResourcesService resourceService) { this.resourceService = resourceService; } diff --git a/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/commands/OpenDashboardEditor.java b/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/commands/OpenDashboardEditor.java index 6f335cc..6a9ef57 100644 --- a/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/commands/OpenDashboardEditor.java +++ b/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/commands/OpenDashboardEditor.java @@ -5,7 +5,7 @@ import javax.jcr.Repository; import javax.jcr.RepositoryException; import javax.jcr.Session; -import org.argeo.connect.people.workbench.rap.editors.util.EntityEditorInput; +import org.argeo.connect.ui.workbench.parts.EntityEditorInput; import org.argeo.jcr.JcrUtils; import org.argeo.node.NodeUtils; import org.argeo.suite.SuiteException; diff --git a/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/AbstractSuiteDashboard.java b/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/AbstractSuiteDashboard.java index e18d202..f356ca2 100644 --- a/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/AbstractSuiteDashboard.java +++ b/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/AbstractSuiteDashboard.java @@ -9,14 +9,13 @@ import javax.jcr.Session; import org.argeo.cms.ui.workbench.util.CommandUtils; import org.argeo.cms.util.CmsUtils; +import org.argeo.connect.activities.ActivitiesService; import org.argeo.connect.documents.DocumentsService; -import org.argeo.connect.resources.ResourceService; -import org.argeo.connect.activities.ActivityService; -import org.argeo.connect.activities.ActivitiesTypes; import org.argeo.connect.people.PeopleService; -import org.argeo.connect.people.workbench.rap.PeopleStyles; -import org.argeo.connect.people.workbench.rap.editors.util.EntityEditorInput; +import org.argeo.connect.resources.ResourcesService; +import org.argeo.connect.ui.ConnectUiStyles; import org.argeo.connect.ui.workbench.AppWorkbenchService; +import org.argeo.connect.ui.workbench.parts.EntityEditorInput; import org.argeo.connect.util.ConnectJcrUtils; import org.argeo.eclipse.ui.EclipseUiUtils; import org.argeo.jcr.JcrUtils; @@ -41,8 +40,8 @@ public abstract class AbstractSuiteDashboard extends EditorPart { // DEPENDENCY INJECTION private Repository repository; - private ResourceService resourceService; - private ActivityService activityService; + private ResourcesService resourceService; + private ActivitiesService activityService; private PeopleService peopleService; private DocumentsService documentsService; private AppWorkbenchService appWorkbenchService; @@ -106,20 +105,20 @@ public abstract class AbstractSuiteDashboard extends EditorPart { gd.widthHint = widthHint; gd.heightHint = heightHint; gadgetCmp.setLayoutData(gd); - CmsUtils.style(gadgetCmp, PeopleStyles.PEOPLE_CLASS_GADGET); + CmsUtils.style(gadgetCmp, ConnectUiStyles.GADGET_BOX); return gadgetCmp; } protected Composite createGadgetTitleCmp(Composite parent, String title) { Composite titleCmp = toolkit.createComposite(parent, SWT.BACKGROUND | SWT.INHERIT_NONE); - CmsUtils.style(titleCmp, PeopleStyles.GADGET_HEADER); + CmsUtils.style(titleCmp, ConnectUiStyles.GADGET_HEADER); titleCmp.setBackground(null); GridData gd = new GridData(SWT.FILL, SWT.TOP, true, false); titleCmp.setLayoutData(gd); titleCmp.setLayout(new GridLayout()); Label titleLbl = toolkit.createLabel(titleCmp, title + " ", SWT.BOLD); - CmsUtils.style(titleLbl, PeopleStyles.GADGET_HEADER); + CmsUtils.style(titleLbl, ConnectUiStyles.GADGET_HEADER); titleLbl.setBackground(null); return titleCmp; } @@ -187,11 +186,11 @@ public abstract class AbstractSuiteDashboard extends EditorPart { return session; } - public ResourceService getResourceService() { + public ResourcesService getResourceService() { return resourceService; } - - protected ActivityService getActivityService() { + + protected ActivitiesService getActivityService() { return activityService; } @@ -203,7 +202,6 @@ public abstract class AbstractSuiteDashboard extends EditorPart { return documentsService; } - protected AppWorkbenchService getAppWorkbenchService() { return appWorkbenchService; } @@ -221,11 +219,11 @@ public abstract class AbstractSuiteDashboard extends EditorPart { this.repository = repository; } - public void setResourceService(ResourceService resourceService) { + public void setResourceService(ResourcesService resourceService) { this.resourceService = resourceService; } - - public void setActivityService(ActivityService activityService) { + + public void setActivityService(ActivitiesService activityService) { this.activityService = activityService; } @@ -237,7 +235,6 @@ public abstract class AbstractSuiteDashboard extends EditorPart { this.peopleService = peopleService; } - public void setAppWorkbenchService(AppWorkbenchService appWorkbenchService) { this.appWorkbenchService = appWorkbenchService; } diff --git a/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/DefaultDashboardEditor.java b/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/DefaultDashboardEditor.java index e45e068..a9dd0e5 100644 --- a/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/DefaultDashboardEditor.java +++ b/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/DefaultDashboardEditor.java @@ -8,8 +8,8 @@ import org.apache.commons.logging.LogFactory; import org.argeo.connect.ConnectConstants; import org.argeo.connect.activities.ActivitiesTypes; import org.argeo.connect.people.PeopleTypes; -import org.argeo.connect.people.workbench.rap.PeopleRapUtils; import org.argeo.connect.resources.ResourcesTypes; +import org.argeo.connect.ui.workbench.ConnectWorkbenchUtils; import org.argeo.connect.ui.workbench.Refreshable; import org.argeo.connect.util.ConnectJcrUtils; import org.argeo.eclipse.ui.EclipseUiUtils; @@ -83,22 +83,22 @@ public class DefaultDashboardEditor extends AbstractSuiteDashboard implements Re createGadgetTitleCmp(parent, "Contacts"); Composite bodyCmp = createGadgetBodyCmp(parent); - PeopleRapUtils.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp, "Persons", + ConnectWorkbenchUtils.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp, "Persons", PeopleTypes.PEOPLE_PERSON, getPeopleService().getBasePath(PeopleTypes.PEOPLE_PERSON)); - PeopleRapUtils.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp, "Organisations", + ConnectWorkbenchUtils.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp, "Organisations", PeopleTypes.PEOPLE_ORG, getPeopleService().getBasePath(PeopleTypes.PEOPLE_ORG)); Node tagParent = getResourceService().getTagLikeResourceParent(getSession(), PeopleTypes.PEOPLE_MAILING_LIST); - PeopleRapUtils.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp, "Mailing lists", + ConnectWorkbenchUtils.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp, "Mailing lists", PeopleTypes.PEOPLE_MAILING_LIST, ConnectJcrUtils.getPath(tagParent)); - PeopleRapUtils.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp, "Tasks", + ConnectWorkbenchUtils.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp, "Tasks", ActivitiesTypes.ACTIVITIES_TASK, getPeopleService().getBasePath(null)); tagParent = getResourceService().getTagLikeResourceParent(getSession(), ConnectConstants.RESOURCE_TAG); - PeopleRapUtils.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp, "Tags", - ResourcesTypes.PEOPLE_TAG_INSTANCE, ConnectJcrUtils.getPath(tagParent)); + ConnectWorkbenchUtils.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp, "Tags", + ResourcesTypes.RESOURCES_TAG_INSTANCE, ConnectJcrUtils.getPath(tagParent)); } } diff --git a/org.argeo.suite.workbench.rap/theme/argeo-classic/icons/actions/delete_small.gif b/org.argeo.suite.workbench.rap/theme/argeo-classic/icons/actions/delete_small.gif new file mode 100644 index 0000000..df0b869 Binary files /dev/null and b/org.argeo.suite.workbench.rap/theme/argeo-classic/icons/actions/delete_small.gif differ diff --git a/org.argeo.suite.workbench.rap/theme/argeo-classic/workbench-ext.css b/org.argeo.suite.workbench.rap/theme/argeo-classic/workbench-ext.css index 7f673f7..0f41a28 100644 --- a/org.argeo.suite.workbench.rap/theme/argeo-classic/workbench-ext.css +++ b/org.argeo.suite.workbench.rap/theme/argeo-classic/workbench-ext.css @@ -141,6 +141,27 @@ Text.workbench_form_text:focused { box-shadow: inset 0 0 1px #bdbdbd; } + +/****** DASHBOARD *********/ + +/** Gadgets **/ +.gadget_box { + border: 1px solid #f3f3f4; + border-radius: 0px; + padding: 0px 0px; + margin: 0px 0px; + background-image: none; + background-color: transparent; +} + +.gadget_header { + background-color: #f3f3f4; + font-color: white; + color: white; /*dont work */ + font: bold 14px Helvetica, Verdana, "Lucida Sans", Arial, sans-serif; +} + + /****** DOCUMENTS *********/ /* Breadcrumb ***/ @@ -266,22 +287,16 @@ Button[PUSH][FLAT].markAsDone_btn:pressed { background-color: #fde2d5; } -/** Gadgets **/ -.people_gadget { - border: 1px solid #f3f3f4; +Button[PUSH][FLAT].small_delete_btn{ + background-image: url( theme/argeo-classic/icons/actions/delete_small.gif); + border: 0px solid white; border-radius: 0px; padding: 0px 0px; - margin: 0px 0px; - background-image: none; background-color: transparent; + animation: hoverOut 500ms ease-out; + cursor: pointer; } -.people_gadget_header { - background-color: #f3f3f4; - font-color: white; - color: white; /*dont work */ - font: bold 14px Helvetica, Verdana, "Lucida Sans", Arial, sans-serif; -} /** Header **/ .people_entity_header {