Sha256: a0d93414aa140eb5c6edf006d390c4465b13ef255f9c79b9bb48b5b8e0180f7f

Contents?: true

Size: 1.38 KB

Versions: 3

Compression:

Stored size: 1.38 KB

Contents

class Lanes.Screens.UserPreferences extends Lanes.React.Screen

    dataObjects:
        user: -> Lanes.current_user

    getInitialState: ->
        isEditing: true
        commands: new Lanes.Screens.Commands(this, modelName: 'user')

    setScreens: (screens) ->
        @user.options = _.extend({}, @user.options, {initial_screens: _.map(screens, 'id')})

    getScreens: ->
        _.map(@user.options?.initial_screens || [], (id) ->
            screen = Lanes.Screens.Definitions.all.get(id)
            {id, label: screen.label}
        )


    render: ->
        <LC.ScreenWrapper identifier="user-preferences">
            <Lanes.Screens.CommonComponents commands={@state.commands} />
            <BS.Row>
                <LC.SelectField xs=12
                    multiSelect
                    fetchWhenOpen={false}
                    label='Initial Screens'
                    labelField='label'
                    name='options'
                    model={@user}
                    choices={Lanes.Screens.Definitions.all.models}
                    queryModel={Lanes.Screens.Definitions.all}
                    setSelection={@setScreens}
                    getSelection={@getScreens}
                />
            </BS.Row>
            {for id, Ext of Lanes.Extensions.instances when Ext.getPreferenceElement
                Ext.getPreferenceElement(key: id)}
        </LC.ScreenWrapper>

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
lanes-0.5.6 client/lanes/screens/UserPreferences.cjsx
lanes-0.5.5 client/lanes/screens/UserPreferences.cjsx
lanes-0.5.0 client/lanes/screens/UserPreferences.cjsx