Sha256: a8394c4e444083e79af80e7d44162b7cb3fcebd01430776ea17edd295b98b95f

Contents?: true

Size: 931 Bytes

Versions: 5

Compression:

Stored size: 931 Bytes

Contents

class Lanes.Components.Toolbar.SaveButton extends Lanes.React.Component

    propTypes:
        commands: React.PropTypes.object.isRequired

    onSave: ->
        model = @props.commands.getModel()
        if @isSavable(model)
            @props.commands.saveModel()
        else
            model.unmaskInvalidField('all')

    isSavable: (model) ->
        if @props.commands.saveModel
            @props.commands.isEditing() and model.isSavable
        else
            false

    render: ->
        return null unless @props.commands.canEditModel()
        model = @props.commands.getModel()
        text = if model.isNew() then 'Create' else 'Save'
        classNames = _.classnames('save', 'navbar-btn', 'control', {disabled: !@isSavable(model)})
        <BS.Button navItem componentClass="button"
            onClick={@onSave} className={classNames} >
            <LC.Icon type="cloud-upload" />{text}
        </BS.Button>

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
lanes-0.5.6 client/lanes/components/toolbar/SaveButton.cjsx
lanes-0.5.5 client/lanes/components/toolbar/SaveButton.cjsx
lanes-0.5.0 client/lanes/components/toolbar/SaveButton.cjsx
lanes-0.4.0 client/lanes/components/toolbar/SaveButton.cjsx
lanes-0.3.0 client/lanes/components/toolbar/SaveButton.cjsx