Here it is again, this time .html changed to .txt
The actual site is here:
http://barbalex.iriscouch.com/evab-ch_barbalex_evab/_design/evab/index.html
You need to sign up as it is meant for saving sightings of species and users
should only see their own sightings.
Thanks for looking into it!
Alex
2011/6/30 Randall Leeds <[email protected]>
> On Sat, Jun 25, 2011 at 15:02, Alexander Gabriel <[email protected]> wrote:
> > This must be a dumb mistake. My couchapp worked before the update to 1.1.
> > Now I get no data and firebug says "userCtx is null" on "User =
> > userCtx.name;" on line 223.
> > I attached the page.
> > What am I missing?
> > Thanks for help.
> > Alex
>
> No page attached. Please follow up and I'd be happy to help you debug.
>
<!DOCTYPE html>
<html>
<head>
<META http-equiv=Content-Type content="text/html; charset=UTF-8"/>
<title>EvAB</title>
<link rel="stylesheet" href="style/main.css" type="text/css">
<link rel="stylesheet" href="style/jquery.mobile.css" type="text/css"/>
<link rel="stylesheet" href="style/evab.css" type="text/css"/>
<link rel="stylesheet" href="style/jquery.mobile.actionsheet.css"
type="text/css"/>
<link rel="SHORTCUT ICON" href="Bilder/favicon.ico">
</head>
<body>
<div data-role="page" id="BeobListe">
<div id="BeobListeHeader" data-role="header"
data-position="fixed" data-backbtn="false">
<h2>Beobachtungen</h2>
<a data-role="actionsheet" data-icon="gear"
data-iconpos="notext" class="r ui-btn-right">Menu</a>
<div>
<a id="NeuAnmelden" href="index.html"
data-role="button" rel="external">neu anmelden</a>
<a id="NeuesKontoErstellen" href="Signup.html"
data-role="button" rel="external">neues Konto<br />erstellen</a>
<a id="BeobExp"
href="../evab/_list/BeobExport/BeobListe?user=barbalex" data-role="button"
rel="external">Beobachtungen<br />exportieren (CSV)</a>
<a id="FeldListe" href="FeldListe.html"
data-role="button" rel="external">Datenfelder<br />verwalten</a>
<a id="FeldExp"
href="../evab/_list/FeldExport/FeldListe" data-role="button"
rel="external">Datenfelder<br />exportieren (CSV)</a>
<a id="hModus" href="hProjektListe.html"
data-role="button" rel="external">Hierarchischer<br />Modus</a>
</div>
</div>
<div data-role="content">
<ul id="beobachtungen" data-role="listview"
data-theme="c" data-filter="true" data-filter-placeholder="Filter setzen..." />
</div>
<div data-role="footer" data-position="fixed">
<div data-role="navbar">
<ul>
<li><a href="BeobNeu.html"
data-transition="slideup" data-icon="plus" data-iconpos="left" rel="external"
class="ui-btn-active" >neue Beobachtung</a></li>
<li><a href="#" id="GeButton"
data-icon="star" data-iconpos="left">Karte</a></li>
</ul>
</div>
</div>
</div>
<div data-role="page" id="BeobListeMap" style="width:100%;
height:100%;">
<div data-role="header" data-position="fixed">
<a href="#BeobListe" data-role="button"
data-icon="arrow-l" data-iconpos="notext">abbrechen</a>
<h1>Karte</h1>
<a data-role="actionsheet" data-icon="gear"
data-iconpos="notext" class="r ui-btn-right">Menu</a>
<div>
<a id="NeuAnmelden" href="index.html"
data-role="button" rel="external">neu anmelden</a>
<a id="NeuesKontoErstellen" href="Signup.html"
data-role="button" rel="external">neues Konto<br />erstellen</a>
<a id="BeobExp"
href="../evab/_list/BeobExport/BeobListe?user=barbalex" data-role="button"
rel="external">Beobachtungen<br />exportieren (CSV)</a>
<a id="FeldListe" href="FeldListe.html"
data-role="button" rel="external">Datenfelder<br />verwalten</a>
<a id="FeldExp"
href="../evab/_list/FeldExport/FeldListe" data-role="button"
rel="external">Datenfelder<br />exportieren (CSV)</a>
<a id="hModus" href="hProjektListe.html"
data-role="button" rel="external">Hierarchischer<br />Modus</a>
</div>
</div>
<div data-role="content" style="width:100%; height:100%;
padding:0;">
<div id="map_canvas" style="width:100%;
height:100%;"></div>
</div>
</div>
</body>
<script src="vendor/couchapp/loader.js"></script>
<script type="text/javascript"
src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript"
src="vendor/couchapp/markerclusterer.js"></script>
<script type="text/javascript"
src="vendor/couchapp/markerwithlabel.js"></script>
<script type="text/javascript" charset="utf-8">
function handleDocumentReady()
{
$db = $.couch.db("evab-ch_barbalex_evab");
User = "";
userCtx = null;
$.couch.session({
success : function(r) {
userCtx = r.userCtx;
User = userCtx.name;
alert("userCtx.name = " + userCtx.name);
alert("User = " + User);
if (userCtx.name) {
//jetzt muss nichts gemacht werden
} else if (userCtx.roles.indexOf("_admin") !=
-1) {
MeldungEinzeilig("admin party");
} else {
window.open("index.html",
target="_self");
}
}
});
refreshBeobListe();
$('li').bind('taphold', function(event){
var that = this;
var BeobId = $(that).attr('id');
MeldungEinzeilig("Jetzt käme das Kontextmenu für BeobId
= " + BeobId);
});
$("#GeButton").tap(function(event) {
//ToDo: Prüfen, ob Beobachtungen mit LatLng vorliegen
$.mobile.changePage("#BeobListeMap", "slide", false,
true);
});
$('#BeobListeMap').live("pagecreate", function() {
/*
zuerst Koordinaten holen, Karte darum zentrieren
dann in schleife alle marker setzen
listener schaffen
*/
var lat = 47.383333;
var lng = 8.533333;
if ( navigator.geolocation ) {
navigator.geolocation.getCurrentPosition (
function(position) {
lat = position.coords.latitude;
lng = position.coords.longitude;
});
}
var latlng = new google.maps.LatLng(lat, lng);
var options = {
zoom: 15,
center: latlng,
streetViewControl: false,
mapTypeId: google.maps.MapTypeId.HYBRID
};
var map = new
google.maps.Map(document.getElementById("map_canvas"),options);
google.maps.event.trigger(map,'resize');
//jetzt werden für alle Beobachtungen marker erstellt
$db.view("evab/BeobListeLatLng",
{success: function(data) {
var i;
var anzBeob = 0;
//var user;
var beob;
var zDatum;
var zZeit;
var aArtGruppe;
var image;
var aArtName;
var aAutor;
var UserZeit;
var infowindow = new
google.maps.InfoWindow();
for(i in data.rows) {
//Beobachtungen zählen. Wenn noch keine: darauf hinweisen
key = data.rows[i].key;
//user = userCtx.name;
if (key[0] == User) {
//nur eigene Beobachtungen zählen!
anzBeob = anzBeob + 1;
}
}
if (anzBeob == 0) {
MeldungEinzeilig("Es wurden
noch keine Beobachtungen mit Breiten- und Längengrad erfasst");
} else {
var markers = [];
for(i in data.rows)
//Liste aufbauen
{
beob =
data.rows[i].value;
key = data.rows[i].key;
//user = userCtx.name;
if (key[0] == User) {
//nur eigene Beobachtungen anzeigen!
var zDatum =
beob.zDatum;
var zZeit =
beob.zZeit;
var aArtGruppe
= beob.aArtGruppe;
var image =
"Artgruppenbilder/" + aArtGruppe + ".png";
var aArtName =
beob.aArtName;
var aAutor =
beob.aAutor;
var lat2 =
beob.oLatitudeDecDeg;
var lng2 =
beob.oLongitudeDecDeg;
var latlng2 =
new google.maps.LatLng(lat2, lng2);
var marker =
new MarkerWithLabel({
map:
map,
position: latlng2,
title:
aArtName,
icon: image,
labelContent: aArtName,
labelAnchor: new google.maps.Point(22, 0),
labelClass:
"MapLabel", // the CSS class for the label
labelStyle: {opacity: 0.75}
});
markers.push(marker);
var
contentString = '<div id="content">'+
'<div
id="siteNotice">'+
'</div>'+
'<h4
id="firstHeading" class="GmInfowindow">' + aArtName + '</h4>'+
'<div
id="bodyContent" class="GmInfowindow">'+
'<p>Art-Gruppe: ' + aArtGruppe + '</p>'+
'<p>Autor:
' + aAutor + '</p>'+
'<p>Datum:
' + zDatum + '</p>'+
'<p>Zeit: '
+ zZeit + '</p>'+
'</div>'+
'</div>';
makeListener(map, marker, contentString);
}
}
var mcOptions = {maxZoom: 17};
var markerCluster = new
MarkerClusterer(map, markers, mcOptions);
}
function makeListener(map, marker,
contentString){
google.maps.event.addListener(marker, 'vclick', function() {
infowindow.setContent(contentString);
infowindow.open(map,marker);
});
}
}
});
});
function refreshBeobListe()
{
$("#beobachtungen").empty();
$db.view("evab/BeobListe",
{success: function(data) {
var i;
var anzBeob = 0;
var beob;
var zDatum;
var zZeit;
var aArtName;
var externalPage;
var listItem;
var ListItemContainer = "";
var UserZeit;
//var User;
for(i in data.rows) {
//Beobachtungen zählen. Wenn noch keine: darauf hinweisen
key = data.rows[i].key;
//User = userCtx.name;
if (key[0] == User) {
//nur eigene Beobachtungen zählen!
anzBeob = anzBeob + 1;
}
}
//$("#BeobListeHeader").text(anzBeob +
" Beobachtungen"); //Header soll anzeigen, wieviele Beobachtungen erfasst
wurden. Breaks jquery mobile style!
if (anzBeob == 0) {
$("#beobachtungen").append("<li>Sie haben noch keine Beobachtung erfasst</li>");
} else {
data.rows.reverse();
//zuletzt erfasste sind zuoberst
for(i in data.rows)
//Liste aufbauen
{
beob =
data.rows[i].value;
key = data.rows[i].key;
//user = userCtx.name;
if (key[0] == User) {
//nur eigene Beobachtungen anzeigen!
zDatum =
beob.zDatum;
zZeit =
beob.zZeit;
aArtGruppe =
beob.aArtGruppe;
ImageLink =
"Artgruppenbilder/" + aArtGruppe + ".png";
aArtName =
beob.aArtName;
externalPage =
"_show/BeobEdit/" + beob._id;
listItem = "<li
class=\"beob ui-li-has-thumb\" id=\"" + beob._id + "\">" +
"<a
href=\"" + externalPage + "\" rel=\"external\">" +
"<img
class=\"ui-li-thumb\" src=\"" + ImageLink + "\" />" +
"<h3
class=\"aArtName\">" + aArtName + "<\/h3>" +
"<p
class=\"zZeit\">" + zDatum + " " + zZeit + "<\/p>" +
"<\/a>
<\/li>";
ListItemContainer = ListItemContainer + listItem;
}
}
}
ListItemContainer = ListItemContainer +
"<\/ul>";
$("#beobachtungen").append(ListItemContainer);
$("#beobachtungen").listview();
$("#beobachtungen").listview("refresh");
}
});
}
}
$(document).ready(handleDocumentReady);
</script>
<script type="text/javascript" charset="utf-8">
</script>
</html>