diff --git a/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/ExplorerLayout.java b/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/ExplorerLayout.java index 7fa820d70cb4f56ff943e2711d5c8c5d9bb93d90..d9b42c7b320f5bb73bf3bc542b13f326841859a0 100644 --- a/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/ExplorerLayout.java +++ b/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/ExplorerLayout.java @@ -81,24 +81,14 @@ public interface ExplorerLayout { // Login page static final String STYLE_LOGIN_PAGE = "login-general"; - // Menu bar - static final String STYLE_MENUBAR = "menubar"; - static final String STYLE_MENUBAR_BUTTON = "menu-button"; - - // Action Bar - static final String STYLE_ACTION_BAR = "action-bar"; - // Profile page static final String STYLE_PROFILE_LAYOUT = "profile-layout"; - static final String STYLE_PROFILE_HEADER = "profile-header"; static final String STYLE_PROFILE_FIELD = "profile-field"; static final String STYLE_PROFILE_PICTURE = "profile-picture"; static final String STYLE_PROFILE_LINK = "profile-link"; // Task pages static final String STYLE_TASK_LIST = "task-list"; - static final String STYLE_TASK_DETAILS = "task-details"; - static final String STYLE_TASK_DETAILS_HEADER = "task-details-header"; static final String STYLE_TASK_EVENT_PANEL = "task-event-panel"; static final String STYLE_TASK_EVENT = "task-event"; static final String STYLE_TASK_EVENT_AUTHOR = "task-event-author"; @@ -111,6 +101,7 @@ public interface ExplorerLayout { static final String STYLE_TASK_HEADER_PRIORITY_HIGH = "task-priority-high"; static final String STYLE_TASK_HEADER_CREATE_TIME = "task-create-time"; static final String STYLE_INVOLVE_PEOPLE = "involve-people"; + static final String STYLE_TASK_SUBTASKS_LIST = "subtasks"; // Flow pages static final String STYLE_PROCESS_DEFINITION_LIST = "proc-def-list"; @@ -121,8 +112,8 @@ public interface ExplorerLayout { static final String STYLE_FLOW_HEADER_START_TIME = "flow-start-time"; // Database page - static final String STYLE_DATABASE_DETAILS = "database-details"; - static final String STYLE_DATABASE_TABLE_ROW = "database-table-row"; + static final String STYLE_DATABASE_TABLE = "database-table"; + // Deployment page static final String STYLE_DEPLOYMENT_UPLOAD_DESCRIPTION = "upload-description"; diff --git a/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/Images.java b/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/Images.java index 89ee9e0aa6ed9bea9e384a01b0d2a9dbc02b8427..784124a24fb0d5ad11d883c5ad2b1c1267df0c18 100644 --- a/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/Images.java +++ b/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/Images.java @@ -26,7 +26,6 @@ public class Images { // General public static final Resource WHITE_DIVIDER = new ThemeResource("img/divider-white.png"); - public static final Resource TASK = new ThemeResource("img/task-22.png"); public static final Resource CLOCK = new ThemeResource("img/clock.png"); public static final Resource PROCESS_48PX = new ThemeResource("img/process_48.png"); public static final Resource RESOURCE = new ThemeResource("img/resource.png"); @@ -45,11 +44,11 @@ public class Images { public static final Resource MAIN_MENU_REPORTS = new ThemeResource("img/mm-reports.png"); // Task + public static final Resource TASK_16 = new ThemeResource("img/task-16.png");; + public static final Resource TASK_22 = new ThemeResource("img/task-22.png"); public static final Resource TASK_50 = new ThemeResource("img/task-50.png"); - public static final Resource TASK_FINISHED = new ThemeResource("img/tick.png"); - public static final Resource TASK_UNFINISHED = new ThemeResource("img/control_play.png"); + public static final Resource TASK_FINISHED_22 = new ThemeResource("img/task-finished-22.png"); public static final Resource TASK_DUE_DATE_16 = new ThemeResource("img/duedate-16.png"); - public static final Resource TASK_16 = new ThemeResource("img/task-16.png");; // Accounts public static final Resource SKYPE = new ThemeResource("img/skype.png"); diff --git a/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/MenuBar.java b/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/MenuBar.java deleted file mode 100644 index f13ee3c056ca19942f7b44cd09ac7236fcba9f5a..0000000000000000000000000000000000000000 --- a/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/MenuBar.java +++ /dev/null @@ -1,50 +0,0 @@ -/* Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.activiti.explorer.ui; - - -import com.vaadin.ui.Button; -import com.vaadin.ui.HorizontalLayout; -import com.vaadin.ui.Label; -import com.vaadin.ui.themes.Reindeer; - - -/** - * @author Joram Barrez - */ -public class MenuBar extends HorizontalLayout { - - private static final long serialVersionUID = 5643382350306433838L; - - public MenuBar() { - setSpacing(true); - setWidth("100%"); - } - - protected Button createMenuBarButton(String name) { - Button button = new Button(name); - button.addStyleName(Reindeer.BUTTON_LINK); - button.addStyleName(ExplorerLayout.STYLE_MENUBAR_BUTTON); - addComponent(button); - return button; - } - - protected void fillRemainingSpace() { - Label remainingSpace = new Label(); - remainingSpace.setWidth("100%"); - addComponent(remainingSpace); - setExpandRatio(remainingSpace, 1.0f); - } - -} diff --git a/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/content/file/FileAttachmentEditorComponent.java b/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/content/file/FileAttachmentEditorComponent.java index d2b9147b19376fec3fa3303b57423c5de0f79a7e..81ff395dd1c37d78e62e4efcfe52362c3d35fc76 100644 --- a/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/content/file/FileAttachmentEditorComponent.java +++ b/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/content/file/FileAttachmentEditorComponent.java @@ -88,7 +88,7 @@ public class FileAttachmentEditorComponent extends VerticalLayout implements Att protected void initSuccessIndicator() { successIndicator = new Label(); - successIndicator.setIcon(Images.TASK_FINISHED); + successIndicator.setIcon(Images.SUCCESS); successIndicator.setVisible(false); addComponent(successIndicator); diff --git a/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/custom/UploadPopupWindow.java b/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/custom/UploadPopupWindow.java index c4b5d95f08523cdb1cc847c853e23dd79b7aa8e8..01c2132fc227868d3766f75e1314d5777dc52b83 100644 --- a/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/custom/UploadPopupWindow.java +++ b/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/custom/UploadPopupWindow.java @@ -52,8 +52,9 @@ public class UploadPopupWindow extends PopupWindow { // UI initialisation ---------------------------------------------------------------------------- protected void init(String caption, String description, Receiver receiver) { - initWindow(caption); uploadComponent = new UploadComponent(description, receiver); + uploadComponent.setSizeFull(); + initWindow(caption); } protected void initWindow(String caption) { diff --git a/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/flow/ProcessInstanceDetailPanel.java b/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/flow/ProcessInstanceDetailPanel.java index 215940d05b19314bd6662b348556e7deb4365961..db8c428b7a2a0741883731232d317b78b2f88ded 100644 --- a/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/flow/ProcessInstanceDetailPanel.java +++ b/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/flow/ProcessInstanceDetailPanel.java @@ -156,9 +156,9 @@ public class ProcessInstanceDetailPanel extends DetailPanel { Item item = taskTable.addItem(task.getId()); if(task.getEndTime() != null) { - item.getItemProperty("finished").setValue(new Embedded(null, Images.TASK_FINISHED)); + item.getItemProperty("finished").setValue(new Embedded(null, Images.TASK_22)); } else { - item.getItemProperty("finished").setValue(new Embedded(null, Images.TASK_UNFINISHED)); + item.getItemProperty("finished").setValue(new Embedded(null, Images.TASK_FINISHED_22)); } item.getItemProperty("name").setValue(task.getName()); diff --git a/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/management/db/DatabaseDetailPanel.java b/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/management/db/DatabaseDetailPanel.java index f2f9cbd77da6736a640b20094eb3caa870e66adc..0f6c143b1ec2546379924e21f2bdb9a472f9458f 100644 --- a/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/management/db/DatabaseDetailPanel.java +++ b/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/management/db/DatabaseDetailPanel.java @@ -103,8 +103,7 @@ public class DatabaseDetailPanel extends DetailPanel { data.setWidth(100, UNITS_PERCENTAGE); data.setHeight(100, UNITS_PERCENTAGE); - data.addStyleName(ExplorerLayout.STYLE_DATABASE_TABLE_ROW); - data.addStyleName(ExplorerLayout.STYLE_DATABASE_DETAILS); + data.addStyleName(ExplorerLayout.STYLE_DATABASE_TABLE); setDetailExpandRatio(data, 1.0f); // Create column headers @@ -115,7 +114,7 @@ public class DatabaseDetailPanel extends DetailPanel { } else { Label noDataLabel = new Label(i18nManager.getMessage(Messages.DATABASE_NO_ROWS)); - noDataLabel.addStyleName(ExplorerLayout.STYLE_DATABASE_DETAILS); + noDataLabel.addStyleName(Reindeer.LABEL_SMALL); addDetailComponent(noDataLabel); setDetailExpandRatio(noDataLabel, 1.0f); } diff --git a/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/task/HistoricTaskDetailPanel.java b/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/task/HistoricTaskDetailPanel.java index 3d940046355af002dd8f1aaa0974859b648df48b..5165e92500bd988ac042ce84c6066de66cc5e896 100644 --- a/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/task/HistoricTaskDetailPanel.java +++ b/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/task/HistoricTaskDetailPanel.java @@ -278,7 +278,7 @@ public class HistoricTaskDetailPanel extends DetailPanel { protected void populateSubTasks(List subTasks) { for (final HistoricTaskInstance subTask : subTasks) { // icon - Embedded icon = new Embedded(null, Images.TASK); + Embedded icon = new Embedded(null, Images.TASK_22); icon.setWidth(22, UNITS_PIXELS); icon.setWidth(22, UNITS_PIXELS); subTaskGrid.addComponent(icon); diff --git a/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/task/SubTaskComponent.java b/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/task/SubTaskComponent.java index e84c41228e36b6ab40e432e5d5f458dfe23e04cd..f317433417e917b5d9c0b740a89240e529c52820 100644 --- a/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/task/SubTaskComponent.java +++ b/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/task/SubTaskComponent.java @@ -14,8 +14,10 @@ package org.activiti.explorer.ui.task; import java.util.List; +import org.activiti.engine.HistoryService; import org.activiti.engine.ProcessEngines; import org.activiti.engine.TaskService; +import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.task.Task; import org.activiti.explorer.ExplorerApp; import org.activiti.explorer.I18nManager; @@ -28,10 +30,10 @@ import org.activiti.explorer.ui.task.listener.DeleteSubTaskClickListener; import com.vaadin.event.Action; import com.vaadin.event.Action.Handler; import com.vaadin.event.ShortcutAction; +import com.vaadin.ui.Alignment; import com.vaadin.ui.Button; import com.vaadin.ui.Button.ClickEvent; import com.vaadin.ui.Button.ClickListener; -import com.vaadin.ui.Alignment; import com.vaadin.ui.CustomComponent; import com.vaadin.ui.Embedded; import com.vaadin.ui.GridLayout; @@ -55,6 +57,7 @@ public class SubTaskComponent extends CustomComponent { protected I18nManager i18nManager; protected TaskService taskService; + protected HistoryService historyService; protected Task parentTask; protected TaskDetailPanel taskDetailPanel; @@ -69,6 +72,7 @@ public class SubTaskComponent extends CustomComponent { this.parentTask = parentTask; this.i18nManager = ExplorerApp.get().getI18nManager(); this.taskService = ProcessEngines.getDefaultProcessEngine().getTaskService(); + this.historyService = ProcessEngines.getDefaultProcessEngine().getHistoryService(); initUi(); } @@ -187,7 +191,9 @@ public class SubTaskComponent extends CustomComponent { } protected void initSubTasks() { - List subTasks = taskService.getSubTasks(parentTask.getId()); + List subTasks = historyService.createHistoricTaskInstanceQuery() + .taskParentTaskId(parentTask.getId()) + .list(); initSubTasksLayout(); populateSubTasks(subTasks); } @@ -195,16 +201,24 @@ public class SubTaskComponent extends CustomComponent { protected void initSubTasksLayout() { subTaskLayout = new GridLayout(); subTaskLayout.setColumns(3); + subTaskLayout.addStyleName(ExplorerLayout.STYLE_TASK_SUBTASKS_LIST); subTaskLayout.setWidth(99, UNITS_PERCENTAGE); subTaskLayout.setColumnExpandRatio(2, 1.0f); + subTaskLayout.setSpacing(true); layout.addComponent(subTaskLayout); } - protected void populateSubTasks(List subTasks) { + protected void populateSubTasks(List subTasks) { if (subTasks.size() > 0) { - for (final Task subTask : subTasks) { + for (final HistoricTaskInstance subTask : subTasks) { // icon - Embedded icon = new Embedded(null, Images.TASK); + Embedded icon = null; + + if(subTask.getEndTime() != null) { + icon = new Embedded(null, Images.TASK_FINISHED_22); + } else { + icon = new Embedded(null, Images.TASK_22); + } icon.setWidth(22, UNITS_PIXELS); icon.setWidth(22, UNITS_PIXELS); subTaskLayout.addComponent(icon); @@ -220,12 +234,17 @@ public class SubTaskComponent extends CustomComponent { subTaskLayout.addComponent(subTaskLink); subTaskLayout.setComponentAlignment(subTaskLink, Alignment.MIDDLE_LEFT); - // Delete icon - Embedded deleteIcon = new Embedded(null, Images.DELETE); - deleteIcon.addStyleName(ExplorerLayout.STYLE_CLICKABLE); - deleteIcon.addListener(new DeleteSubTaskClickListener(subTask, this)); - subTaskLayout.addComponent(deleteIcon); - subTaskLayout.setComponentAlignment(deleteIcon, Alignment.MIDDLE_RIGHT); + if(subTask.getEndTime() == null) { + // Delete icon only appears when task is not finished yet + Embedded deleteIcon = new Embedded(null, Images.DELETE); + deleteIcon.addStyleName(ExplorerLayout.STYLE_CLICKABLE); + deleteIcon.addListener(new DeleteSubTaskClickListener(subTask, this)); + subTaskLayout.addComponent(deleteIcon); + subTaskLayout.setComponentAlignment(deleteIcon, Alignment.MIDDLE_RIGHT); + } else { + // Next line of grid + subTaskLayout.newLine(); + } } } else { Label noSubTasksLabel = new Label(i18nManager.getMessage(Messages.TASK_NO_SUBTASKS)); @@ -238,7 +257,9 @@ public class SubTaskComponent extends CustomComponent { public void refreshSubTasks() { subTaskLayout.removeAllComponents(); - List subTasks = taskService.getSubTasks(parentTask.getId()); + List subTasks = historyService.createHistoricTaskInstanceQuery() + .taskParentTaskId(parentTask.getId()) + .list(); populateSubTasks(subTasks); } diff --git a/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/task/TaskPage.java b/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/task/TaskPage.java index 2c90035bc81327a982c68e9cc22cd558f04ec89d..b59478ca6c3b028fd58a1c3a575a578a8e1f63ba 100644 --- a/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/task/TaskPage.java +++ b/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/task/TaskPage.java @@ -95,7 +95,7 @@ public abstract class TaskPage extends AbstractPage { taskTable.setContainerDataSource(taskListContainer); // Create column header - taskTable.addGeneratedColumn("icon", new ThemeImageColumnGenerator(Images.TASK)); + taskTable.addGeneratedColumn("icon", new ThemeImageColumnGenerator(Images.TASK_22)); taskTable.setColumnWidth("icon", 22); taskTable.addContainerProperty("name", String.class, null); diff --git a/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/task/listener/DeleteSubTaskClickListener.java b/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/task/listener/DeleteSubTaskClickListener.java index 1e9cc810d7ff8321abc32baca6107fabcc3e3ed5..1e6b49e0da8cf0fbcc1ff88ce575b5f5c058daf5 100644 --- a/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/task/listener/DeleteSubTaskClickListener.java +++ b/modules/activiti-webapp-explorer2/src/main/java/org/activiti/explorer/ui/task/listener/DeleteSubTaskClickListener.java @@ -15,7 +15,7 @@ package org.activiti.explorer.ui.task.listener; import org.activiti.engine.ProcessEngines; import org.activiti.engine.TaskService; -import org.activiti.engine.task.Task; +import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.explorer.ExplorerApp; import org.activiti.explorer.I18nManager; import org.activiti.explorer.Messages; @@ -39,10 +39,10 @@ public class DeleteSubTaskClickListener implements ClickListener { private static final long serialVersionUID = 1L; - protected Task subTask; + protected HistoricTaskInstance subTask; protected SubTaskComponent subTaskComponent; - public DeleteSubTaskClickListener(Task subTask, SubTaskComponent subTaskComponent) { + public DeleteSubTaskClickListener(HistoricTaskInstance subTask, SubTaskComponent subTaskComponent) { this.subTask = subTask; this.subTaskComponent = subTaskComponent; } @@ -55,6 +55,7 @@ public class DeleteSubTaskClickListener implements ClickListener { ConfirmationDialogPopupWindow popup = new ConfirmationDialogPopupWindow( i18nManager.getMessage(Messages.TASK_CONFIRM_DELETE_SUBTASK, subTask.getName())); popup.addListener(new ConfirmationEventListener() { + private static final long serialVersionUID = 1L; protected void rejected(ConfirmationEvent event) { } protected void confirmed(ConfirmationEvent event) { diff --git a/modules/activiti-webapp-explorer2/src/main/webapp/VAADIN/themes/activiti/img/task-finished-22.png b/modules/activiti-webapp-explorer2/src/main/webapp/VAADIN/themes/activiti/img/task-finished-22.png new file mode 100644 index 0000000000000000000000000000000000000000..33ff34d9ceb8f094f4ddf0e4b2208711e56aad03 Binary files /dev/null and b/modules/activiti-webapp-explorer2/src/main/webapp/VAADIN/themes/activiti/img/task-finished-22.png differ diff --git a/modules/activiti-webapp-explorer2/src/main/webapp/VAADIN/themes/activiti/styles.css b/modules/activiti-webapp-explorer2/src/main/webapp/VAADIN/themes/activiti/styles.css index 7d8249d1e3f171f831c9a8781d8786c9cbe9f0c3..c057d717e47d73598d3d3e5ca64af388917d9da3 100644 --- a/modules/activiti-webapp-explorer2/src/main/webapp/VAADIN/themes/activiti/styles.css +++ b/modules/activiti-webapp-explorer2/src/main/webapp/VAADIN/themes/activiti/styles.css @@ -1,9 +1,18 @@ @import url(../reindeer/styles.css); -/* ------ +body { + margin:0; + font:12px/14px Arial, Helvetica, sans-serif; + color:#3c3c3c; + min-width:980px; + background:#f9f9f9; + max-width:1920px; +} + +/* ------- Generic ------- */ - + .v-label-red { color: red; } @@ -12,6 +21,192 @@ border: none; } +.v-label-bold { + font-weight: bold; +} + +.v-label-caption, +.v-button-caption { + text-shadow: none; +} + +.clickable { + cursor: pointer; +} + +.v-button-link .v-button-caption, .v-link a:link span, .v-link a:visited span { + color:#3c3c3c; +} + +/* ------------- + Popup windows + ------------- */ +.v-window-light .v-window-header { + color:#007dc3; + font:18px Arial, Helvetica, sans-serif; +} + +/* --------------- + Form Properties + --------------- */ +.formprops .h4 { + color:#3c3c3c; + font:bold 12px Arial, Helvetica, sans-serif; +} + +/* ----------------------- + Buttons - Normal button + ----------------------- */ + +.v-button:focus { + background-position: 0 0; + background-image: url(img/button-bg-left-active.gif); +} + +.v-button:focus .v-button-wrap { + background-position: right 0; + background-image: url(img/button-bg-right-active.gif); +} + +.v-button:active, +.v-button.v-pressed { + background-position: 0 0; + background-image: url(img/button-bg-left-down.gif); +} + +.v-button:active .v-button-wrap, +.v-button.v-pressed .v-button-wrap { + background-position: right 0; + background-image: url(img/button-bg-right-down.gif); +} + +.v-button, +.v-disabled.v-button { + height: 24px; + padding: 0 0 0 5px; + background: transparent url(img/button-bg-left.gif) repeat-x 0 0; + cursor: pointer; +} + +.v-button-wrap, +.v-disabled.v-button .v-button-wrap { + height: 24px; + padding: 4px 10px 0 4px; + background: transparent url(img/button-bg-right.gif) repeat-x right 0; + cursor: pointer; +} + +.v-button-caption { + color: #464646; +} + +.v-button.v-disabled .v-button-wrap .v-button-caption { + color: #646464; + cursor: default; +} +/* ---------------------- + Buttons - Small button + ---------------------- */ +.v-button-small, +.v-disabled.v-button-small, +.v-button-small:active, +.v-pressed.v-button-small, +.v-button-small:focus { + height: 17px; + padding: 0 0 0 6px; + background: transparent url(img/button-bg-small-left.gif) repeat-x 0 0; + font:bold 10px/12px Arial, Helvetica, sans-serif; + cursor: pointer; +} + +.v-button-small .v-button-wrap, +.v-button-small.v-disabled .v-button-wrap, +.v-button-small:active .v-button-wrap, +.v-button-small.v-pressed .v-button-wrap { + height: 17px; + padding: 1px 12px 0 6px; + background: transparent url(img/button-bg-small-right.gif) repeat-x right 0; + font:bold 10px/12px Arial, Helvetica, sans-serif; + cursor: pointer; +} + +.v-button-small:focus .v-button-wrap { + background: transparent url(img/button-bg-small-right-focus.gif) repeat-x right 0; +} + +.v-button-small:focus { + background: transparent url(img/button-bg-small-left-focus.gif) repeat-x 0 0; +} + +.v-button-small .v-button-wrap .v-button-caption { + font:bold 10px/12px Arial, Helvetica, sans-serif; +} + +/* -------------------- + Buttons - Add button + -------------------- */ + .v-button-add, +.v-disabled.v-button-add, +.v-button-add:active, +.v-pressed.v-button-add, +.v-button-add:focus +{ + height: 25px; + width: 26px; + background: transparent background:url(img/ico-8.gif) no-repeat 0 0; + cursor: pointer; +} + +.v-button-add .v-button-wrap, +.v-button-add.v-disabled .v-button-wrap, +.v-button-add:active .v-button-wrap, +.v-button-add.v-pressed .v-button-wrap, +.v-button-add:focus .v-button-wrap { + background: none; +} + +/* --------------------- + Table - default style + --------------------- */ +.v-table-row-odd, .v-table-row { + background-color: #fff; + overflow:hidden; + font:12px/14px Arial, Helvetica, sans-serif; +} + +.v-table-row-odd.v-selected, .v-table-row.v-selected { + background: #dff5ff; + color: #000000; + font-weight: bold; + text-shadow: none; +} + +.v-table-row-odd .v-table-cell-content, .v-table-row .v-table-cell-content { + border: none; + height: 35px; + border-bottom: 1px solid #c5c5c5; +} + +.v-table-cell-content { + vertical-align: middle; +} + +.v-table-body { + border: 1px solid #c5c5c5; +} +.v-table-body.focused { + border: 1px solid #c5c5c5; +} + +.v-table .v-table-caption-container { + padding-right: 0px; + text-shadow: none; +} + +.v-table .v-table-header-wrap { + background:#fff url(img/bg-table.png) repeat-x 0 100%; +} + /* ----- Login ----- */ @@ -112,251 +307,9 @@ input.login-field { text-decoration: none; } -/* --------- - Main menu - --------- */ - -#main-menu { - /*background: no-repeat right url(img/main-menu-bg-right.png);*/ - background-color: #1b7ec3; - text-shadow: 0pt 1px 0pt rgba(0, 0, 0, 0.9); - padding-top: 0px; - padding-right: 8px; - padding-bottom: 3px; - padding-left: 8px; -} - -.v-button-menu-button .v-button-caption { - color: #fefffb; - text-decoration: none; -} - - -/* ---------- - Action Bar - ---------- */ -.v-horizontallayout-action-bar { - border-top: 1px solid #CFCFCF; - border-bottom: 1px solid #CFCFCF; - padding: 2px 0px; -} - -/* ------------ - Profile page - ------------ */ - - -.v-label-profile-header { - height: 1.1em; - padding-right: 0.3em; - padding-bottom: 0.3em; - padding-left: 0.3em; - margin-right: 1em; - margin-bottom: 0em; - margin-left: 1em; - background-color: #e3eaec; - font-weight: bold; - font-size: 116%; -} - -.v-gridlayout-profile-layout { - padding-top: 0.3em; - padding-right: 0.3em; - padding-bottom: 0.3em; - padding-left: 0.3em; - margin-top: 1.5em; - margin-right: 1em; - margin-bottom: 0em; - margin-left: 1.5em; -} - -.v-label-profile-field { - font-weight: bold; -} - -.v-gridlayout-profile-layout .v-gridlayout-spacing-on { - padding-top: 8px; -} - -.profile-picture { - margin-top: 6px; - padding: 1px; - border: 1px solid #021a40; -} - - /* ------------ - Task details + Main content ------------ */ - -.v-label-bold { - font-weight: bold; -} - -.v-gridlayout-task-details .v-gridlayout-spacing-on { - padding-left: 15px; - padding-top: 2px; -} - -.v-label-horizontal-separator { - margin-top: 0px; - padding-top: 0px; -} - -/* ------------- - Database page - ------------- */ - -.database-table-row .v-table-cell-content { - height: 50px; -} - -/* ---------- - Deployment - ---------- */ - -.upload-description { - margin: 1.5em; - padding-right: 3em; -} - -.upload-button { - margin-top: 1.5em; -} - -/* ---- - Jobs - ---- */ - -.job-exception-message { - color: #AA0000; - font-weight: bold; -} - -/* -------------- - Form rendering - -------------- */ -.formprop-readonly { - color: #666666; -} - -/* -------- - Menu Bar - -------- */ - -.v-menubar { - color: #FEFFFB; - text-shadow:none; - padding-left: 2px; - border-bottom: solid 1px #1b7ec3; -} - -.v-menubar-menuitem-caption { - cursor: pointer; -} - - -/* Shared styles */ -.deployment-details-header, .job-details-header, .proc-def-details-header, .proc-inst-details-header, .related-content-detail-header { - width: 95%; - height: 1.1em; - padding-top: 0.3em; - padding-right: 0.3em; - padding-bottom: 0.3em; - padding-left: 0.3em; - margin-top: 1.5em; - margin-right: 1em; - margin-bottom: 1.5em; - background-color: #e3eaec; - font-weight: bold; - font-size: 116%; -} - -/* Related content */ - -.related-content-detail-header { - margin-top: 0; -} - -.image-action { - cursor: pointer; -} - -.clickable { - cursor: pointer; -} - -.v-table-related-content-create-list { - margin-right: 0px; -} - -.v-table-related-content-create-list .v-table-body { - border: none; -} - -.v-table-related-content-create-list .v-table-body .v-table-table { - /*border: 1px solid white;*/ - border-right: none; -} - -.related-content-create-detail { - border: 1px solid #e8e8e3; - background-color: #e8e8e3; -} - -.v-table-related-content-create-list .v-table-row, -.v-table-related-content-create-list .v-table-row-odd { - background: none; -} - -.v-table-related-content-create-list .v-table-row .v-table-cell-content, -.v-table-related-content-create-list .v-table-row-odd .v-table-cell-content { - background: none; - border: none; -} - -.v-table-related-content-create-list .v-table-row.v-selected .v-table-cell-content, -.v-table-related-content-create-list .v-table-row-odd.v-selected .v-table-cell-content { - border-top: 1px solid #c5c5c5; - border-bottom: 1px solid #c5c5c5; -} - -.v-table-related-content-create-list .v-selected .v-table-cell-content-related-last-column { - background: #DFF5FF no-repeat url(img/arrow.png) right center; -} - -.v-table-related-content-create-list .v-table-row.v-selected, -.v-table-related-content-create-list .v-table-row-odd.v-selected { - background: #DFF5FF; -} - - - -/* -OLD CSS ABOVE THIS LINE - ******************************* - */ - -body { - margin:0; - font:12px/14px Arial, Helvetica, sans-serif; - color:#3c3c3c; - min-width:980px; - background:#f9f9f9; - max-width:1920px; -} - -/* - * Generic styles - */ -.v-button-link .v-button-caption, .v-link a:link span, .v-link a:visited span { - color:#3c3c3c; -} - - -/* - * Main content - */ .main { background-color: #fff; } @@ -365,24 +318,9 @@ body { background-color: #fff; } -/* - * Footer - */ -.footer { - background:#f9f9f9; - border-top:1px solid #ababab; - font:bold 11px Arial, Helvetica, sans-serif; - color:#666; - padding:10px 0; -} - -.footer .v-label { - text-align: center; -} - -/* - * Header - */ +/* ------ + Header + ------ */ .header { padding:0 12px 0 10px; height:1%; @@ -412,9 +350,9 @@ body { float:left; } -/* - * Header, Main menu - */ +/* ----------------- + Header, Main menu + ----------------- */ .main-menu-button .v-button-wrap { text-align: center; } @@ -434,9 +372,9 @@ body { margin: 0px; } -/* - * Header - profile link - */ +/* --------------------- + Header - Profile link + --------------------- */ .person { float:right; margin:18px 0 0; @@ -455,31 +393,15 @@ body { .v-menubar-popup .v-menubar-submenu-person { background-color: #005eab; color: #fff; - } +} - .v-menubar-popup .v-menubar-submenu-person .v-menubar-menuitem-selected { +.v-menubar-popup .v-menubar-submenu-person .v-menubar-menuitem-selected { background: #1B7EC3; - } - -/* - * Profile link - */ -.profile-link .v-button-link .v-button-caption { - color:#3c3c3c; - font-weight: bold; } -/* - * Popup windows - */ -.v-window-light .v-window-header { - color:#007dc3; - font:18px Arial, Helvetica, sans-serif; -} - - /* - * Toolbar - */ +/* ------- + Toolbar + ------- */ .toolbar { width:100%; background:#fff url(img/bg-toolbar.gif) repeat-x 0 100%; @@ -493,6 +415,10 @@ body { padding-right: 10px; } +.v-horizontallayout-toolbar .v-horizontallayout-spacing-on { + padding-right: 15px; +} + .toolbar .v-button-toolbar-count.link.v-button-link { color:#fff; background:url(img/bg-number.gif) no-repeat; @@ -560,7 +486,7 @@ body { background: none; border: none; font:16px/18px Arial, Helvetica, sans-serif; - padding:0 0 0 5px; + padding: 0px; text-decoration: none; color: #8e8e8e; } @@ -587,63 +513,47 @@ body { font:14px Arial, Helvetica, sans-serif; background-color: #fff; color: #464646; - } - -.v-menubar-popup .v-menubar-submenu-toolbar-popup .v-menubar-menuitem-selected { - background: #eaeaea; - color: #464646; } -.v-menubar-popup .v-menubar-submenu-toolbar-popup .v-menubar-menuitem-selected .v-menubar-menuitem-caption { +.v-menubar-toolbar-popup .v-menubar-menuitem .v-menubar-menuitem-caption { text-shadow: none; } - -/** - * Table - default style - */ -.v-table-row-odd, .v-table-row { - background-color: #fff; - overflow:hidden; - font:12px/14px Arial, Helvetica, sans-serif; -} - -.v-table-row-odd.v-selected, .v-table-row.v-selected { - background: #dff5ff; - color: #000000; - font-weight: bold; - text-shadow: none; -} -.v-table-row-odd .v-table-cell-content, .v-table-row .v-table-cell-content { - border: none; - height: 35px; - border-bottom: 1px solid #c5c5c5; +div.v-menubar-toolbar-popup { + padding-left: 0px; } -.v-table-cell-content { - vertical-align: middle; +.v-menubar-toolbar-popup .v-menubar-menuitem { + padding-left: 0px; + padding-right: 5px; } - -.v-table-body { - border: 1px solid #c5c5c5; +.v-menubar-popup .v-menubar-submenu-toolbar-popup .v-menubar-menuitem-selected { + background: #eaeaea; + color: #464646; } -.v-table-body.focused { - border: 1px solid #c5c5c5; + +.v-menubar-popup .v-menubar-submenu-toolbar-popup .v-menubar-menuitem-selected .v-menubar-menuitem-caption { + text-shadow: none; } -.v-table .v-table-caption-container { - padding-right: 0px; - text-shadow: none; +/* ------ + Footer + ------ */ +.footer { + background:#f9f9f9; + border-top:1px solid #ababab; + font:bold 11px Arial, Helvetica, sans-serif; + color:#666; + padding:10px 0; } -.v-table .v-table-header-wrap { - background:#fff url(img/bg-table.png) repeat-x 0 100%; +.footer .v-label { + text-align: center; } - - -/** - * Search box - Textfield - */ + +/* ---------------------- + Search box - Textfield + ---------------------- */ div.searchbox { border-right: 1px solid #c5c5c5; margin-left: -1px; @@ -672,15 +582,16 @@ div.searchbox { background:url(img/bg-input-c-1.gif) repeat-x; } -/** - * Search box - Sort menu - */ +/* ---------------------- + Search box - Sort menu + ---------------------- */ .searchbox-sortmenu { background:url(img/bullet-2.gif) no-repeat 100% 50%; border: none; color:#3c3c3c; } +.v-menubar-searchbox-sortmenu .v-menubar-menuitem, .v-menubar-searchbox-sortmenu .v-menubar-menuitem:hover, .v-menubar-searchbox-sortmenu .v-menubar-menuitem-selected { color:#3c3c3c; @@ -692,17 +603,17 @@ div.searchbox { background-color: #fff; color:#3c3c3c; text-shadow: none; - } +} - .v-menubar-popup .v-menubar-submenu-searchbox-sortmenu .v-menubar-menuitem-selected { +.v-menubar-popup .v-menubar-submenu-searchbox-sortmenu .v-menubar-menuitem-selected { background: #eaeaea; color: #464646; text-shadow: none; - } +} -/* - * Event box - */ +/* --------- + Event box + --------- */ .v-panel-task-event-panel .v-panel-content > div { background:#f2f2f2 url(img/bg-sidebar.gif) repeat-y; @@ -737,101 +648,26 @@ div.searchbox { color:#8c8c8c; } - -/* - * Buttons - Normal button - */ - -.v-button:focus { - background-position: 0 0; - background-image: url(img/button-bg-left-active.gif); -} - -.v-button:focus .v-button-wrap { - background-position: right 0; - background-image: url(img/button-bg-right-active.gif); -} - -.v-button:active, -.v-button.v-pressed { - background-position: 0 0; - background-image: url(img/button-bg-left-down.gif); -} - -.v-button:active .v-button-wrap, -.v-button.v-pressed .v-button-wrap { - background-position: right 0; - background-image: url(img/button-bg-right-down.gif); -} - -.v-button, -.v-disabled.v-button { - height: 24px; - padding: 0 0 0 5px; - background: transparent url(img/button-bg-left.gif) repeat-x 0 0; - cursor: pointer; -} - -.v-button-wrap, -.v-disabled.v-button .v-button-wrap { - height: 24px; - padding: 4px 10px 0 4px; - background: transparent url(img/button-bg-right.gif) repeat-x right 0; - cursor: pointer; -} - -.v-button-caption { - color: #464646; -} - -.v-button.v-disabled .v-button-wrap .v-button-caption { - color: #646464; - cursor: default; -} -/* - * Buttons - Small button - */ -.v-button-small, -.v-disabled.v-button-small, -.v-button-small:active, -.v-pressed.v-button-small, -.v-button-small:focus { - height: 17px; - padding: 0 0 0 6px; - background: transparent url(img/button-bg-small-left.gif) repeat-x 0 0; - font:bold 10px/12px Arial, Helvetica, sans-serif; - cursor: pointer; -} - -.v-button-small .v-button-wrap, -.v-button-small.v-disabled .v-button-wrap, -.v-button-small:active .v-button-wrap, -.v-button-small.v-pressed .v-button-wrap { - height: 17px; - padding: 1px 12px 0 6px; - background: transparent url(img/button-bg-small-right.gif) repeat-x right 0; - font:bold 10px/12px Arial, Helvetica, sans-serif; - cursor: pointer; -} - -.v-button-small:focus .v-button-wrap { - background: transparent url(img/button-bg-small-right-focus.gif) repeat-x right 0; -} - -.v-button-small:focus { - background: transparent url(img/button-bg-small-left-focus.gif) repeat-x 0 0; -} - -.v-button-small .v-button-wrap .v-button-caption { - font:bold 10px/12px Arial, Helvetica, sans-serif; +/* --------------------- + Detail - Detail panel + --------------------- */ +.v-csslayout-detail-panel >.v-csslayout-margin { + background:#f2f2f2 url(img/bg-c.gif) repeat-x; + padding-top: 1px; + padding-left: 1px; + border: 1px solid #cecece; + -moz-border-radius: 6px; + -webkit-border-radius: 6px; + -khtml-border-radius: 6px; + border-radius: 6px; } -/* - * Detail - Title block - */ +/* -------------------- + Detail - Title block + -------------------- */ .title-block .v-gridlayout-spacing-on { padding-top: 5px; - } +} .title-block .v-gridlayout-margin-bottom { padding-bottom: 5px; @@ -841,14 +677,6 @@ div.searchbox { padding-bottom: 5px; } -.profile-layout .v-gridlayout-margin-bottom { - padding-bottom: 5px; -} - -.profile-layout .v-gridlayout-margin-top { - padding-top: 5px; -} - .title-block .h2 { color:#007dc3; font:24px/26px Arial, Helvetica, sans-serif; @@ -883,6 +711,9 @@ div.searchbox { background: transparent url(img/version-16.png) no-repeat 0 0; } +/* -------------------- + Detail - Block + -------------------- */ .block-holder { overflow:hidden; margin:0 0 8px; @@ -905,36 +736,77 @@ div.searchbox { overflow:hidden; } +/* ------------- + Task - Detail + ------------- */ .involve-people .v-gridlayout .v-gridlayout-margin-top { padding-top: 5px; } -/** - * Buttons - Add button - */ - .v-button-add, -.v-disabled.v-button-add, -.v-button-add:active, -.v-pressed.v-button-add, -.v-button-add:focus -{ - height: 25px; - width: 26px; - background: transparent background:url(img/ico-8.gif) no-repeat 0 0; - cursor: pointer; +.subtasks .v-gridlayout-spacing-on { + padding-top: 3px; + padding-left: 5px; } -.v-button-add .v-button-wrap, -.v-button-add.v-disabled .v-button-wrap, -.v-button-add:active .v-button-wrap, -.v-button-add.v-pressed .v-button-wrap, -.v-button-add:focus .v-button-wrap { - background: none; +/* ------------ + Profile page + ------------ */ + +.profile-picture { + margin-top: 6px; + padding: 1px; + border: 1px solid #021a40; } - -/** - * Related content - list - */ + +.profile-layout .v-gridlayout-margin-bottom { + padding-bottom: 20px; +} + +.profile-layout .v-gridlayout-margin-top { + padding-top: 5px; +} + +/* ------------ + Profile link + ------------ */ +.profile-link .v-button-link .v-button-caption { + color:#3c3c3c; + font-weight: bold; +} + +/* ------------- + Database page + ------------- */ + +.database-table .v-table-cell-content { + height: 50px; +} + +/* ---------- + Deployment + ---------- */ + +.upload-description { + margin: 1.5em; + padding-right: 3em; +} + +.upload-button { + margin-top: 1.5em; +} + +/* ---- + Jobs + ---- */ + +.job-exception-message { + color: #AA0000; + font-weight: bold; +} + +/* ---------------------- + Related content - list + ---------------------- */ .v-table-related-content-list, .v-table-related-content-list .v-table-body { background: none; @@ -962,34 +834,57 @@ div.searchbox { color: #464646; text-decoration: underline; } - -/** - * Form - */ -.formprops .h4 { - color:#3c3c3c; - font:bold 12px Arial, Helvetica, sans-serif; + +/* ------------------------ + Related content - Create + ------------------------ */ + +.v-table-related-content-create-list { + margin-right: 0px; } -/** - * Detail panel - */ -.v-csslayout-detail-panel >.v-csslayout-margin { - background:#f2f2f2 url(img/bg-c.gif) repeat-x; - padding-top: 1px; - padding-left: 1px; - border: 1px solid #cecece; - -moz-border-radius: 6px; - -webkit-border-radius: 6px; - -khtml-border-radius: 6px; - border-radius: 6px; +.v-table-related-content-create-list .v-table-body { + border: none; +} + +.v-table-related-content-create-list .v-table-body .v-table-table { + border-right: none; +} + +.related-content-create-detail { + border: 1px solid #e8e8e3; + background-color: #e8e8e3; +} + +.v-table-related-content-create-list .v-table-row, +.v-table-related-content-create-list .v-table-row-odd { + background: none; } +.v-table-related-content-create-list .v-table-row .v-table-cell-content, +.v-table-related-content-create-list .v-table-row-odd .v-table-cell-content { + background: none; + border: none; +} + +.v-table-related-content-create-list .v-table-row.v-selected .v-table-cell-content, +.v-table-related-content-create-list .v-table-row-odd.v-selected .v-table-cell-content { + border-top: 1px solid #c5c5c5; + border-bottom: 1px solid #c5c5c5; +} + +.v-table-related-content-create-list .v-selected .v-table-cell-content-related-last-column { + background: #DFF5FF no-repeat url(img/arrow.png) right center; +} + +.v-table-related-content-create-list .v-table-row.v-selected, +.v-table-related-content-create-list .v-table-row-odd.v-selected { + background: #DFF5FF; +} - /* - ************* - NEW CSS BELOW THIS LINE - */ +/********************** +* Custom Scrollbar CSS +**********************/ .vscroll-bar {width:7px !important;} .vscroll-up, @@ -1025,23 +920,4 @@ div.searchbox { .scroll-block { height:588px; overflow:hidden; -} -.past { - float:right; - background:url(img/ico-8.gif) no-repeat 0 -53px; - text-indent:-9999px; - width:26px; - height:25px; - overflow:hidden; -} -/* send */ -.send { - float:right; - background:url(img/ico-8.gif) no-repeat 0 -79px; - text-indent:-9999px; - width:26px; - height:25px; - overflow:hidden; - margin:0 0 0 10px; - display:inline; } \ No newline at end of file