summaryrefslogtreecommitdiff
path: root/framework/Web/Javascripts/base/postback.js
blob: 8b2d522ef5f3abc9e1501d6aec2d8ef0717c9e35 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72

Prado.PostBack = Class.create();

Prado.PostBack.Options = Class.create();

Prado.PostBack.Options.prototype =
{
	initialize : function(performValidation, validationGroup, actionUrl, trackFocus, clientSubmit)
	{
	    this.performValidation = performValidation;
	    this.validationGroup = validationGroup;
	    this.actionUrl = actionUrl;
	    this.trackFocus = trackFocus;
	    this.clientSubmit = clientSubmit;
    }
}

Prado.PostBack.perform = function(formID, eventTarget, eventParameter, options)
{
	var theForm = document.getElementById ? document.getElementById(formID) : document.forms[formID];
	var canSubmit = true;
	if ((typeof(options) != 'undefined') || options == null)
	{
	    if (options.performValidation)
		{
			canSubmit = Prado.Validation.validate(options.validationGroup);
		}
		if (canSubmit)
		{
			if ((typeof(options.actionUrl) != 'undefined') && (options.actionUrl != null) && (options.actionUrl.length > 0))
			{
				theForm.action = options.actionUrl;
			}
			if (options.trackFocus)
			{
				var lastFocus = theForm.elements['PRADO_LASTFOCUS'];
				if ((typeof(lastFocus) != 'undefined') && (lastFocus != null))
				{
					var active = document.activeElement;
					if (typeof(active) == 'undefined')
					{
						lastFocus.value = eventTarget;
					}
					else
					{
						if ((active != null) && (typeof(active.id) != 'undefined'))
						{
							if (active.id.length > 0)
							{
								lastFocus.value = active.id;
							}
							else if (typeof(active.name) != 'undefined')
							{
								lastFocus.value = active.name;
							}
						}
					}
				}
			}
			if (!options.clientSubmit)
			{
				canSubmit = false;
			}
		}
	}
	if (canSubmit && (!theForm.onsubmit || theForm.onsubmit()))
	{
		theForm.PRADO_POSTBACK_TARGET.value = eventTarget;
		theForm.PRADO_POSTBACK_PARAMETER.value = eventParameter;
		theForm.submit();
	}
}