Page Menu
Home
In-Portal Phabricator
Search
Configure Global Search
Log In
Files
F1374773
tabs.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sun, Feb 1, 4:11 AM
Size
7 KB
Mime Type
text/plain
Expires
Tue, Feb 3, 4:11 AM (1 d, 9 h)
Engine
blob
Format
Raw Data
Handle
884051
Attached To
rINP In-Portal
tabs.js
View Options
//parses input tags looking for validation attributes
function
DataIsValid
(
f
)
{
var
ValType
=
''
;
var
span_id
=
''
;
var
form_result
=
true
;
var
field_result
=
true
;
var
j
=
0
;
for
(
var
i
=
0
;
i
<
f
.
elements
.
length
;
i
++
)
{
ValType
=
''
;
Field
=
f
.
elements
[
i
];
ValType
=
Field
.
getAttribute
(
'ValidationType'
);
if
(
ValType
)
{
ValType
=
TransformValidationType
(
ValType
);
// for capability with old forms
span_id
=
'prompt_'
+
Field
.
name
;
span
=
document
.
getElementById
(
span_id
);
if
(
span
)
{
field_result
=
true
;
ValType
=
ValType
.
split
(
','
);
j
=
0
;
while
(
j
<
ValType
.
length
)
{
//alert('Validating ['+Field.name+'] as ['+ValType[j]+']');
if
(
ValType
[
j
]
==
'password'
)
{
var
repasswd
=
document
.
getElementById
(
Field
.
name
+
'_verify'
);
if
(
repasswd
)
{
field_result
&=
ValidateField
(
Field
.
value
,
ValType
[
j
],
repasswd
.
value
);
document
.
getElementById
(
'prompt_'
+
Field
.
name
+
'_verify'
).
className
=
field_result
?
'text'
:
'validation_error'
;
}
}
else
field_result
&=
ValidateField
(
Field
.
value
,
ValType
[
j
]);
j
++
;
}
span
.
className
=
field_result
?
'text'
:
'validation_error'
;
form_result
&=
field_result
;
}
}
}
return
form_result
;
}
function
TransformValidationType
(
OldType
)
{
// replace old validation types with new
// on the fly in case if we have some forms
// that still use old validation types
var
NewType
=
''
;
switch
(
OldType
)
{
case
'optional_date'
:
NewType
=
'date'
;
break
;
default
:
NewType
=
OldType
;
break
;
}
return
NewType
;
}
function
ValidateField
(
FieldValue
,
ValidateAs
,
RePasswdValue
)
{
// validate FieldValue based on ValidateAs rule specified;
// in case if password field compare it with RePasswdValue
var
result
=
true
;
switch
(
ValidateAs
)
{
case
'exists'
:
// field is required
if
(
FieldValue
.
length
==
0
)
result
=
false
;
break
;
case
'integer'
:
// field must be integer number
result
=
ValidateNumber
(
FieldValue
,
ValidateAs
);
break
;
case
'password'
:
// validate as password field
result
=
(
FieldValue
==
RePasswdValue
)
||
(
FieldValue
.
length
==
0
);
break
;
case
'date'
:
// text must be a formatted date
result
=
ValidDate
(
FieldValue
);
break
;
case
'time'
:
// text must be a formatted time
result
=
ValidTime
(
FieldValue
);
break
;
case
'custom_name'
:
result
=
ValidCustomName
(
FieldValue
);
break
;
case
'theme_name'
:
result
=
ValidThemeName
(
FieldValue
);
break
;
}
return
result
;
}
function
MarkAsRequired
(
f
)
{
var
ValType
=
''
;
var
span_id
=
''
;
var
result
=
true
;
for
(
var
i
=
0
;
i
<
f
.
elements
.
length
;
i
++
)
{
ValType
=
''
;
Field
=
f
.
elements
[
i
];
ValType
=
Field
.
getAttribute
(
'ValidationType'
);
if
(
ValType
)
{
ValType
=
ValType
.
split
(
','
);
if
(
InArray
(
ValType
,
'exists'
)
!==
false
)
{
span_id
=
'prompt_'
+
Field
.
name
;
span
=
document
.
getElementById
(
span_id
);
span
.
innerHTML
=
span
.
innerHTML
+
'<span class="error">*</span>'
;
}
}
}
}
function
InArray
(
aArray
,
aValue
)
{
// checks if element in array
var
k
=
0
;
while
(
k
<
aArray
.
length
)
{
if
(
aArray
[
k
]
==
aValue
)
return
k
;
k
++
;
}
return
false
;
}
//Used to submit the form when a tab is clicked on
function
edit_submit
(
formname
,
status_field
,
targetURL
,
save_value
,
env_str
,
new_target
)
{
var
full_env
=
env
;
if
(
HasParam
(
env_str
)
)
full_env
+=
env_str
;
if
(
full_env
.
substr
(
0
,
3
)
!=
"env"
)
full_env
=
'env='
+
full_env
;
f
=
document
.
getElementById
(
formname
);
if
(
f
)
{
var
valid
=
false
;
if
(
save_value
!=
2
&&
save_value
!=-
1
)
{
valid
=
DataIsValid
(
f
);
}
else
{
var
a
=
f
.
Action
;
if
(
a
)
{
a
.
value
=
''
;
}
}
if
(
valid
||
save_value
==
2
||
save_value
==-
1
)
{
var
URLPrefix
=
''
;
if
(
targetURL
.
substring
(
0
,
rootURL
.
length
)
!=
rootURL
)
URLPrefix
=
rootURL
;
f
.
action
=
URLPrefix
+
targetURL
;
if
(
!
f
.
action
.
match
(
'(.*)?env=(.*)'
)
)
f
.
action
+=
'?'
+
full_env
;
if
(
status_field
.
length
>
0
)
{
f
.
elements
[
status_field
].
value
=
save_value
;
//0= stay in temp, 1=save to perm, 2 = purge no save
}
if
(
new_target
!=
null
&&
typeof
(
new_target
)
!=
'undefined'
)
f
.
target
=
new_target
;
f
.
submit
();
}
else
if
(
!
valid
)
alert
(
ErrorMsg
);
}
else
{
alert
(
'Form '
+
formname
+
' was not found.'
);
}
}
//Used when the save or cancel buttin is hit
function
do_edit_save
(
formname
,
status_field
,
targetURL
,
save_value
,
env_str
)
{
var
full_env
=
env
;
if
(
HasParam
(
env_str
)
)
full_env
+=
env_str
;
if
(
full_env
.
substr
(
0
,
3
)
!=
"env"
)
full_env
=
'env='
+
full_env
;
f
=
document
.
getElementById
(
formname
);
if
(
f
)
{
f
.
action
=
rootURL
+
targetURL
;
if
(
!
f
.
action
.
match
(
'(.*)?env=(.*)'
)
)
f
.
action
+=
'?'
+
full_env
;
//alert(f.action);
if
(
status_field
.
length
>
0
)
{
f
.
elements
[
status_field
].
value
=
save_value
;
//0= stay in temp, 1=save to perm, 2 = purge no save
}
f
.
submit
();
}
else
alert
(
'Form '
+
formname
+
' was not found.'
);
}
function
jump_to_url
(
targetURL
,
env_str
)
{
var
full_env
=
env
;
if
(
HasParam
(
env_str
)
)
full_env
+=
env_str
;
if
(
full_env
.
substr
(
0
,
3
)
!=
"env"
)
full_env
=
'env='
+
full_env
;
document
.
location
=
rootURL
+
targetURL
+
'?'
+
full_env
;
}
// -------------------------------------------------------------------------------------------------------------
function
submit_form
(
formname
,
status_field
,
targetURL
,
save_value
,
env_str
)
{
// by Alex, submits form.
var
full_env
=
env
;
if
(
HasParam
(
env_str
)
)
full_env
+=
env_str
;
if
(
full_env
.
substr
(
0
,
3
)
!=
"env"
)
full_env
=
'env='
+
full_env
;
f
=
document
.
getElementById
(
formname
);
if
(
f
)
{
var
valid
=
false
;
if
(
save_value
!=
2
&&
save_value
!=-
1
)
{
valid
=
DataIsValid
(
f
);
}
else
{
var
a
=
f
.
Action
;
if
(
a
)
{
a
.
value
=
''
;
}
}
if
(
valid
||
save_value
==
2
||
save_value
==-
1
)
{
f
.
action
=
rootURL
+
targetURL
+
'?'
+
full_env
;
if
(
status_field
.
length
>
0
)
{
f
.
elements
[
status_field
].
value
=
save_value
;
//0= stay in temp, 1=save to perm, 2 = purge no save
}
f
.
submit
();
}
else
if
(
!
valid
)
alert
(
ErrorMsg
);
}
else
alert
(
'Form '
+
formname
+
' was not found.'
);
}
function
HasParam
(
param
)
{
// checks of parameter is passed to function (cross-browser)
return
typeof
(
param
)
==
'undefined'
?
false
:
true
;
}
function
SetBackground
(
element_id
,
img_url
)
{
// set background image of element specified by id
var
el
=
document
.
getElementById
(
element_id
);
el
.
style
.
backgroundImage
=
'url('
+
img_url
+
')'
;
}
Event Timeline
Log In to Comment