From 6482e2652609e6774ee0066f35e43ded94350d45 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 15 Jul 2013 16:10:22 -0700 Subject: [PATCH] Copy session url to clipboard instead of just id --- .../collaboration/lib/collaboration.coffee | 10 ++++++---- .../collaboration/lib/join-prompt-view.coffee | 7 ++++--- .../collaboration/lib/session-utils.coffee | 19 +++++++++++++++++++ 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/src/packages/collaboration/lib/collaboration.coffee b/src/packages/collaboration/lib/collaboration.coffee index d02addd5f..dd1a5f7e6 100644 --- a/src/packages/collaboration/lib/collaboration.coffee +++ b/src/packages/collaboration/lib/collaboration.coffee @@ -2,6 +2,7 @@ GuestView = require './guest-view' HostView = require './host-view' HostSession = require './host-session' JoinPromptView = require './join-prompt-view' +{getSessionUrl} = require './session-utils' module.exports = activate: -> @@ -12,14 +13,15 @@ module.exports = else hostSession = new HostSession() - rootView.command 'collaboration:copy-session-id', -> + copySession = -> sessionId = hostSession.getId() - pasteboard.write(sessionId) if sessionId + pasteboard.write(getSessionUrl(sessionId)) if sessionId + + rootView.command 'collaboration:copy-session-id', copySession rootView.command 'collaboration:start-session', -> hostView ?= new HostView(hostSession) - if sessionId = hostSession.start() - pasteboard.write(sessionId) + copySession() if hostSession.start() rootView.command 'collaboration:join-session', -> new JoinPromptView (id) -> diff --git a/src/packages/collaboration/lib/join-prompt-view.coffee b/src/packages/collaboration/lib/join-prompt-view.coffee index f7a3505f1..0621bfe37 100644 --- a/src/packages/collaboration/lib/join-prompt-view.coffee +++ b/src/packages/collaboration/lib/join-prompt-view.coffee @@ -3,7 +3,8 @@ Editor = require 'editor' $ = require 'jquery' Point = require 'point' _ = require 'underscore' -Guid = require 'guid' + +{getSessionId} = require './session-utils' module.exports = class JoinPromptView extends View @@ -20,8 +21,8 @@ class JoinPromptView extends View @on 'core:cancel', => @remove() clipboard = pasteboard.read()[0] - if Guid.isGuid(clipboard) - @miniEditor.setText(clipboard) + if sessionId = getSessionId(clipboard) + @miniEditor.setText(sessionId) @attach() diff --git a/src/packages/collaboration/lib/session-utils.coffee b/src/packages/collaboration/lib/session-utils.coffee index f93f188ee..af5d45e2f 100644 --- a/src/packages/collaboration/lib/session-utils.coffee +++ b/src/packages/collaboration/lib/session-utils.coffee @@ -1,7 +1,26 @@ Peer = require '../vendor/peer.js' Guid = require 'guid' +url = require 'url' + module.exports = + getSessionId: (text) -> + return null unless text + + text = text.trim() + sessionUrl = url.parse(text) + if sessionUrl.host is 'session' + sessionId = sessionUrl.path.split('/')[1] + else + sessionId = text + + if Guid.isGuid(sessionId) + sessionId + else + null + + getSessionUrl: (sessionId) -> "atom://session/#{sessionId}" + createPeer: -> id = Guid.create().toString() new Peer(id, key: '0njqmaln320dlsor')