ProjectEditor

Provides a UI to edit the project settings in a dialog window. The widget is used internally by the project edit feature and you don't normally need to deal with this class directly.

This demo shows how to use the ProjectEditor as a standalone widget:

Project editor
//<code-header>
fiddle.title = 'Project editor';
//</code-header>
const project = new ProjectModel({
    name      : 'Documenting',
    startDate : new Date(2020, 0, 1),
    calendar  : 'default',

    calendars : [{
        id        : 'default',
        name      : 'Default calendar',
        intervals : [{
            id                 : 1,
            recurrentStartDate : 'on Sat',
            recurrentEndDate   : 'on Mon',
            isWorking          : false
        }]
    }],

    events : [
        {
            id       : 1,
            name     : 'Write docs',
            expanded : true,
            children : [
                { id : 2, name : 'Proof-read docs', startDate : '2020-01-02', endDate : '2020-01-05', effort : 0 },
                { id : 3, name : 'Release docs', startDate : '2020-01-09', endDate : '2020-01-10', effort : 0 }
            ]
        }
    ],

    dependencies : [
        { fromEvent : 2, toEvent : 3 }
    ]
});

const projectEditor = new ProjectEditor({
    listeners : {
        save : () => projectEditor.hide()
    }
});

const button = new Button({
    appendTo : targetElement,
    text     : 'Show Project Editor',
    onClick  : () => {
        projectEditor.project = project;

        projectEditor.showBy({
            target : button.element,
            align  : 'l-r',
            offset : 5
        });
    }
});

Project editor customization

To append Widgets to any of the built-in tabs, use the items config. The Project editor contains tabs by default. Each tab contains built-in widgets: text fields, date fields, etc.

Tab ref Text Weight Description
generalTab ProjectEditorGeneralTab 100 Basic configuration: name, start/end dates, schedule from
descriptionTab ProjectEditorDescriptionTab 200 A text area to add a description to the selected project
advancedTab ProjectEditorAdvancedTab 300 Advanced options: hours per day, days per week and days per month

Configs

125

Common

listenersEvents

Other

The project model that will be edited with the project editor.

calculateMaskTaskEditorBase
calculateMaskDelayTaskEditorBase
columnWidget
defaultFocusContainer
dependencyIdFieldTaskEditorBase
drawerPanel
labelPositionContainer
modalPopup
renditionContainer
resizableResizable
rtlRTL
spanWidget

Accessibility

ariaLabelWidget
keyMapKeyMap

Content

bbarPanel
defaultsContainer
footerPanel
headerPanel
itemsContainer
lazyItemsContainer
namedItemsContainer
stripsPanel
tbarPanel
textContentContainer
toolsPanel

CSS

bodyClsPanel
borderContainer
clsWidget
colorWidget
htmlClsWidget
itemClsContainer
styleWidget
uiPanel

DOM

adoptWidget
appendToWidget
contentWidget
datasetWidget
htmlWidget
idWidget
tagWidget

Float & align

alignWidget
anchorWidget
centeredWidget
floatingWidget
xWidget
yWidget

Layout

alignSelfWidget
dockWidget
flexWidget
heightWidget
hiddenWidget
hideWhenEmptyContainer
layoutContainer
layoutStyleContainer
marginWidget
maxHeightWidget
maxWidthWidget
minHeightWidget
minWidthWidget
textAlignWidget
weightWidget
widthWidget

misc

tabBarItemsContainer

Misc

dataFieldWidget
disabledWidget
iconPanel
localeClassLocalizable
localizableLocalizable
maskedWidget
ownerWidget
readOnlyWidget
refWidget
rippleWidget
tabWidget
titlePanel
tooltipWidget

Record

recordContainer

Scrolling

State

stateIdState

Properties

99

Class hierarchy

isProjectEditor: Boolean= truereadonly
Identifies an object as an instance of ProjectEditor class, or subclass thereof.
isProjectEditor: Boolean= truereadonlystatic
Identifies an object as an instance of ProjectEditor class, or subclass thereof.
isContainerContainer
isDelayableDelayable
isEventsEvents
isKeyMapKeyMap
isLocalizableLocalizable
isPanelPanel
isPopupPopup
isResizableResizable
isStateState
isTaskEditorBaseTaskEditorBase
isToolableToolable
isWidgetWidget

Accessibility

keyMapKeyMap

Content

bbarPanel
tbarPanel

CSS

clsWidget

DOM

appendToWidget
contentWidget
datasetWidget
elementWidget
htmlWidget
idWidget
styleWidget

Float & align

xWidget
yWidget

Layout

alignSelfWidget
flexWidget
heightWidget
layoutContainer
layoutStyleContainer
marginWidget
maxHeightWidget
maxWidthWidget
minHeightWidget
minWidthWidget
widthWidget

Lifecycle

configBase

Misc

cellInfoWidget
disabledWidget
localeHelperLocalizable
localeManagerLocalizable
readOnlyWidget
refWidget
tabWidget
titlePanel
tooltipWidget

Other

$namestaticWidget
columnWidget
firstItemContainer
hasChangesContainer
isValidContainer
itemsContainer
labelPositionContainer
lastItemContainer
renditionContainer
resizableResizable
rtlRTL
spanWidget
toolsPanel
typestaticWidget
valuesContainer

Record

recordContainer

State

stateState

Visibility

hiddenWidget
isVisibleWidget

Widget hierarchy

ownerWidget
parentWidget
widgetMapContainer

Functions

77

Other

Loads a project model into the editor

ParameterTypeDescription
recordProjectModel
addContainer
closePopup
composeWidget
createOnFrameDelayable
disableWidget
enableWidget
focusWidget
getAtContainer
getWidgetByIdContainer
insertContainer
LstaticLocalizable
loadEventTaskEditorBase
maskWidget
onEvents
recomposeWidget
relayAllEvents
removeContainer
removeAllContainer
resetValuesContainer
setValuesContainer
triggerEvents
unEvents
unmaskWidget

Configuration

applyDefaultsstaticBase

Events

Float & align

alignToWidget
setXYWidget
showByWidget
toFrontWidget

Lifecycle

createstaticWidget
destroystaticBase
initClassstaticWidget

Misc

attachTooltipstaticWidget
fromElementstaticWidget
fromSelectorstaticWidget
getByIdstaticWidget
isOfTypeNamestaticBase
mixinstaticBase
optionalLstaticLocalizable

State

Visibility

hideWidget
showWidget

Widget hierarchy

closestWidget
containsWidget
ownsWidget
queryWidget
queryAllWidget
upWidget

Events

22

Event handlers

22

Typedefs

7

CSS variables

64