diff --git a/packages/rocketchat-channel-settings/client/views/channelSettings.coffee b/packages/rocketchat-channel-settings/client/views/channelSettings.coffee
index 30b0a7a3d4e5a76410613a77e80548a32ec3412f..d481640a701410f7aaaf2cb75e5e4ef92a593fb4 100644
--- a/packages/rocketchat-channel-settings/client/views/channelSettings.coffee
+++ b/packages/rocketchat-channel-settings/client/views/channelSettings.coffee
@@ -4,9 +4,9 @@ Template.channelSettings.helpers
 	editing: (field) ->
 		return Template.instance().editing.get() is field
 	notDirect: ->
-		return ChatRoom.findOne(@rid)?.t isnt 'd'
+		return ChatRoom.findOne(@rid, { fields: { t: 1 }})?.t isnt 'd'
 	roomType: ->
-		return ChatRoom.findOne(@rid)?.t
+		return ChatRoom.findOne(@rid, { fields: { t: 1 }})?.t
 	channelSettings: ->
 		return RocketChat.ChannelSettings.getOptions()
 	roomTypeDescription: ->
diff --git a/packages/rocketchat-ui-admin/admin/rooms/adminRoomInfo.coffee b/packages/rocketchat-ui-admin/admin/rooms/adminRoomInfo.coffee
new file mode 100644
index 0000000000000000000000000000000000000000..5592231eb5d8f248b54b1b924e6701c6044678f4
--- /dev/null
+++ b/packages/rocketchat-ui-admin/admin/rooms/adminRoomInfo.coffee
@@ -0,0 +1,114 @@
+Template.adminRoomInfo.helpers
+	selectedRoom: ->
+		return Session.get 'adminRoomsSelected'
+	canEdit: ->
+		return RocketChat.authz.hasAllPermission('edit-room', @rid)
+	editing: (field) ->
+		return Template.instance().editing.get() is field
+	notDirect: ->
+		return ChatRoom.findOne(@rid, { fields: { t: 1 }})?.t isnt 'd'
+	roomType: ->
+		return ChatRoom.findOne(@rid, { fields: { t: 1 }})?.t
+	channelSettings: ->
+		return RocketChat.ChannelSettings.getOptions()
+	roomTypeDescription: ->
+		roomType = ChatRoom.findOne(@rid, { fields: { t: 1 }})?.t
+		if roomType is 'c'
+			return t('Channel')
+		else if roomType is 'p'
+			return t('Private_Group')
+	roomName: ->
+		return ChatRoom.findOne(@rid, { fields: { name: 1 }})?.name
+	roomTopic: ->
+		return ChatRoom.findOne(@rid, { fields: { topic: 1 }})?.topic
+	archivationState: ->
+		return ChatRoom.findOne(@rid, { fields: { archived: 1 }})?.archived
+	archivationStateDescription: ->
+		archivationState = ChatRoom.findOne(@rid, { fields: { archived: 1 }})?.archived
+		if archivationState is true
+			return t('Room_archivation_state_true')
+		else
+			return t('Room_archivation_state_false')
+
+Template.adminRoomInfo.events
+	'keydown input[type=text]': (e, t) ->
+		if e.keyCode is 13
+			e.preventDefault()
+			t.saveSetting()
+
+	'click [data-edit]': (e, t) ->
+		e.preventDefault()
+		t.editing.set($(e.currentTarget).data('edit'))
+		setTimeout (-> t.$('input.editing').focus().select()), 100
+
+	'click .cancel': (e, t) ->
+		e.preventDefault()
+		t.editing.set()
+
+	'click .save': (e, t) ->
+		e.preventDefault()
+		t.saveSetting()
+
+Template.adminRoomInfo.onCreated ->
+	@editing = new ReactiveVar
+
+	@validateRoomType = =>
+		type = @$('input[name=roomType]:checked').val()
+		if type not in ['c', 'p']
+			toastr.error t('Invalid_room_type', type)
+		return true
+
+	@validateRoomName = =>
+		rid = Template.currentData()?.rid
+		room = ChatRoom.findOne rid
+
+		if not RocketChat.authz.hasAllPermission('edit-room', @rid) or room.t not in ['c', 'p']
+			toastr.error t('Not_allowed')
+			return false
+
+		name = $('input[name=roomName]').val()
+		if not /^[0-9a-z-_]+$/.test name
+			toastr.error t('Invalid_room_name', name)
+			return false
+
+		return true
+
+	@validateRoomTopic = =>
+		return true
+
+	@saveSetting = =>
+		switch @editing.get()
+			when 'roomName'
+				if @validateRoomName()
+					Meteor.call 'saveRoomSettings', @data?.rid, 'roomName', @$('input[name=roomName]').val(), (err, result) ->
+						if err
+							if err.error in [ 'duplicate-name', 'name-invalid' ]
+								return toastr.error TAPi18n.__(err.reason, err.details.channelName)
+							return toastr.error TAPi18n.__(err.reason)
+						toastr.success TAPi18n.__ 'Room_name_changed_successfully'
+			when 'roomTopic'
+				if @validateRoomTopic()
+					Meteor.call 'saveRoomSettings', @data?.rid, 'roomTopic', @$('input[name=roomTopic]').val(), (err, result) ->
+						if err
+							return toastr.error TAPi18n.__(err.reason)
+						toastr.success TAPi18n.__ 'Room_topic_changed_successfully'
+			when 'roomType'
+				if @validateRoomType()
+					Meteor.call 'saveRoomSettings', @data?.rid, 'roomType', @$('input[name=roomType]:checked').val(), (err, result) ->
+						if err
+							if err.error is 'invalid-room-type'
+								return toastr.error TAPi18n.__(err.reason, err.details.roomType)
+							return toastr.error TAPi18n.__(err.reason)
+						toastr.success TAPi18n.__ 'Room_type_changed_successfully'
+			when 'archivationState'
+				if @$('input[name=archivationState]:checked').val() is 'true'
+					if ChatRoom.findOne(@data.rid)?.archived isnt true
+						Meteor.call 'archiveRoom', @data?.rid, (err, results) ->
+							return toastr.error err.reason if err
+							toastr.success TAPi18n.__ 'Room_archived'
+				else
+					if ChatRoom.findOne(@data.rid)?.archived is true
+						Meteor.call 'unarchiveRoom', @data?.rid, (err, results) ->
+							return toastr.error err.reason if err
+							toastr.success TAPi18n.__ 'Room_unarchived'
+		@editing.set()
diff --git a/packages/rocketchat-ui-admin/admin/rooms/adminRoomInfo.html b/packages/rocketchat-ui-admin/admin/rooms/adminRoomInfo.html
new file mode 100644
index 0000000000000000000000000000000000000000..7da6881963dcdb23559432488d7eb877eaff59eb
--- /dev/null
+++ b/packages/rocketchat-ui-admin/admin/rooms/adminRoomInfo.html
@@ -0,0 +1,70 @@
+<template name="adminRoomInfo">
+	{{#with selectedRoom}}
+		<div class="content">
+			<div class="list-view channel-settings">
+				<div class="status">
+					<h2>{{_ "Room_Info"}}</h2>
+				</div>
+				<form>
+					<ul class="list clearfix">
+						{{#if notDirect}}
+							<li>
+								<label>{{_ "Name"}}</label>
+								<div>
+									{{#if editing 'roomName'}}
+										<input type="text" name="roomName" value="{{roomName}}" class="editing" /> <button type="button" class="button secondary cancel">{{_ "Cancel"}}</button> <button type="button" class="button primary save">{{_ "Save"}}</button>
+									{{else}}
+										<span>{{roomName}}{{#if canEdit}} <i class="octicon octicon-pencil" data-edit="roomName"></i>{{/if}}</span>
+									{{/if}}
+								</div>
+							</li>
+						{{/if}}
+						<li>
+							<label>{{_ "Topic"}}</label>
+							<div>
+								{{#if editing 'roomTopic'}}
+									<input type="text" name="roomTopic" value="{{roomTopic}}" class="editing" /> <button type="button" class="button secondary cancel">{{_ "Cancel"}}</button> <button type="button" class="button primary save">{{_ "Save"}}</button>
+								{{else}}
+									<span>{{roomTopic}}{{#if canEdit}} <i class="octicon octicon-pencil" data-edit="roomTopic"></i>{{/if}}</span>
+								{{/if}}
+							</div>
+						</li>
+						{{#if notDirect}}
+							<li>
+								<label>{{_ "Type"}}</label>
+								<div>
+									{{#if editing 'roomType'}}
+										<label><input type="radio" name="roomType" class="editing" value="c" checked="{{$eq roomType 'c'}}" /> {{_ "Channel"}}</label>
+										<label><input type="radio" name="roomType" value="p" checked="{{$eq roomType 'p'}}" /> {{_ "Private_Group"}}</label>
+										<button type="button" class="button secondary cancel">{{_ "Cancel"}}</button>
+										<button type="button" class="button primary save">{{_ "Save"}}</button>
+									{{else}}
+										<span>{{roomTypeDescription}}{{#if canEdit}} <i class="octicon octicon-pencil" data-edit="roomType"></i>{{/if}}</span>
+									{{/if}}
+								</div>
+							</li>
+						{{/if}}
+						{{#if notDirect}}
+							<li>
+								<label>{{_ "Room_archivation_state"}}</label>
+								<div>
+									{{#if editing 'archivationState'}}
+										<label><input type="radio" name="archivationState" class="editing" value="true" checked="{{$eq archivationState true}}" /> {{_ "Room_archivation_state_true"}}</label>
+										<label><input type="radio" name="archivationState" value="false" checked="{{$neq archivationState true}}" /> {{_ "Room_archivation_state_false"}}</label>
+										<button type="button" class="button secondary cancel">{{_ "Cancel"}}</button>
+										<button type="button" class="button primary save">{{_ "Save"}}</button>
+									{{else}}
+										<span>{{archivationStateDescription}}{{#if canEdit}} <i class="octicon octicon-pencil" data-edit="archivationState"></i>{{/if}}</span>
+									{{/if}}
+								</div>
+							</li>
+						{{/if}}
+						{{#each channelSettings}}
+							{{> Template.dynamic template=template data=data}}
+						{{/each}}
+					</ul>
+				</form>
+			</div>
+		</div>
+	{{/with}}
+</template>
diff --git a/packages/rocketchat-ui-admin/admin/rooms/adminRooms.coffee b/packages/rocketchat-ui-admin/admin/rooms/adminRooms.coffee
index de2f055a6e6e39e83a5cb7de45c64c6a85dc7450..4a83338a9580dff593f771e5f49215254a315ec1 100644
--- a/packages/rocketchat-ui-admin/admin/rooms/adminRooms.coffee
+++ b/packages/rocketchat-ui-admin/admin/rooms/adminRooms.coffee
@@ -25,8 +25,6 @@ Template.adminRooms.helpers
 			return TAPi18n.__ 'Direct Message'
 		if @t is 'p'
 			return TAPi18n.__ 'Private Group'
-	roomData: ->
-		return ChatRoom.findOne Session.get 'adminRoomsSelected'
 
 	flexTemplate: ->
 		return RocketChat.TabBar.getTemplate()
@@ -51,7 +49,7 @@ Template.adminRooms.onCreated ->
 		id: 'admin-room',
 		i18nTitle: 'Room_Info',
 		icon: 'octicon octicon-info',
-		template: 'channelSettings',
+		template: 'adminRoomInfo',
 		order: 1
 	});
 
@@ -113,8 +111,7 @@ Template.adminRooms.events
 
 		Session.set('adminRoomsSelected', { rid: @_id });
 
-		RocketChat.TabBar.setData { rid: @_id }
-		RocketChat.TabBar.setTemplate('channelSettings')
+		RocketChat.TabBar.setTemplate('adminRoomInfo')
 
 	'click .load-more': (e, t) ->
 		e.preventDefault()
diff --git a/packages/rocketchat-ui-admin/package.js b/packages/rocketchat-ui-admin/package.js
index 8537966fb199e9cc5b8d81abc983a62aff9bc137..cee0e308e03e49839787734ec6eff4c4518ce4f0 100644
--- a/packages/rocketchat-ui-admin/package.js
+++ b/packages/rocketchat-ui-admin/package.js
@@ -27,6 +27,8 @@ Package.onUse(function(api) {
 	api.addFiles('admin/adminInfo.html', 'client');
 
 	api.addFiles('admin/rooms/adminRooms.html', 'client');
+	api.addFiles('admin/rooms/adminRoomInfo.html', 'client');
+	api.addFiles('admin/rooms/adminRoomInfo.coffee', 'client');
 	api.addFiles('admin/rooms/channelSettingsDefault.html', 'client');
 	api.addFiles('admin/rooms/channelSettingsDefault.js', 'client');