Merge "chat: callOptions -> callOption"
diff --git a/README.md b/README.md
index 891fb3d..68a2e4d 100644
--- a/README.md
+++ b/README.md
@@ -73,6 +73,9 @@
`users/vanadium.bot@gmail.com/apps/chat/public` -- has been created with
permissions that allow anybody to mount and glob inside that directory.
+TODO(nlacasse): Describe permissions set up once permission settings are
+finalized. (See go/vcl/9767)
+
When a client joins the chat room, it generates a random string and attempts to
mount itself in the public [mounttable server][mounttable] under the name
`users/vanadium.bot@gmail.com/apps/chat/public/<random_string>`. If that name
diff --git a/clients/shell/src/chat/main.go b/clients/shell/src/chat/main.go
index 02ccde9..dc74897 100644
--- a/clients/shell/src/chat/main.go
+++ b/clients/shell/src/chat/main.go
@@ -22,10 +22,9 @@
)
var (
- mounttable = flag.String("mounttable", "/ns.dev.v.io:8101", "Mounttable where channel is mounted.")
- proxy = flag.String("proxy", "proxy.dev.v.io:8100", "Proxy to listen on.")
- // TODO(nlacasse): Allow these to be set by a flag.
- channelName = "users/vanadium.bot@gmail.com/apps/chat/public"
+ mounttable = flag.String("mounttable", "/ns.dev.v.io:8101", "Mounttable where channel is mounted.")
+ proxy = flag.String("proxy", "proxy.dev.v.io:8100", "Proxy to listen on.")
+ channelName = flag.String("channel", "users/vanadium.bot@gmail.com/apps/chat/public", "Channel to join.")
)
const welcomeText = `***Welcome to Vanadium Chat***
@@ -108,16 +107,20 @@
g.Close()
}
- cr, err := newChannel(ctx, *mounttable, *proxy, channelName)
+ cr, err := newChannel(ctx, *mounttable, *proxy, *channelName)
if err != nil {
log.Panicln(err)
}
- hw := newHistoryWriter(g.View("history"), cr.UserName())
+ historyView, err := g.View("history")
+ if err != nil {
+ log.Panicln(err)
+ }
+ hw := newHistoryWriter(historyView, cr.UserName())
hw.Write([]byte(color.RedString(welcomeText)))
hw.Write([]byte(fmt.Sprintf("You have joined channel '%s' on mounttable '%s'.\n"+
- "Your username is '%s'.\n\n", channelName, *mounttable, cr.UserName())))
+ "Your username is '%s'.\n\n", *channelName, *mounttable, cr.UserName())))
a := &app{
cr: cr,
@@ -139,7 +142,7 @@
}
func (a *app) quit(g *gocui.Gui, v *gocui.View) error {
- return gocui.ErrorQuit
+ return gocui.Quit
}
func (a *app) handleSendMessage(g *gocui.Gui, v *gocui.View) error {
@@ -224,7 +227,10 @@
// members view. It also caches the members in app.cachedMembers for use in tab
// autocomplete.
func (a *app) updateMembers() {
- membersView := a.g.View("members")
+ membersView, err := a.g.View("members")
+ if err != nil {
+ log.Panicln(err)
+ }
members, err := a.cr.getMembers()
if err != nil {
@@ -280,7 +286,7 @@
a.displayIncomingMessages()
// Start the main UI loop.
- if err := a.g.MainLoop(); err != nil && err != gocui.ErrorQuit {
+ if err := a.g.MainLoop(); err != nil && err != gocui.Quit {
return err
}
diff --git a/clients/web/js/channel.js b/clients/web/js/channel.js
index 9520b56..ac75f9b 100644
--- a/clients/web/js/channel.js
+++ b/clients/web/js/channel.js
@@ -8,6 +8,7 @@
var EventEmitter = require('events').EventEmitter;
var inherits = require('inherits');
var path = require('path');
+var url = require('url');
var access = require('vanadium/src/gen-vdl/v.io/v23/security/access');
var naming = require('vanadium').naming;
@@ -15,8 +16,8 @@
var ServiceVdl = require('./chat/vdl');
var util = require('./util');
-// TODO(nlacasse): Make this configurable.
-var CHANNEL_NAME = 'users/vanadium.bot@gmail.com/apps/chat/public';
+// Default channel name. Override by setting "channel" query param in url.
+var DEFAULT_CHANNNEL = 'users/vanadium.bot@gmail.com/apps/chat/public';
// Member is a member of the channel.
function Member(blessings, path) {
@@ -42,7 +43,8 @@
function Channel(rt) {
EventEmitter.call(this);
- this.channelName_ = CHANNEL_NAME;
+ var u = url.parse(window.location.href, true);
+ this.channelName_ = u.query.channel || DEFAULT_CHANNNEL;
this.accountName_ = rt.accountName;
this.namespace_ = rt.namespace();