Move CreateRoom to react-sdk
							parent
							
								
									07001ae35e
								
							
						
					
					
						commit
						450b2d4d67
					
				| 
						 | 
				
			
			@ -29,6 +29,9 @@ skin['elements.ImageView'] = require('../../components/views/elements/ImageView'
 | 
			
		|||
skin['messages.MessageTimestamp'] = require('../../components/views/messages/MessageTimestamp');
 | 
			
		||||
skin['rooms.RoomTile'] = require('../../components/views/rooms/RoomDNDView');
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
skin['structures.CreateRoom'] = require('matrix-react-sdk/lib/components/structures/CreateRoom');
 | 
			
		||||
 | 
			
		||||
// TODO: Fix this so matrix-react-sdk stuff is in react SDK skindex?
 | 
			
		||||
skin['avatars.RoomAvatar'] = require('matrix-react-sdk/lib/components/views/avatars/RoomAvatar');
 | 
			
		||||
skin['avatars.MemberAvatar'] = require('matrix-react-sdk/lib/components/views/avatars/MemberAvatar');
 | 
			
		||||
| 
						 | 
				
			
			@ -82,7 +85,6 @@ skin['molecules.RoomDropTarget'] = require('./views/molecules/RoomDropTarget');
 | 
			
		|||
skin['molecules.RoomTooltip'] = require('./views/molecules/RoomTooltip');
 | 
			
		||||
skin['molecules.SearchBar'] = require('./views/molecules/SearchBar');
 | 
			
		||||
skin['molecules.SenderProfile'] = require('./views/molecules/SenderProfile');
 | 
			
		||||
skin['organisms.CreateRoom'] = require('./views/organisms/CreateRoom');
 | 
			
		||||
skin['organisms.ErrorDialog'] = require('./views/organisms/ErrorDialog');
 | 
			
		||||
skin['organisms.LeftPanel'] = require('./views/organisms/LeftPanel');
 | 
			
		||||
skin['organisms.LogoutPrompt'] = require('./views/organisms/LogoutPrompt');
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,173 +0,0 @@
 | 
			
		|||
/*
 | 
			
		||||
Copyright 2015 OpenMarket Ltd
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
var React = require('react');
 | 
			
		||||
 | 
			
		||||
var CreateRoomController = require('matrix-react-sdk/lib/controllers/organisms/CreateRoom')
 | 
			
		||||
 | 
			
		||||
var sdk = require('matrix-react-sdk')
 | 
			
		||||
 | 
			
		||||
var PresetValues = {
 | 
			
		||||
    PrivateChat: "private_chat",
 | 
			
		||||
    PublicChat: "public_chat",
 | 
			
		||||
    Custom: "custom",
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
module.exports = React.createClass({
 | 
			
		||||
    displayName: 'CreateRoom',
 | 
			
		||||
    mixins: [CreateRoomController],
 | 
			
		||||
 | 
			
		||||
    getPreset: function() {
 | 
			
		||||
        return this.refs.presets.getPreset();
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    getName: function() {
 | 
			
		||||
        return this.refs.name_textbox.getName();
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    getTopic: function() {
 | 
			
		||||
        return this.refs.topic.getTopic();
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    getAliasLocalpart: function() {
 | 
			
		||||
        return this.refs.alias.getAliasLocalpart();
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    getInvitedUsers: function() {
 | 
			
		||||
        return this.refs.user_selector.getUserIds();
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    onPresetChanged: function(preset) {
 | 
			
		||||
        switch (preset) {
 | 
			
		||||
            case PresetValues.PrivateChat:
 | 
			
		||||
                this.setState({
 | 
			
		||||
                    preset: preset,
 | 
			
		||||
                    is_private: true,
 | 
			
		||||
                    share_history: false,
 | 
			
		||||
                });
 | 
			
		||||
                break;
 | 
			
		||||
            case PresetValues.PublicChat:
 | 
			
		||||
                this.setState({
 | 
			
		||||
                    preset: preset,
 | 
			
		||||
                    is_private: false,
 | 
			
		||||
                    share_history: true,
 | 
			
		||||
                });
 | 
			
		||||
                break;
 | 
			
		||||
            case PresetValues.Custom:
 | 
			
		||||
                this.setState({
 | 
			
		||||
                    preset: preset,
 | 
			
		||||
                });
 | 
			
		||||
                break;
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    onPrivateChanged: function(ev) {
 | 
			
		||||
        this.setState({
 | 
			
		||||
            preset: PresetValues.Custom,
 | 
			
		||||
            is_private: ev.target.checked,
 | 
			
		||||
        });
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    onShareHistoryChanged: function(ev) {
 | 
			
		||||
        this.setState({
 | 
			
		||||
            preset: PresetValues.Custom,
 | 
			
		||||
            share_history: ev.target.checked,
 | 
			
		||||
        });
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    onTopicChange: function(ev) {
 | 
			
		||||
        this.setState({
 | 
			
		||||
            topic: ev.target.value,
 | 
			
		||||
        });
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    onNameChange: function(ev) {
 | 
			
		||||
        this.setState({
 | 
			
		||||
            room_name: ev.target.value,
 | 
			
		||||
        });
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    onInviteChanged: function(invited_users) {
 | 
			
		||||
        this.setState({
 | 
			
		||||
            invited_users: invited_users,
 | 
			
		||||
        });
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    onAliasChanged: function(alias) {
 | 
			
		||||
        this.setState({
 | 
			
		||||
            alias: alias
 | 
			
		||||
        })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    onEncryptChanged: function(ev) {
 | 
			
		||||
        this.setState({
 | 
			
		||||
            encrypt: ev.target.checked,
 | 
			
		||||
        });
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    render: function() {
 | 
			
		||||
        var curr_phase = this.state.phase;
 | 
			
		||||
        if (curr_phase == this.phases.CREATING) {
 | 
			
		||||
            var Loader = sdk.getComponent("elements.Spinner");
 | 
			
		||||
            return (
 | 
			
		||||
                <Loader/>
 | 
			
		||||
            );
 | 
			
		||||
        } else {
 | 
			
		||||
            var error_box = "";
 | 
			
		||||
            if (curr_phase == this.phases.ERROR) {
 | 
			
		||||
                error_box = (
 | 
			
		||||
                    <div className="mx_Error">
 | 
			
		||||
                        An error occured: {this.state.error_string}
 | 
			
		||||
                    </div>
 | 
			
		||||
                );
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            var CreateRoomButton = sdk.getComponent("create_room.CreateRoomButton");
 | 
			
		||||
            var RoomAlias = sdk.getComponent("create_room.RoomAlias");
 | 
			
		||||
            var Presets = sdk.getComponent("create_room.Presets");
 | 
			
		||||
            var UserSelector = sdk.getComponent("elements.UserSelector");
 | 
			
		||||
            var RoomHeader = sdk.getComponent("rooms.RoomHeader");
 | 
			
		||||
 | 
			
		||||
            return (
 | 
			
		||||
                <div className="mx_CreateRoom">
 | 
			
		||||
                    <RoomHeader simpleHeader="Create room" />
 | 
			
		||||
                    <div className="mx_CreateRoom_body">
 | 
			
		||||
                        <input type="text" ref="room_name" value={this.state.room_name} onChange={this.onNameChange} placeholder="Name"/> <br />
 | 
			
		||||
                        <textarea className="mx_CreateRoom_description" ref="topic" value={this.state.topic} onChange={this.onTopicChange} placeholder="Topic"/> <br />
 | 
			
		||||
                        <RoomAlias ref="alias" alias={this.state.alias} onChange={this.onAliasChanged}/> <br />
 | 
			
		||||
                        <UserSelector ref="user_selector" selected_users={this.state.invited_users} onChange={this.onInviteChanged}/> <br />
 | 
			
		||||
                        <Presets ref="presets" onChange={this.onPresetChanged} preset={this.state.preset}/> <br />
 | 
			
		||||
                        <div>
 | 
			
		||||
                            <label><input type="checkbox" ref="is_private" checked={this.state.is_private} onChange={this.onPrivateChanged}/> Make this room private</label>
 | 
			
		||||
                        </div>
 | 
			
		||||
                        <div>
 | 
			
		||||
                            <label><input type="checkbox" ref="share_history" checked={this.state.share_history} onChange={this.onShareHistoryChanged}/> Share message history with new users</label>
 | 
			
		||||
                        </div>
 | 
			
		||||
                        <div className="mx_CreateRoom_encrypt">
 | 
			
		||||
                            <label><input type="checkbox" ref="encrypt" checked={this.state.encrypt} onChange={this.onEncryptChanged}/> Encrypt room</label>
 | 
			
		||||
                        </div>
 | 
			
		||||
                        <div>
 | 
			
		||||
                            <CreateRoomButton onCreateRoom={this.onCreateRoom} /> <br />
 | 
			
		||||
                        </div>
 | 
			
		||||
                        {error_box}
 | 
			
		||||
                    </div>
 | 
			
		||||
                </div>
 | 
			
		||||
            );
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
});
 | 
			
		||||
| 
						 | 
				
			
			@ -129,7 +129,7 @@ module.exports = React.createClass({
 | 
			
		|||
        var RoomView = sdk.getComponent('organisms.RoomView');
 | 
			
		||||
        var RightPanel = sdk.getComponent('organisms.RightPanel');
 | 
			
		||||
        var UserSettings = sdk.getComponent('organisms.UserSettings');
 | 
			
		||||
        var CreateRoom = sdk.getComponent('organisms.CreateRoom');
 | 
			
		||||
        var CreateRoom = sdk.getComponent('structures.CreateRoom');
 | 
			
		||||
        var RoomDirectory = sdk.getComponent('organisms.RoomDirectory');
 | 
			
		||||
        var MatrixToolbar = sdk.getComponent('molecules.MatrixToolbar');
 | 
			
		||||
        var Notifier = sdk.getComponent('organisms.Notifier');
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue