Subversion Repositories SmartDukaan

Rev

Rev 36740 | Rev 36785 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 36740 Rev 36761
Line 1793... Line 1793...
1793
		url: context + '/beatPlan/deferred/assignToBeat',
1793
		url: context + '/beatPlan/deferred/assignToBeat',
1794
		type: 'POST', contentType: 'application/json',
1794
		type: 'POST', contentType: 'application/json',
1795
		data: JSON.stringify({deferredId: ad.id, beatId: parseInt(beatId), date: date}),
1795
		data: JSON.stringify({deferredId: ad.id, beatId: parseInt(beatId), date: date}),
1796
		success: function (r) {
1796
		success: function (r) {
1797
			var d = r.response || r;
1797
			var d = r.response || r;
-
 
1798
			var label = (ad.type === 'lead' ? 'Lead' : 'Partner') + ' "' + ad.name + '"';
-
 
1799
			var msg = label + ' rescheduled to ' + date + '.';
1798
			$('#deferred-assign-banner').html('<span style="color:#bbf7d0;">' + (d.message || 'Added.') + '</span> You can close this window.');
1800
			$('#deferred-assign-banner').html('<span style="color:#bbf7d0;">' + msg + '</span>');
1799
			loadCalendarData(); // refresh so the new stop shows on the calendar
1801
			// Confirm to the head (name included so they don't have to read the banner),
-
 
1802
			// then auto-close the parent's iframe modal. The parent's `hidden.bs.modal`
-
 
1803
			// handler reloads the deferred list (rescheduled row drops off).
-
 
1804
			alert(msg);
-
 
1805
			if (window.parent && window.parent !== window) {
-
 
1806
				try {
-
 
1807
					window.parent.$('#defCalModal').modal('hide');
-
 
1808
				} catch (e) {
-
 
1809
				}
-
 
1810
			}
1800
		},
1811
		},
1801
		error: function (xhr) {
1812
		error: function (xhr) {
1802
			var msg = 'Failed';
1813
			var msg = 'Failed';
1803
			try {
1814
			try {
1804
				var err = JSON.parse(xhr.responseText);
1815
				var err = JSON.parse(xhr.responseText);
Line 2461... Line 2472...
2461
function fmtDate(d) {
2472
function fmtDate(d) {
2462
	return d.getFullYear() + '-' + ('0' + (d.getMonth() + 1)).slice(-2) + '-' + ('0' + d.getDate()).slice(-2);
2473
	return d.getFullYear() + '-' + ('0' + (d.getMonth() + 1)).slice(-2) + '-' + ('0' + d.getDate()).slice(-2);
2463
}
2474
}
2464
 
2475
 
2465
function fitBounds() {
2476
function fitBounds() {
2466
	if (Object.keys(markers).length > 0) {
-
 
2467
		var b = new google.maps.LatLngBounds();
2477
	var b = new google.maps.LatLngBounds();
-
 
2478
	var any = false;
-
 
2479
	if (homeMarker) {
2468
		if (homeMarker) b.extend(homeMarker.getPosition());
2480
		b.extend(homeMarker.getPosition());
-
 
2481
		any = true;
-
 
2482
	}
-
 
2483
 
-
 
2484
	// Prefer the current route's stops — the unselected partners on the map can
-
 
2485
	// span a much wider area than the actual planned visits, which would zoom
-
 
2486
	// the camera all the way out. We want focus on the route the user is viewing.
-
 
2487
	try {
-
 
2488
		var day = curDay();
-
 
2489
		if (day && day.visits && day.visits.length > 0) {
-
 
2490
			day.visits.forEach(function (v) {
-
 
2491
				if (v.lat && v.lng) {
-
 
2492
					b.extend(new google.maps.LatLng(parseFloat(v.lat), parseFloat(v.lng)));
-
 
2493
					any = true;
-
 
2494
				}
-
 
2495
			});
-
 
2496
		}
-
 
2497
	} catch (e) {
-
 
2498
	}
-
 
2499
 
-
 
2500
	// No route yet (e.g., still picking partners) → fit all rendered markers.
-
 
2501
	if (!any) {
-
 
2502
		for (var k in markers) {
2469
		for (var k in markers) b.extend(markers[k].getPosition());
2503
			b.extend(markers[k].getPosition());
2470
		map.fitBounds(b);
2504
			any = true;
-
 
2505
		}
2471
	}
2506
	}
-
 
2507
	if (any) map.fitBounds(b);
2472
}
2508
}
2473
 
2509
 
2474
// ============ AUTO-LOAD FROM URL PARAMS ============
2510
// ============ AUTO-LOAD FROM URL PARAMS ============
2475
// When opened with ?autoUserId=X[&autoUserName=Y], skip the user-picker
2511
// When opened with ?autoUserId=X[&autoUserName=Y], skip the user-picker
2476
// dropdowns and load that user's beats directly (and jump to Calendar tab).
2512
// dropdowns and load that user's beats directly (and jump to Calendar tab).