Index: lams_tool_gmap/conf/hibernate/mappings/org/lamsfoundation/lams/tool/gmap/model/GmapMarker.hbm.xml
===================================================================
diff -u -r0ce24288a7982f962e62e74d254133cee8016f0a -r4125a04e76b7cafc0a7d4fe906affec3d45aa06b
--- lams_tool_gmap/conf/hibernate/mappings/org/lamsfoundation/lams/tool/gmap/model/GmapMarker.hbm.xml (.../GmapMarker.hbm.xml) (revision 0ce24288a7982f962e62e74d254133cee8016f0a)
+++ lams_tool_gmap/conf/hibernate/mappings/org/lamsfoundation/lams/tool/gmap/model/GmapMarker.hbm.xml (.../GmapMarker.hbm.xml) (revision 4125a04e76b7cafc0a7d4fe906affec3d45aa06b)
@@ -47,6 +47,7 @@
update="true"
insert="true"
column="info_window_message"
+ length="65535"
/>
+
+
+
+
Index: lams_tool_gmap/web/includes/javascript/authoring.js
===================================================================
diff -u -r97ded6a90b089fe5e01c48c02f952e8b09d5a911 -r4125a04e76b7cafc0a7d4fe906affec3d45aa06b
--- lams_tool_gmap/web/includes/javascript/authoring.js (.../authoring.js) (revision 97ded6a90b089fe5e01c48c02f952e8b09d5a911)
+++ lams_tool_gmap/web/includes/javascript/authoring.js (.../authoring.js) (revision 4125a04e76b7cafc0a7d4fe906affec3d45aa06b)
@@ -3,6 +3,7 @@
var map;
var markers;
var geocoder = null;
+var currUser;
function init() {
// open the current tab
var tag = document.getElementById("currentTab");
Index: lams_tool_gmap/web/includes/javascript/mapFunctions.js
===================================================================
diff -u -r97ded6a90b089fe5e01c48c02f952e8b09d5a911 -r4125a04e76b7cafc0a7d4fe906affec3d45aa06b
--- lams_tool_gmap/web/includes/javascript/mapFunctions.js (.../mapFunctions.js) (revision 97ded6a90b089fe5e01c48c02f952e8b09d5a911)
+++ lams_tool_gmap/web/includes/javascript/mapFunctions.js (.../mapFunctions.js) (revision 4125a04e76b7cafc0a7d4fe906affec3d45aa06b)
@@ -1,9 +1,15 @@
-
// add a marker at the given point
-function addMarker(point, infoMessage, title, uid, isSaved)
+function addMarker(point, infoMessage, title, uid, isSaved, editAble, createdBy)
{
map.closeInfoWindow();
- var marker = new GMarker(point, {draggable: true})
+ var marker;
+
+ if(editAble) {marker = new GMarker(point, {draggable: true});}
+ else {marker = new GMarker(point, {draggable: false})};
+
+ marker.editAble = editAble;
+ marker.createdBy = createdBy;
+
map.addOverlay(marker);
GEvent.addListener(marker, "dragstart", function() {
@@ -12,7 +18,6 @@
GEvent.addListener(marker, "dragend", function() {
if (marker.state == "unchanged") {marker.state = "update";}
- //serialiseMarkers();
updateMarkerInfoWindowHtml(marker);
});
@@ -32,37 +37,27 @@
{
marker.infoMessage = "";
}
-
- //marker.title = "Marker #" + markers.length;
marker.title = title;
+
- //sideBar(marker.infoMessage, markers.length);
-
-
// set the state of the marker
marker.editingOn = !isSaved;
marker.uid = uid;
if (isSaved){marker.state = "unchanged";}
else {marker.state="unsaved";}
- marker.sideBarLinkPrefix = "
";
+ sideBarText += markers[i].sideBarLinkPrefix + " title='" + markers[i].createdBy + "' >" + markers[i].title+"
";
}
}
document.getElementById("sidebar").innerHTML = sideBarText;
}
-
-function test()
-{
- serialiseMarkers();
- alert(document.authoringForm.markersXML.value);
-}
-
-function removeMarker(x)
-{
- var ans = confirm(confirmDelete);
- if (ans)
- {
- try{map.removeOverlay(markers[x]);}
- catch (e){}
- markers[x].state = "remove";
- refreshSideBar();
- //serialiseMarkers();
- }
-}
-
-function editMarker(x)
-{
- markers[x].editingOn = true;
- updateMarkerInfoWindowHtml(markers[x]);
- openInfoWindow(x);
-}
-
function cancelEditMarkerInfo(x)
{
if (markers[x].state == "unsaved")
@@ -118,52 +86,6 @@
}
}
-function updateMarkerInfoWindowHtml(markerIn)
-{
- markerIn.locationMessage = "";
- markerIn.locationMessage += "Latitude: " + markerIn.getPoint().lat() + "
";
- markerIn.locationMessage += "Longitude: " + markerIn.getPoint().lng() + "
";
- markerIn.locationMessage += "";
- markerIn.infoWindowHtml = markerIn.locationMessage;
-
- if (markerIn.state == "unchanged")
- {
- markerIn.setImage(webAppUrl + "/images/blue_Marker.png");
- }
- else if (markerIn.state == "update" || markerIn.state == "save")
- {
- markerIn.setImage(webAppUrl + "/images/paleblue_Marker.png");
- }
- else if (markerIn.state == "unsaved")
- {
- markerIn.setImage(webAppUrl + "/images/red_Marker.png");
- }
-
- if (markerIn.editingOn)
- {
- markerIn.linksBar = "
" + markerIn.saveLink + " " + markerIn.cancelLink;
-
- //markerIn.inputForm = "New Info Window Text:
";
- //markerIn.inputForm += "";
- //markerIn.inputForm += "";
-
- //markerIn.titleInput = "Title:
";
- //markerIn.infoWindowTextarea = "New Info Window Text:
";
- markerIn.inputForm = "Title:
";
- markerIn.inputForm += "New Info Window Text:
";
- //markerIn.inputForm = "" + markerIn.infoWindowTextarea;
- markerIn.infoWindowHtml += markerIn.inputForm + markerIn.linksBar;
- }
- else
- {
- markerIn.linksBar = "
" + markerIn.removeLink + " " + markerIn.editLink;
- markerIn.inputForm = "";
- markerIn.infoWindowHtml += markerIn.infoMessage + "
" + markerIn.inputForm + markerIn.linksBar;
- }
-}
-
function openInfoWindow(x)
{
markers[x].openInfoWindowHtml(markers[x].infoWindowHtml);
@@ -196,150 +118,71 @@
function fitMapMarkers()
{
- var bounds = new GLatLngBounds();
- for (var i=0; i< markers.length; i++) {
- bounds.extend(markers[i].getPoint());
- }
- map.setZoom(map.getBoundsZoomLevel(bounds));
- //map.setCenter(bounds.getCenter());
- map.panTo(bounds.getCenter());
-
-}
-
-function saveMarkerInfo(x)
-{
- if (markers[x] != null)
+ var bounds = new GLatLngBounds();
+ for (var i=0; i< markers.length; i++)
{
- var title= trim(document.getElementById("markerTitle").value);
- if (title==null || title == "")
+ if (markers[i].state != "remove")
{
- alert(errorMissingTitle);
- return false;
+ bounds.extend(markers[i].getPoint());
}
- else
- {
-
- var info=document.getElementById("infoWindow").value;
- markers[x].title = title;
- markers[x].infoMessage = info;
- markers[x].editingOn = false;
-
- // change the state to update if it is a pre-existing marker
- if (markers[x].state == "unchanged") {markers[x].state = "update";}
- else (markers[x].state ="save");
-
- //markers[x].isSaved = persistMarker(markers[x], "createMarker");
- updateMarkerInfoWindowHtml(markers[x]);
- refreshSideBar();
- }
}
+ var zoom = map.getBoundsZoomLevel(bounds) - 1;
+ if (zoom > 15) {zoom = 15;}
+ map.setZoom(zoom);
+ map.panTo(bounds.getCenter());
+
}
function trim(x)
{
return x.replace(/^\s+|\s+$/g, '')
}
-/*
-function getAjaxObject()
+function updateMarkerInfoWindowHtml(markerIn)
{
- var req=null;
- if ( window.XMLHttpRequest ) {req = new XMLHttpRequest();}
- else {req = new ActiveXObject("MSXML2.XMLHTTP");}
- return req;
-}
-*/
-
-/*
-function persistMarker(marker, method)
-{
- var ajax = getAjaxObject();
- var result = null;
- ajax.onreadystatechange = function()
- {
- if(ajax.readyState == 4)
- {
- result = ajax.responseText;
- }
+ if (markerIn.state == "unchanged")
+ {
+ markerIn.setImage(webAppUrl + "/images/blue_Marker.png");
}
-
- var url = webAppUrl + "/marker.do?" +
- "&method=" + method +
- "&toolContentID=" + toolContentID +
- "&latitude=" + marker.getPoint().lat() +
- "&longitude=" + marker.getPoint().lng() +
- "&infoMessage=" + marker.infoMessage;
-
- try
- {
- ajax.open("GET",url,false);
- ajax.send(null);
-
- if (result=="success")
- {
- alert("yay!");
- return true;
- }
- else
- {
- //TODO: handle marker save failure
- alert("boo!");
- return false;
- }
+ else if (markerIn.state == "update" || markerIn.state == "save")
+ {
+ markerIn.setImage(webAppUrl + "/images/paleblue_Marker.png");
}
- catch(e)
+ else if (markerIn.state == "unsaved")
{
- return e;
- //alert("An error occurred: " + e);
+ markerIn.setImage(webAppUrl + "/images/red_Marker.png");
}
-}*/
-
-
-function serialiseMarkers()
-{
- var xmlString = '';
- var i =0;
- for (;i';
- xmlString += markerString;
- }
+ markerIn.linksBar = "
" + markerIn.saveLink + " " + markerIn.cancelLink;
+ markerIn.inputForm = "Title:
";
+ markerIn.inputForm += "New Info Window Text:
";
+ markerIn.markerMetaData = "";
+ markerIn.markerMetaData += "Latitude-Longitude: (" + markerIn.getPoint().lat() + "-" + markerIn.getPoint().lng() +")";
+ markerIn.markerMetaData += "";
+ markerIn.infoWindowHtml = markerIn.inputForm + "
" +markerIn.markerMetaData + markerIn.linksBar;
}
- xmlString += ""
- //document.authoringForm.markersXML.value=xmlString;
- document.getElementById("markersXML").value=xmlString;
+ else
+ {
+ markerIn.linksBar = ""
+ if (markerIn.editAble)
+ {
+ markerIn.linksBar = "
" + markerIn.removeLink + " " + markerIn.editLink;
+ }
+ markerIn.markerMetaData = "";
+ markerIn.markerMetaData += "Created By: " + markerIn.createdBy + "
";
+ markerIn.markerMetaData += "Latitude-Longitude: (" + markerIn.getPoint().lat() + "-" + markerIn.getPoint().lng() +")";
+ markerIn.markerMetaData += "";
+ markerIn.infoWindowHtml = "" + "
" + markerIn.title + "
" + markerIn.infoMessage.replace(/\n/g, "
") + "
"+ markerIn.markerMetaData + markerIn.linksBar;
+ }
}
-// TODO: This method should only be included for the authoring pages, put them in another file
-function saveMapState()
-{
- document.getElementById("mapZoom").value=map.getZoom();
- document.getElementById("mapCenterLatitude").value=map.getCenter().lat();
- document.getElementById("mapCenterLongitude").value=map.getCenter().lng();
- var mapTypeName = map.getCurrentMapType().getName();
- var mapType = "";
- if (mapTypeName == "Satellite"){ mapType = "G_SATELLITE_MAP"; }
- else if (mapTypeName == "Hybrid") { mapType = "G_HYBRID_MAP"; }
- else if (mapTypeName == "Terrain") { mapType = "G_PHYSICAL_MAP"; }
- else { mapType = "G_NORMAL_MAP"; }
- document.getElementById("mapType").value=mapType;
-}
-
\ No newline at end of file
Index: lams_tool_gmap/web/includes/javascript/mapFunctionsAuthoring.js
===================================================================
diff -u
--- lams_tool_gmap/web/includes/javascript/mapFunctionsAuthoring.js (revision 0)
+++ lams_tool_gmap/web/includes/javascript/mapFunctionsAuthoring.js (revision 4125a04e76b7cafc0a7d4fe906affec3d45aa06b)
@@ -0,0 +1,114 @@
+// Add a new marker to the center of the map
+function addMarkerToCenter()
+{
+ var bounds = map.getBounds();
+ var point = bounds.getCenter();
+ addMarker(point, "", "", -1, false, true, currUser);
+}
+
+
+function test()
+{
+ serialiseMarkers();
+ alert(document.authoringForm.markersXML.value);
+}
+
+function removeMarker(x)
+{
+ var ans = confirm(confirmDelete);
+ if (ans)
+ {
+ try{map.removeOverlay(markers[x]);}
+ catch (e){}
+ markers[x].state = "remove";
+ refreshSideBar();
+ //serialiseMarkers();
+ }
+}
+
+function editMarker(x)
+{
+ markers[x].editingOn = true;
+ updateMarkerInfoWindowHtml(markers[x]);
+ openInfoWindow(x);
+}
+
+function saveMarkerInfo(x)
+{
+ if (markers[x] != null)
+ {
+ var title= trim(document.getElementById("markerTitle").value);
+ if (title==null || title == "")
+ {
+ alert(errorMissingTitle);
+ }
+ else
+ {
+
+ var info=document.getElementById("infoWindow").value;
+ markers[x].title = title;
+ markers[x].infoMessage = info;
+ markers[x].editingOn = false;
+
+ // change the state to update if it is a pre-existing marker
+ if (markers[x].state == "unchanged") {markers[x].state = "update";}
+ else (markers[x].state ="save");
+
+ updateMarkerInfoWindowHtml(markers[x]);
+ refreshSideBar();
+ openInfoWindow(x);
+ }
+ }
+}
+
+
+
+
+function serialiseMarkers()
+{
+ var xmlString = '';
+ var i =0;
+
+ for (;i';
+ xmlString += markerString;
+ }
+ }
+ xmlString += ""
+ //document.authoringForm.markersXML.value=xmlString;
+ document.getElementById("markersXML").value=xmlString;
+ return true;
+}
+
+// TODO: This method should only be included for the authoring pages, put them in another file
+function saveMapState()
+{
+ document.getElementById("mapZoom").value=map.getZoom();
+ document.getElementById("mapCenterLatitude").value=map.getCenter().lat();
+ document.getElementById("mapCenterLongitude").value=map.getCenter().lng();
+ var mapTypeName = map.getCurrentMapType().getName();
+ var mapType = "";
+ if (mapTypeName == "Satellite"){ mapType = "G_SATELLITE_MAP"; }
+ else if (mapTypeName == "Hybrid") { mapType = "G_HYBRID_MAP"; }
+ else if (mapTypeName == "Terrain") { mapType = "G_PHYSICAL_MAP"; }
+ else { mapType = "G_NORMAL_MAP"; }
+ document.getElementById("mapType").value=mapType;
+}
\ No newline at end of file
Index: lams_tool_gmap/web/includes/javascript/mapFunctionsLearning.js
===================================================================
diff -u
--- lams_tool_gmap/web/includes/javascript/mapFunctionsLearning.js (revision 0)
+++ lams_tool_gmap/web/includes/javascript/mapFunctionsLearning.js (revision 4125a04e76b7cafc0a7d4fe906affec3d45aa06b)
@@ -0,0 +1,92 @@
+// Add a new marker to the center of the map
+function addMarkerToCenter()
+{
+ if (limitMarkers)
+ {
+ if (userMarkerCount == markerLimit)
+ {
+ alert("You have reached the marker limit, you cannot add any more");
+ return;
+ }
+ }
+ var bounds = map.getBounds();
+ var point = bounds.getCenter();
+ addMarker(point, "", "", -1, false, true, currUser);
+ userMarkerCount ++;
+}
+
+function removeMarker(x)
+{
+ var ans = confirm(confirmDelete);
+ if (ans)
+ {
+ try{map.removeOverlay(markers[x]);}
+ catch (e){}
+ markers[x].state = "remove";
+ refreshSideBar();
+ userMarkerCount --;
+ //serialiseMarkers();
+ }
+}
+
+function editMarker(x)
+{
+ markers[x].editingOn = true;
+ updateMarkerInfoWindowHtml(markers[x]);
+ openInfoWindow(x);
+}
+
+function saveMarkerInfo(x)
+{
+ if (markers[x] != null)
+ {
+ var title= trim(document.getElementById("markerTitle").value);
+ if (title==null || title == "")
+ {
+ alert(errorMissingTitle);
+ return false;
+ }
+ else
+ {
+
+ var info=document.getElementById("infoWindow").value;
+ markers[x].title = title;
+ markers[x].infoMessage = info;
+ markers[x].editingOn = false;
+
+ // change the state to update if it is a pre-existing marker
+ if (markers[x].state == "unchanged") {markers[x].state = "update";}
+ else (markers[x].state ="save");
+
+ updateMarkerInfoWindowHtml(markers[x]);
+ refreshSideBar();
+ openInfoWindow(x);
+ }
+ }
+}
+
+
+function serialiseMarkers()
+{
+ var xmlString = '';
+ var i =0;
+
+ for (;i';
+ xmlString += markerString;
+ }
+ }
+ xmlString += ""
+ document.getElementById("markersXML").value=xmlString;
+}
+
Index: lams_tool_gmap/web/pages/authoring/basic.jsp
===================================================================
diff -u -r97ded6a90b089fe5e01c48c02f952e8b09d5a911 -r4125a04e76b7cafc0a7d4fe906affec3d45aa06b
--- lams_tool_gmap/web/pages/authoring/basic.jsp (.../basic.jsp) (revision 97ded6a90b089fe5e01c48c02f952e8b09d5a911)
+++ lams_tool_gmap/web/pages/authoring/basic.jsp (.../basic.jsp) (revision 4125a04e76b7cafc0a7d4fe906affec3d45aa06b)
@@ -60,6 +60,7 @@
Index: lams_tool_gmap/web/pages/authoring/headItems.jsp
===================================================================
diff -u -r97ded6a90b089fe5e01c48c02f952e8b09d5a911 -r4125a04e76b7cafc0a7d4fe906affec3d45aa06b
--- lams_tool_gmap/web/pages/authoring/headItems.jsp (.../headItems.jsp) (revision 97ded6a90b089fe5e01c48c02f952e8b09d5a911)
+++ lams_tool_gmap/web/pages/authoring/headItems.jsp (.../headItems.jsp) (revision 4125a04e76b7cafc0a7d4fe906affec3d45aa06b)
@@ -6,6 +6,7 @@
+