This repository has been archived by the owner on Jul 31, 2019. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[bug979642] - Moved inline together toggle script into separate file
[bug979642] - Removed 'async',removed function closure and change file name to together-toggle-script [bug979642] - Small path fix [bug979642] - Removed useless comment [bug979642] - Fixed alignment
- Loading branch information
Showing
3 changed files
with
62 additions
and
58 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
var TogetherJSConfig = { | ||
disableWebRTC: true | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
(function() { | ||
var stopTogether = document.getElementById("together-toggle").getAttribute("data-stop-together"); | ||
var startTogether = document.getElementById("together-toggle").getAttribute("data-start-together"); | ||
|
||
var btn = document.querySelector(".together-toggle"), | ||
started = false, | ||
setStartState = function(state) { | ||
return function () { | ||
started = state; | ||
btn.innerHTML = (started ? stopTogether : startTogether); | ||
}; | ||
}; | ||
|
||
// Start and stop notification, so that the preview | ||
// iframe doesn't spam us with events when togetherjs | ||
// is not actually running. | ||
TogetherJS.on("ready", setStartState(true)); | ||
TogetherJS.on("close", setStartState(false)); | ||
|
||
// proxy the mousemoved event from the preview iframe | ||
window.addEventListener("message", function(evt) { | ||
if(evt.source === window) return; | ||
|
||
try { | ||
var obj = JSON.parse(evt.data), | ||
elementFinder = TogetherJS.require("elementFinder"), | ||
element = document.querySelector(".preview-holder iframe"), | ||
location = elementFinder.elementLocation(element); | ||
|
||
if(["cursor-update", "cursor-click"].indexOf(obj.type) !== -1) { | ||
TogetherJS.require(["session"], function (session) { | ||
if(!started) return; | ||
session.send({ | ||
type: obj.type, | ||
element: location, | ||
offsetX: obj.offsetX, | ||
offsetY: obj.offsetY | ||
}); | ||
}); | ||
} | ||
|
||
} catch (e) { } | ||
}); | ||
|
||
btn.addEventListener("click", function toggleTogether() { | ||
TogetherJS(btn); | ||
return false; | ||
}); | ||
|
||
TogetherJS.reinitialize(); | ||
|
||
}()); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,62 +1,11 @@ | ||
<li class="together-btn"> | ||
<span class="icon icon-comments-alt"></span> | ||
<script> | ||
// disable webrtc functionality for now | ||
var TogetherJSConfig = { | ||
disableWebRTC: true | ||
}; | ||
</script> | ||
<script src="/scripts/disable-webrtc.js"></script> | ||
<script src="{{ together }}/togetherjs-min.js"></script> | ||
<button class="together-toggle">{{ gettext("Start Togetherjs") }}</button> | ||
<script> | ||
(function() { | ||
|
||
var btn = document.querySelector(".together-toggle"), | ||
started = false, | ||
setStartState = function(state) { | ||
return function () { | ||
started = state; | ||
btn.innerHTML = (started ? "{{ gettext('Stop Togetherjs') }}" : "{{ gettext('Start Togetherjs') }}"); | ||
}; | ||
}; | ||
|
||
// Start and stop notification, so that the preview | ||
// iframe doesn't spam us with events when togetherjs | ||
// is not actually running. | ||
TogetherJS.on("ready", setStartState(true)); | ||
TogetherJS.on("close", setStartState(false)); | ||
|
||
// proxy the mousemoved event from the preview iframe | ||
window.addEventListener("message", function(evt) { | ||
if(evt.source === window) return; | ||
|
||
try { | ||
var obj = JSON.parse(evt.data), | ||
elementFinder = TogetherJS.require("elementFinder"), | ||
element = document.querySelector(".preview-holder iframe"), | ||
location = elementFinder.elementLocation(element); | ||
|
||
if(["cursor-update", "cursor-click"].indexOf(obj.type) !== -1) { | ||
TogetherJS.require(["session"], function (session) { | ||
if(!started) return; | ||
session.send({ | ||
type: obj.type, | ||
element: location, | ||
offsetX: obj.offsetX, | ||
offsetY: obj.offsetY | ||
}); | ||
}); | ||
} | ||
|
||
} catch (e) { } | ||
}); | ||
|
||
btn.addEventListener("click", function toggleTogether() { | ||
TogetherJS(btn); | ||
return false; | ||
}); | ||
|
||
TogetherJS.reinitialize(); | ||
|
||
}());</script> | ||
<button class="together-toggle">{{ gettext("Start Togetherjs") }}</button> | ||
<script id="together-toggle" src="/scripts/together-toggle-script.js" | ||
data-stop-together="{{ gettext('Stop Togetherjs') }}" | ||
data-start-together="{{ gettext('Start Togetherjs') }}" | ||
async> | ||
</script> | ||
</li> |