Skip to content
This repository has been archived by the owner on Jul 31, 2019. It is now read-only.

Commit

Permalink
[bug979642] - Moved inline together toggle script into separate file
Browse files Browse the repository at this point in the history
[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
admix committed Mar 6, 2014
1 parent 105003f commit 437d275
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 58 deletions.
3 changes: 3 additions & 0 deletions public/scripts/disable-webrtc.js
@@ -0,0 +1,3 @@
var TogetherJSConfig = {
disableWebRTC: true
};
52 changes: 52 additions & 0 deletions public/scripts/together-toggle-script.js
@@ -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();

}());
65 changes: 7 additions & 58 deletions views/together.html
@@ -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>

0 comments on commit 437d275

Please sign in to comment.