[lib.channel-controller] no more 'rooms' field [lib.room-controller] added all fields removed from [lib.channel-controller]

This commit is contained in:
xdrm-brackets 2018-03-27 18:33:39 +02:00
parent 6a76d9cd6f
commit ff4f26f903
4 changed files with 26 additions and 21 deletions

View File

@ -71,9 +71,8 @@ export default class ChannelController{
this.list.splice(1); this.list.splice(1);
/* (4) Apply new channels */ /* (4) Apply new channels */
this.buffer = {};
for(let c of channels) for(let c of channels)
( this.list.push(c) === 2 ) && ( this.buffer = c ); this.list.push(c);
/* (5) Restore LAST */ /* (5) Restore LAST */
this.list.push(last_item); this.list.push(last_item);

View File

@ -10,7 +10,6 @@ export default class ContentController{
* *
---------------------------------------------------------*/ ---------------------------------------------------------*/
get cid(){ return gs.get.channel.current; } get cid(){ return gs.get.channel.current; }
get cbuf(){ return gs.get.channel.buffer; }
/* (3) Room ID binding /* (3) Room ID binding

View File

@ -84,33 +84,30 @@ export default class RoomController{
continue; continue;
// {2} Ignore: if missing field // // {2} Ignore: if missing field //
if( isNaN(r.rid) || typeof r.type !== 'string' ) if( isNaN(r.rid) || typeof r.type !== 'string' || typeof r.name !== 'string' )
continue; continue;
// {3} Ignore if cannot find name in buffer // // {3} Default: missing messages //
var name = null;
gs.get.content.cbuf.room.map( (v) => { ( v.rid === r.rid ) && ( name = v.name ); });
if( name === null )
continue;
// {4} Default: missing messages //
if( !( r.messages instanceof Array) ) if( !( r.messages instanceof Array) )
r.messages = []; r.messages = [];
// {5} Default: missing members // // {4} Default: missing members //
if( !( r.members instanceof Array) ) if( !( r.members instanceof Array) )
r.members = []; r.members = [];
// {5} Ignore: not available type //
// {6} Ignore: not available type //
if( this[r.type] == null ) if( this[r.type] == null )
continue; continue;
// {7} store data // {6} store data
this[r.type].list.push({ id: r.rid, name: name, type: r.type, messages: r.messages }); this[r.type].list.push({
id: r.rid,
name: r.name,
type: r.type,
messages: r.messages
});
// {8} redirect if first element // {7} redirect if first element
if( !redirected && r.type == 'text' ){ if( !redirected && r.type == 'text' ){
redirected = true; redirected = true;
this.nav('text', r.rid); this.nav('text', r.rid);
@ -186,7 +183,6 @@ export default class RoomController{
return; return;
/* (2) Dump data */ /* (2) Dump data */
console.log(rs.channel.room);
this.dump(rs.channel.room); this.dump(rs.channel.room);
}.bind(this), auth.token); }.bind(this), auth.token);
@ -213,10 +209,19 @@ export default class RoomController{
return false; return false;
/* (3) Try to create room in API */ /* (3) Try to create room in API */
console.log(`POST /channel/${gs.get.content.cid}/room/${type}`); api.call(`POST /channel/room/${gs.get.content.cid}`, { type: type, name: name }, function(rs){
/* (4) Add room -> update VueJS */ /* (1) Manage error */
if( rs.error !== 0 || rs.rid == null )
return false;
/* (2) Reload room list */
this.fetch();
/* (3) Hide popup */
gs.get.popup.hide();
}.bind(this), auth.token);
return true; return true;

View File

@ -14,6 +14,7 @@
{ {
"rid": 0, "rid": 0,
"type": "text",
"members": [1,3,5], "members": [1,3,5],
@ -32,6 +33,7 @@
{ {
"rid": 1, "rid": 1,
"type": "text",
"members": [1,4], "members": [1,4],