{jq}
var permOk = false;
{{permission type=tracker object=$input.trackerId name='create_tracker_items'}}
permOk = true;
{{/permission}}
$('.map-join .service-dialog-edit').click(function () {
if (!permOk) {
if (confirm(tr("You need to log in to join this map, do you want to log in now?"))) {
document.location.href = "login";
}
} else {
$clicked = $(this);
$clicked.parent().modal(" ");
$.getJSON('tiki-searchindex.php', {
filter: {
object_type:"trackeritem",
object_id:{{$input.sourceId}}
},
fields:["tracker_field_mapName","tracker_field_mapDescription","tracker_field_shareCode","tracker_field_mapDetailsHeader","tracker_field_mapBaseLocation","tracker_field_owner"]
}, function (data) {
if (!!data) {
// now take the results data, create a fake anchor and trigger the insert_item service dialog (must be an easier way, no?)
var result = data[0];
$.getJSON($.service('tracker', 'list_fields'), {
trackerId: {{$input.trackerId}}
}, function (data) {
// need the ins_ id's from the fields
var fields = data.fields;
var fld, input = { status: result.tracker_status, forced: {} };
for (fld in fields) {
switch(fields[fld].permName) {
case "owner":
input.forced[fields[fld].permName] = result.tracker_field_owner;
break;
case "shareCode":
input.forced[fields[fld].permName] = result.tracker_field_shareCode;
break;
case "mapName":
input["ins_" + fields[fld].fieldId] = result.tracker_field_mapName + " " + "{tr}joined by{/tr} {{$input.owner}}";
break;
case "mapDescription":
input["ins_" + fields[fld].fieldId] = result.tracker_field_mapDescription;
break;
case "mapBaseLocation":
input.forced[fields[fld].permName] = result.tracker_field_mapBaseLocation;
break;
case "mapDetailsHeader":
input.forced[fields[fld].permName] = result.tracker_field_mapDetailsHeader;
break;
default:
break;
}
}
$clicked.parent().modal();
$clicked.parent().append($('{{tr}}Join{{/tr}}').
serviceDialog({
title: $(this).text(),
data: input,
success: function (data) {
var url = "Map?mapId=@itemId@&coordinates=@mapBaseLocation@&shareCode=@shareCode@&mapName=@mapName@"
.replace("@itemId@", escape(data.itemId));
$.each(data.fields, function (k, v) {
url = url.replace("@" + k + "@", escape(v));
});
document.location.href = url + "#Map";
}
}).click()
);
});
}
}
);
}
return false;
});
{/jq}