|
|
- define(["sugar-web/activity/activity","sugar-web/env", "worldpalette", "viewpalette", "webL10n"], function (activity, env, worldpalette, viewpalette, webL10n) {
-
- // Manipulate the DOM only when it is ready.
- requirejs(['domReady!'], function (doc) {
-
- // Initialize the activity.
- activity.setup();
-
-
- //Set background color to user color
- var canvas = document.getElementById("canvas");
- var canvasColor;
- activity.getXOColor(function(error, retcolors){
- canvasColor = retcolors;
- });
-
- canvas.style.backgroundColor = canvasColor["fill"];
-
- var datastoreObject = activity.getDatastoreObject();
-
- var worldButton = document.getElementById("world-button");
-
- var worldPalette = new worldpalette.ActivityPalette(
- worldButton, datastoreObject);
-
- var viewButton = document.getElementById("view-button");
-
- var viewPalette = new viewpalette.ActivityPalette(
- viewButton, datastoreObject);
-
- $(document).ready(function() {
-
- var planetarium = $.virtualsky({
- id: 'starmap', //Div tag id where you want to place star chart
- projection:'stereo', //Type of map projection used
- keyboard: false, //Disable/Enable keyboard
- showposition: false, //Show/Hide coordinates
- showstars: true, //Show/Hide stars
- constellations: true, //Show/Hide constellation lines
- constellationlabels: true, //Show/Hide Constellation names
- showplanets: true, //Show/Hide planets
- showplanetlabels: true, //Show/Hide planet names
- live: true, //Disabe/Enable real time clock
- clock: new Date() //Set clock
-
- });
-
- // Load from datastore
- env.getEnvironment(function(err, environment) {
- currentenv = environment;
-
- //Set current language
- var currentLang = (typeof chrome != 'undefined' && chrome.app && chrome.app.runtime) ? chrome.i18.getUILanguage() : navigator.language;
- var language = environment.user ? environment.user.language : currentLang;
- webL10n.language.code = language;
-
- planetarium.loadLanguage(language); //Set the star chart's language to Sugarizer's language
- document.getElementById("locale-date").innerHTML = language; //Localize date
-
- //Process localize event
- window.addEventListener("localized", function(){
- toLocalize();
- })
-
-
- // Load from datastore
- if (!environment.objectId) {
- console.log("New instance");
- document.getElementById(chartJournal[2]).style.backgroundColor = 'grey';
- document.getElementById(chartJournal[3]).style.backgroundColor = 'grey';
- } else {
- activity.getDatastoreObject().loadAsText(function(error, metadata, data) {
- if (error==null && data!=null) {
- chartJournal = JSON.parse(data);
- customLatitude = planetarium.setLatitude(parseFloat(chartJournal[2].split(',')[0]));
- customLongitude = planetarium.setLongitude(parseFloat(chartJournal[2].split(',')[1]));
- planetarium.setGeo($(customLatitude,customLongitude)).setClock(0).draw();
- try {
- document.getElementById(chartJournal[2]).style.backgroundColor = 'grey';
- }
- catch(e){
- console.log("User location used");
- }
- planetarium.selectProjection(chartJournal[3]);
- document.getElementById(chartJournal[3]).style.backgroundColor = 'grey';
- if (chartJournal[0] == false){
- document.getElementById("const-button").classList.remove("active");
- planetarium.toggleConstellationLines();
- planetarium.toggleConstellationLabels();
- } else if (chartJournal[0] == true){
- document.getElementById("const-button").classList.add("active");
- }
- if (chartJournal[1] == true){
- document.getElementById("star-button").classList.add("active");
- planetarium.toggleStarLabels();
- }
- }
- });
- }
- });
- //Things to localize
- function toLocalize() {
- document.getElementById("add-button").title = webL10n.get("AddDay");
- document.getElementById("minus-button").title = webL10n.get("MinusDay");
- document.getElementById("const-button").title = webL10n.get("ToggleConst");
- document.getElementById("star-button").title = webL10n.get("ToggleStar");
- document.getElementById("location-button").title = webL10n.get("Location");
- document.getElementById("world-button").title = webL10n.get("WorldList");
- document.getElementById("view-button").title = webL10n.get("View");
- document.getElementById("55.3781,-3.4360").innerHTML = webL10n.get("Britain");
- document.getElementById("23.6345,-102.5528").innerHTML = webL10n.get("Mexico");
- document.getElementById("40.4637,-3.7492").innerHTML = webL10n.get("Spain");
- document.getElementById("51.1657,10.4515").innerHTML = webL10n.get("Germany");
- document.getElementById("40.3399,127.5101").innerHTML = webL10n.get("NorthKorea");
- document.getElementById("23.8859,45.0792").innerHTML = webL10n.get("SaudiArabia");
- document.getElementById("35.9078,127.7669").innerHTML = webL10n.get("SouthKorea");
- document.getElementById("46.2276,2.2137").innerHTML = webL10n.get("France");
- document.getElementById("51.9194,19.1451").innerHTML = webL10n.get("Poland");
- document.getElementById("41.8719,12.5674").innerHTML = webL10n.get("Italy");
- document.getElementById("20.5937,78.9629").innerHTML = webL10n.get("India");
- document.getElementById("9.0820,8.6753").innerHTML = webL10n.get("Nigeria");
- document.getElementById("0.7893,113.9213").innerHTML = webL10n.get("Indonesia");
- document.getElementById("-14.2350,-51.9253").innerHTML = webL10n.get("Brazil");
- document.getElementById("54.5260,-105.2551").innerHTML = webL10n.get("NorthAmerica");
- document.getElementById("-8.7832,-55.4915").innerHTML = webL10n.get("SouthAmerica");
- document.getElementById("-8.7832,34.5085").innerHTML = webL10n.get("Africa");
- document.getElementById("-25.2744,133.7751").innerHTML = webL10n.get("Australia");
- document.getElementById("12.8797,121.7740").innerHTML = webL10n.get("Philippines");
- document.getElementById("4.2105,101.9758").innerHTML = webL10n.get("Malaysia");
- document.getElementById("36.2048,138.2529").innerHTML = webL10n.get("Japan");
- document.getElementById("39.9042,116.4074").innerHTML = webL10n.get("China");
- }
-
- //Necessary variables
- var chartJournal = [true,false,"55.3781,-3.4360","stereo"];
- var longlat = document.getElementById('worldConst').innerHTML;
- var customLatitude = planetarium.setLatitude(parseFloat(longlat.split(',')[0]));
- var customLongitude = planetarium.setLongitude(parseFloat(longlat.split(',')[1]));
- document.getElementById("const-button").classList.add("active");
-
- //Get Location of user and set the star chart to the position
- //when Location button is pressed
- function getUserLocation(){
- if (navigator.geolocation){
- navigator.geolocation.getCurrentPosition(userPosition);
- }
- }
- function userPosition(position) {
- $("button#location-button").on('click', function(){
- console.log(longlat);
- try{
- document.getElementById(longlat).style.backgroundColor = 'black';
- }
- catch(e){}
- longlat = position.coords.latitude + "," + position.coords.longitude;
- customLatitude = planetarium.setLatitude(parseFloat(longlat.split(',')[0]));
- customLongitude = planetarium.setLongitude(parseFloat(longlat.split(',')[1]));
- planetarium.setGeo($(customLatitude,customLongitude)).setClock(0).draw();
- chartJournal[2] = longlat;
- console.log(chartJournal);
- })
- }
-
- getUserLocation();
-
-
- //Add 1 day to date
- $("button#add-button").on('click', function (){
- planetarium.clock.setDate(planetarium.clock.getDate() + 1);
- planetarium.updateClock(planetarium.clock);
- planetarium.draw();
- })
-
- //Minus 1 day to date
- $("button#minus-button").on('click', function (){
- planetarium.clock.setDate(planetarium.clock.getDate() - 1);
- planetarium.updateClock(planetarium.clock);
- planetarium.draw();
- })
-
- //Toggle Constellation Lines and Name
- $("button#const-button").on('click', function (){
-
- planetarium.toggleConstellationLines();
- planetarium.toggleConstellationLabels();
-
- if (chartJournal[0] == true){
- document.getElementById("const-button").classList.remove("active");
- chartJournal[0] = false;
- } else{
- document.getElementById("const-button").classList.add("active");
- chartJournal[0] = true;
- }
-
- console.log(chartJournal[0]);
- })
-
- //Toggle Star names
- $("button#star-button").on('click', function (){
- planetarium.toggleStarLabels();
-
- if (chartJournal[1] == true){
- document.getElementById("star-button").classList.remove("active");
- chartJournal[1] = false;
- } else{
- document.getElementById("star-button").classList.add("active");
- chartJournal[1] = true;
- }
- console.log(chartJournal[1]);
- })
-
- //Set long and lat to specific country
- $("button.country").on('click', function (){
- longlat = document.getElementById('worldConst').innerHTML;
- customLatitude = planetarium.setLatitude(parseFloat(longlat.split(',')[0]));
- customLongitude = planetarium.setLongitude(parseFloat(longlat.split(',')[1]));
- planetarium.setGeo($(customLatitude,customLongitude)).setClock(0).draw();
- chartJournal[2] = longlat;
- console.log(chartJournal);
- })
-
- //Change projection view
- $("button.view").on('click', function (){
- var pv = document.getElementById('projection-view').innerHTML;
- planetarium.selectProjection(pv);
- chartJournal[3] = pv;
- planetarium.draw();
- console.log(chartJournal);
- })
-
- //Save in Journal on stop
- document.getElementById("stop-button").addEventListener('click', function (event) {
- console.log("writing...");
- var jsonData = JSON.stringify(chartJournal);
- activity.getDatastoreObject().setDataAsText(jsonData);
- activity.getDatastoreObject().save(function (error) {
- if (error === null) {
- console.log("write done.");
- console.log(jsonData);
- } else {
- console.log("write failed.");
- }
- });
- });
-
- });
- });
-
- });
|