|
|
- 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;
- });
|