//= require index/notes
//= require index/history
//= require index/note
+//= require index/new_note
//= require router
$(document).ready(function () {
OSM.Index = function(map) {
var page = {};
- page.pushstate = page.popstate = function(path) {
- $("#content").addClass("overlay-sidebar");
- map.invalidateSize();
+ function loadContent(path) {
$('#sidebar_content').load(path + "?xhr=1", function(a, b, xhr) {
if (xhr.getResponseHeader('X-Page-Title')) {
document.title = xhr.getResponseHeader('X-Page-Title');
}
});
+ }
+
+ page.pushstate = function(path) {
+ $("#content").addClass("overlay-sidebar");
+ map.invalidateSize({pan: false})
+ .panBy([-300, 0], {animate: false});
+ loadContent(path);
+ };
+
+ page.popstate = function(path) {
+ $("#content").addClass("overlay-sidebar");
+ map.invalidateSize({pan: false});
+ loadContent(path);
};
page.unload = function() {
+ map.panBy([300, 0], {animate: false});
$("#content").removeClass("overlay-sidebar");
- map.invalidateSize();
+ map.invalidateSize({pan: false});
};
return page;
page.load = function(path, type, id) {
if (OSM.STATUS === 'api_offline' || OSM.STATUS === 'database_offline') return;
- if (type === 'note') {
- map.noteLayer.showNote(parseInt(id));
- } else {
- map.addObject({type: type, id: parseInt(id)}, {zoom: true});
- }
+ map.addObject({type: type, id: parseInt(id)}, {zoom: true});
};
page.unload = function() {
"/search": OSM.Search(map),
"/export": OSM.Export(map),
"/history": history,
+ "/new_note": OSM.NewNote(map),
"/user/:display_name/edits": history,
"/browse/friends": history,
"/browse/nearby": history,