(function ($) {
function create_new_location () {
var $root = $("#app-locations-add_location"),
$additive = $("#app-locations-new_location"),
labels = _app_locations_data.model.labels,
fields = _app_locations_data.model.fields,
markup = ''
;
if ($additive.length) $additive.remove();
markup += '
' + labels.new_location + '
';
$.each(fields, function (field, label) {
markup += '';
});
markup += '';
markup += '';
$root.after(
'' + markup + '
'
);
$("#app-locations-create_location").on("click", function () {
var location = {},
$submit = $("#app-locations-save_locations"),
tmp = $submit.before(''),
$location = $("#app-locations-added_location")
;
$.each(fields, function (field, label) {
location[field] = $("#app-location-" + field).val();
});
$location.val(JSON.stringify(location));
$submit.trigger("click");
});
$("#app-locations-cancel_location").on("click", function () {
$("#app-locations-new_location").remove();
return false;
});
return false;
}
function edit_location () {
var $me = $(this),
$root = $("#app-locations-add_location"),
$additive = $("#app-locations-new_location"),
$data = $me.parents('li').find("input:hidden"),
data = $data.val() ? JSON.parse($data.val()) : {},
labels = _app_locations_data.model.labels,
fields = _app_locations_data.model.fields,
markup = ''
;
if ($additive.length) $additive.remove();
markup += '' + labels.edit_location + '
';
$.each(fields, function (field, label) {
markup += '';
});
markup += '';
markup += '';
$root.after(
'' + markup + '
'
);
$("#app-locations-create_location").on("click", function () {
var location = data,
$submit = $("#app-locations-save_locations")
;
$.each(fields, function (field, label) {
location[field] = $("#app-location-" + field).val();
});
$data.val(JSON.stringify(location));
$submit.trigger("click");
});
$("#app-locations-cancel_location").on("click", function () {
$("#app-locations-new_location").remove();
return false;
});
return false;
}
function delete_location () {
var $me = $(this),
$li = $me.parents('li')
;
$li.remove();
return false;
}
function save_inline_appointment_data (e, data, $ctx) {
$ctx = $ctx.length ? $ctx : $("body");
var $location = $ctx.find('[name="location"]'),
location_id = ($location.length ? $location.val() : '')
;
data['location'] = location_id;
return false;
}
// Init
$(function () {
if ("undefined" == typeof _app_locations_data) return false;
$("#app-locations-add_location").on("click", create_new_location);
$("#app-locations-list .app-locations-delete").on("click", delete_location);
$("#app-locations-list .app-locations-edit").on("click", edit_location);
// Inline save
$(document).on('app-appointment-inline_edit-save_data', save_inline_appointment_data);
});
})(jQuery);