Page MenuHomeIn-Portal Phabricator

in-portal
No OneTemporary

File Metadata

Created
Sat, Aug 16, 1:39 PM

in-portal

Index: branches/unlabeled/unlabeled-1.1.2/core/admin_templates/js/forms.js
===================================================================
--- branches/unlabeled/unlabeled-1.1.2/core/admin_templates/js/forms.js (revision 7736)
+++ branches/unlabeled/unlabeled-1.1.2/core/admin_templates/js/forms.js (revision 7737)
@@ -1,141 +1,134 @@
var last_shown_error = false;
var errors = new Object();
var first_error = new Object();
var fields = new Object();
function show_form_error(prefix, field, sticky)
{
if (isset(errors[prefix]) && isset(errors[prefix][field])) {
span = document.getElementById('error_msg_'+prefix);
span.innerHTML = fields[prefix][field] + ' - ' + errors[prefix][field];
if (sticky) last_shown_error = field;
}
}
function hide_form_error(prefix)
{
span = document.getElementById('error_msg_'+prefix);
if (!span) return;
span.innerHTML = '<br/>';
if (typeof(last_shown_error) != 'undefined' && last_shown_error) {
show_form_error(prefix, last_shown_error);
}
}
function add_form_error(prefix, field, element, error_msg) {
if (error_msg != '') {
if (typeof(errors[prefix]) == 'undefined') {
errors[prefix] = new Object();
}
errors[prefix][field] = error_msg;
addEvent(document.getElementById(element), 'focus', function() {
show_form_error(prefix, field, true)
} );
addEvent(document.getElementById(element), 'blur', function() {last_shown_error = false} )
if (typeof(first_error[prefix]) == 'undefined' || first_error[prefix] == false) {
first_error[prefix] = [field, element];
}
}
}
function Form() {}
Form = new Form();
Form.Controls = new Array();
Form.Div = false;
Form.MinControlsHeight = 0;
Form.Coeffs = new Object();
Form.ScrollerW = 17;
Form.ScrollerH = 17;
Form.Wrap = true;
Form.Init = function(id)
{
this.Div = document.getElementById(id);
+ for (var i in this.Controls) {
+ dim = getDimensions(document.getElementById(this.Controls[i]));
+ this.MinControlsHeight += dim.innerHeight;
+// alert('adding element '+this.Controls[i]+' height: '+dim.innerHeight+' total: '+this.MinControlsHeight)
+ }
+
document.body.style.height = '100%';
document.body.style.overflow = 'hidden';
document.body.scroll = 'no'
- if (this.Wrap) {
- o += '<div style="position: relative; overflow: auto; width: 100%; height: 100%;">';
- o += this.Div.innerHTML + '</div><script type="text/javascript">Form.Resize()</script>';
- el.innerHTML = o;
- }
+ var a_div = document.createElement('DIV');
+ a_div.style.position = 'relative';
+ a_div.style.overflow = 'auto';
+ a_div.style.width = '100%';
+ a_div.style.height = '100%';
+
+ a_div.appendChild(el.parentNode.replaceChild(a_div, el))
this.Table = this.Div.getElementsByTagName('table')[0];
this.Table.style.height = 'auto';
this.MinHeight = this.Table.offsetHeight;
this.MinWidth = this.Table.offsetWidth;
- //we need to init form BEFORE executing JS, becasue JS adds controls to Form object
- if (this.Wrap) {
- execJS(el)
- }
- else {
- this.Resize()
- }
-
addEvent(window, 'resize', function() {Form.Resize()})
- if (is.ie) {
- this.Resize()
- };
+ this.Resize()
if (isset(first_error)) {
for (var i in first_error) {
if (first_error[i] != false) {
document.getElementById(first_error[i][1]).focus();
show_form_error(i, first_error[i][0], true);
// alert('focused on '+first_error[i][1])
}
}
}
}
Form.addControl = function(id, coeff) {
- if (this.Wrap && !this.Div) return;
-
this.Controls.push(id);
- this.Coeffs[id] = coeff ? coeff : 1;
- dim = getDimensions(document.getElementById(id));
- this.MinControlsHeight += dim.innerHeight;
-// alert('adding element '+id+' height: '+dim.innerHeight+' total: '+this.MinControlsHeight)
+ this.Coeffs[id] = coeff ? coeff : 1; // for future use
}
Form.Resize = function()
{
var h = (document.all ? window.document.body.offsetHeight : window.innerHeight);
var pos = findPos(el);
var dim = getDimensions(this.Div);
h -= pos[1] + dim.padding[0] + dim.padding[2] + dim.borders[0] + dim.borders[2];
var w = (document.all ? window.document.body.offsetWidth : window.innerWidth);
w -= pos[0] + dim.padding[1] + dim.padding[3] + dim.borders[1] + dim.borders[3];
scroller_height = this.MinWidth >= w ? this.ScrollerH : 0;
scroller_width = this.MinHeight >= h - scroller_height ? this.ScrollerW : 0;
scroller_height = this.MinWidth >= w - scroller_width ? this.ScrollerH : 0;
// alert('resize: '+w+'x'+h)
this.Table.style.width = (w-scroller_width) + 'px';
this.Div.style.width = (w)+'px';
this.Div.style.height = (h)+'px';
var count = this.Controls.length;
// -count here is adjustment - 1px for each control
var split = h - count - this.MinHeight + this.MinControlsHeight;
if (split < this.MinControlsHeight) split = this.MinControlsHeight;
var new_height = Math.round(split / count) -2;
// alert('h is: '+h+' min height is '+this.MinHeight+' MinControlsHeight is '+this.MinControlsHeight+' -> '+split+' to split between '+count+' new height is '+new_height);
// print_pre(this.Controls)
for (var i in this.Controls) {
document.getElementById(this.Controls[i]).style.height = new_height + 'px';
}
}
Property changes on: branches/unlabeled/unlabeled-1.1.2/core/admin_templates/js/forms.js
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.2.2
\ No newline at end of property
+1.1.2.3
\ No newline at end of property

Event Timeline