not really known
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

88 lines
2.8 KiB

define(["sugar-web/graphics/palette"], function (palette) {
'use strict';
var presencepalette = {};
presencepalette.PresencePalette = function (invoker, primaryText, menuData) {
palette.Palette.call(this, invoker, primaryText);
this.sharedEvent = document.createEvent("CustomEvent");
this.sharedEvent.initCustomEvent('shared', true, true, {});
var div = document.createElement('div');
var txt = document.createElement('span');
txt.innerHTML = "Private";
txt.className = 'network-text';
var hr = document.createElement('hr');
var privatebutton = document.createElement('button');
privatebutton.className = 'toolbutton';
privatebutton.setAttribute('id','private-button');
privatebutton.onclick = function() {
that.setShared(false);
}
var sharedbutton = document.createElement('button');
sharedbutton.className = 'toolbutton';
sharedbutton.setAttribute('id','shared-button');
sharedbutton.onclick = function() {
that.setShared(true);
}
this.setShared = function(state) {
if (state) {
txt.innerHTML = "My neighborhood";
privatebutton.disabled = true;
sharedbutton.disabled = true;
invoker.style.backgroundImage = 'url(lib/sugar-web/graphics/icons/actions/zoom-neighborhood.svg)';
that.getPalette().childNodes[0].style.backgroundImage = 'url(lib/sugar-web/graphics/icons/actions/zoom-neighborhood.svg)';
that.getPalette().dispatchEvent(that.sharedEvent);
} else {
txt.innerHTML = "Private";
privatebutton.disabled = false;
sharedbutton.disabled = false;
}
}
div.appendChild(txt);
div.appendChild(hr);
div.appendChild(privatebutton);
div.appendChild(sharedbutton);
var usersDiv = document.createElement('div');
usersDiv.setAttribute("id", "presence-users");
div.appendChild(usersDiv);
this.setContent([div]);
// Pop-down the palette when a item in the menu is clicked.
this.buttons = div.querySelectorAll('button');
var that = this;
function popDownOnButtonClick(event) {
that.popDown();
}
for (var i = 0; i < this.buttons.length; i++) {
if (this.buttons[i].id == "shared-button")
this.buttons[i].addEventListener('shared', popDownOnButtonClick);
}
};
var addEventListener = function (type, listener, useCapture) {
return this.getPalette().addEventListener(type, listener, useCapture);
};
presencepalette.PresencePalette.prototype =
Object.create(palette.Palette.prototype, {
addEventListener: {
value: addEventListener,
enumerable: true,
configurable: true,
writable: true
}
});
presencepalette.PresencePalette.prototype.setShared = function(state) {
this.setShared(state);
}
return presencepalette;
});