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.
 
 
 
 
 

249 lines
9.8 KiB

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