Page MenuHomeIn-Portal Phabricator

in-portal
No OneTemporary

File Metadata

Created
Thu, Apr 17, 5:06 PM

in-portal

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