Page Menu
Home
In-Portal Phabricator
Search
Configure Global Search
Log In
Files
F846985
in-portal
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
Thu, Apr 17, 5:06 PM
Size
8 KB
Mime Type
text/x-diff
Expires
Sat, Apr 19, 5:06 PM (4 h, 34 m)
Engine
blob
Format
Raw Data
Handle
601873
Attached To
rINP In-Portal
in-portal
View Options
Index: branches/unlabeled/unlabeled-1.11.50/admin/include/tabs.js
===================================================================
--- branches/unlabeled/unlabeled-1.11.50/admin/include/tabs.js (nonexistent)
+++ branches/unlabeled/unlabeled-1.11.50/admin/include/tabs.js (revision 1567)
@@ -0,0 +1,285 @@
+//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+')';
+}
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.11.50/admin/include/tabs.js
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.11
\ No newline at end of property
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Event Timeline
Log In to Comment