| [ PHPXref.com ] | [ Generated: Sun Jul 20 19:46:00 2008 ] | [ phpMyAdmin 2.9.0.3 ] |
| [ Index ] [ Variables ] [ Functions ] [ Classes ] [ Constants ] [ Statistics ] | ||
[Summary view] [Print] [Text view]
1 /* $Id: tbl_change.js 7886 2005-11-23 19:10:30Z nijel $ */ 2 3 4 /** 5 * Modify from controls when the "NULL" checkbox is selected 6 * 7 * @param string the MySQL field type 8 * @param string the urlencoded field name 9 * @param string the md5 hashed field name 10 * 11 * @return boolean always true 12 */ 13 function nullify(theType, urlField, md5Field, multi_edit) 14 { 15 var rowForm = document.forms['insertForm']; 16 17 if (typeof(rowForm.elements['funcs' + multi_edit + '[' + urlField + ']']) != 'undefined') { 18 rowForm.elements['funcs' + multi_edit + '[' + urlField + ']'].selectedIndex = -1; 19 } 20 21 // "SET" field , "ENUM" field with more than 20 characters 22 // or foreign key field 23 if (theType == 1 || theType == 3 || theType == 4) { 24 rowForm.elements['field_' + md5Field + multi_edit + '[]'].selectedIndex = -1; 25 } 26 // Other "ENUM" field 27 else if (theType == 2) { 28 var elts = rowForm.elements['field_' + md5Field + multi_edit + '[]']; 29 // when there is just one option in ENUM: 30 if (elts.checked) { 31 elts.checked = false; 32 } else { 33 var elts_cnt = elts.length; 34 for (var i = 0; i < elts_cnt; i++ ) { 35 elts[i].checked = false; 36 } // end for 37 38 } // end if 39 } 40 // Other field types 41 else /*if (theType == 5)*/ { 42 rowForm.elements['fields' + multi_edit + '[' + urlField + ']'].value = ''; 43 } // end if... else if... else 44 45 return true; 46 } // end of the 'nullify()' function 47 48 49 /** 50 * Unchecks the "NULL" control when a function has been selected or a value 51 * entered 52 * 53 * @param string the urlencoded field name 54 * 55 * @return boolean always true 56 */ 57 function unNullify(urlField, multi_edit) 58 { 59 var rowForm = document.forms['insertForm']; 60 61 if (typeof(rowForm.elements['fields_null[multi_edit][' + multi_edit + '][' + urlField + ']']) != 'undefined') { 62 rowForm.elements['fields_null[multi_edit][' + multi_edit + '][' + urlField + ']'].checked = false 63 } // end if 64 65 if (typeof(rowForm.elements['insert_ignore_' + multi_edit]) != 'undefined') { 66 rowForm.elements['insert_ignore_' + multi_edit].checked = false 67 } // end if 68 69 return true; 70 } // end of the 'unNullify()' function 71 72 var day; 73 var month; 74 var year; 75 var hour; 76 var minute; 77 var second; 78 var clock_set = 0; 79 80 /** 81 * Opens calendar window. 82 * 83 * @param string calendar.php parameters 84 * @param string form name 85 * @param string field name 86 * @param string edit type - date/timestamp 87 */ 88 function openCalendar(params, form, field, type) { 89 window.open("./calendar.php?" + params, "calendar", "width=400,height=200,status=yes"); 90 dateField = eval("document." + form + "." + field); 91 dateType = type; 92 } 93 94 /** 95 * Formats number to two digits. 96 * 97 * @param int number to format. 98 * @param string type of number 99 */ 100 function formatNum2(i, valtype) { 101 f = (i < 10 ? '0' : '') + i; 102 if (valtype && valtype != '') { 103 switch(valtype) { 104 case 'month': 105 f = (f > 12 ? 12 : f); 106 break; 107 108 case 'day': 109 f = (f > 31 ? 31 : f); 110 break; 111 112 case 'hour': 113 f = (f > 24 ? 24 : f); 114 break; 115 116 default: 117 case 'second': 118 case 'minute': 119 f = (f > 59 ? 59 : f); 120 break; 121 } 122 } 123 124 return f; 125 } 126 127 /** 128 * Formats number to two digits. 129 * 130 * @param int number to format. 131 * @param int default value 132 * @param string type of number 133 */ 134 function formatNum2d(i, default_v, valtype) { 135 i = parseInt(i, 10); 136 if (isNaN(i)) return default_v; 137 return formatNum2(i, valtype) 138 } 139 140 /** 141 * Formats number to four digits. 142 * 143 * @param int number to format. 144 */ 145 function formatNum4(i) { 146 i = parseInt(i, 10) 147 return (i < 1000 ? i < 100 ? i < 10 ? '000' : '00' : '0' : '') + i; 148 } 149 150 /** 151 * Initializes calendar window. 152 */ 153 function initCalendar() { 154 if (!year && !month && !day) { 155 /* Called for first time */ 156 if (window.opener.dateField.value) { 157 value = window.opener.dateField.value; 158 if (window.opener.dateType == 'datetime' || window.opener.dateType == 'date') { 159 if (window.opener.dateType == 'datetime') { 160 parts = value.split(' '); 161 value = parts[0]; 162 163 if (parts[1]) { 164 time = parts[1].split(':'); 165 hour = parseInt(time[0],10); 166 minute = parseInt(time[1],10); 167 second = parseInt(time[2],10); 168 } 169 } 170 date = value.split("-"); 171 day = parseInt(date[2],10); 172 month = parseInt(date[1],10) - 1; 173 year = parseInt(date[0],10); 174 } else { 175 year = parseInt(value.substr(0,4),10); 176 month = parseInt(value.substr(4,2),10) - 1; 177 day = parseInt(value.substr(6,2),10); 178 hour = parseInt(value.substr(8,2),10); 179 minute = parseInt(value.substr(10,2),10); 180 second = parseInt(value.substr(12,2),10); 181 } 182 } 183 if (isNaN(year) || isNaN(month) || isNaN(day) || day == 0) { 184 dt = new Date(); 185 year = dt.getFullYear(); 186 month = dt.getMonth(); 187 day = dt.getDate(); 188 } 189 if (isNaN(hour) || isNaN(minute) || isNaN(second)) { 190 dt = new Date(); 191 hour = dt.getHours(); 192 minute = dt.getMinutes(); 193 second = dt.getSeconds(); 194 } 195 } else { 196 /* Moving in calendar */ 197 if (month > 11) { 198 month = 0; 199 year++; 200 } 201 if (month < 0) { 202 month = 11; 203 year--; 204 } 205 } 206 207 if (document.getElementById) { 208 cnt = document.getElementById("calendar_data"); 209 } else if (document.all) { 210 cnt = document.all["calendar_data"]; 211 } 212 213 cnt.innerHTML = ""; 214 215 str = "" 216 217 //heading table 218 str += '<table class="calendar"><tr><th width="50%">'; 219 str += '<form method="NONE" onsubmit="return 0">'; 220 str += '<a href="javascript:month--; initCalendar();">«</a> '; 221 str += '<select id="select_month" name="monthsel" onchange="month = parseInt(document.getElementById(\'select_month\').value); initCalendar();">'; 222 for (i =0; i < 12; i++) { 223 if (i == month) selected = ' selected="selected"'; 224 else selected = ''; 225 str += '<option value="' + i + '" ' + selected + '>' + month_names[i] + '</option>'; 226 } 227 str += '</select>'; 228 str += ' <a href="javascript:month++; initCalendar();">»</a>'; 229 str += '</form>'; 230 str += '</th><th width="50%">'; 231 str += '<form method="NONE" onsubmit="return 0">'; 232 str += '<a href="javascript:year--; initCalendar();">«</a> '; 233 str += '<select id="select_year" name="yearsel" onchange="year = parseInt(document.getElementById(\'select_year\').value); initCalendar();">'; 234 for (i = year - 25; i < year + 25; i++) { 235 if (i == year) selected = ' selected="selected"'; 236 else selected = ''; 237 str += '<option value="' + i + '" ' + selected + '>' + i + '</option>'; 238 } 239 str += '</select>'; 240 str += ' <a href="javascript:year++; initCalendar();">»</a>'; 241 str += '</form>'; 242 str += '</th></tr></table>'; 243 244 str += '<table class="calendar"><tr>'; 245 for (i = 0; i < 7; i++) { 246 str += "<th>" + day_names[i] + "</th>"; 247 } 248 str += "</tr>"; 249 250 var firstDay = new Date(year, month, 1).getDay(); 251 var lastDay = new Date(year, month + 1, 0).getDate(); 252 253 str += "<tr>"; 254 255 dayInWeek = 0; 256 for (i = 0; i < firstDay; i++) { 257 str += "<td> </td>"; 258 dayInWeek++; 259 } 260 for (i = 1; i <= lastDay; i++) { 261 if (dayInWeek == 7) { 262 str += "</tr><tr>"; 263 dayInWeek = 0; 264 } 265 266 dispmonth = 1 + month; 267 268 if (window.opener.dateType == 'datetime' || window.opener.dateType == 'date') { 269 actVal = "" + formatNum4(year) + "-" + formatNum2(dispmonth, 'month') + "-" + formatNum2(i, 'day'); 270 } else { 271 actVal = "" + formatNum4(year) + formatNum2(dispmonth, 'month') + formatNum2(i, 'day'); 272 } 273 if (i == day) { 274 style = ' class="selected"'; 275 current_date = actVal; 276 } else { 277 style = ''; 278 } 279 str += "<td" + style + "><a href=\"javascript:returnDate('" + actVal + "');\">" + i + "</a></td>" 280 dayInWeek++; 281 } 282 for (i = dayInWeek; i < 7; i++) { 283 str += "<td> </td>"; 284 } 285 286 str += "</tr></table>"; 287 288 cnt.innerHTML = str; 289 290 // Should we handle time also? 291 if (window.opener.dateType != 'date' && !clock_set) { 292 293 if (document.getElementById) { 294 cnt = document.getElementById("clock_data"); 295 } else if (document.all) { 296 cnt = document.all["clock_data"]; 297 } 298 299 str = ''; 300 init_hour = hour; 301 init_minute = minute; 302 init_second = second; 303 str += '<form method="NONE" class="clock" onsubmit="returnDate(\'' + current_date + '\')">'; 304 str += '<input id="hour" type="text" size="2" maxlength="2" onblur="this.value=formatNum2d(this.value, init_hour, \'hour\'); init_hour = this.value;" value="' + formatNum2(hour, 'hour') + '" />:'; 305 str += '<input id="minute" type="text" size="2" maxlength="2" onblur="this.value=formatNum2d(this.value, init_minute, \'minute\'); init_minute = this.value;" value="' + formatNum2(minute, 'minute') + '" />:'; 306 str += '<input id="second" type="text" size="2" maxlength="2" onblur="this.value=formatNum2d(this.value, init_second, \'second\'); init_second = this.value;" value="' + formatNum2(second, 'second') + '" />'; 307 str += '<br />'; 308 str += '<input type="submit" value="' + submit_text + '"/>'; 309 str += '</form>'; 310 311 cnt.innerHTML = str; 312 clock_set = 1; 313 } 314 315 } 316 317 /** 318 * Returns date from calendar. 319 * 320 * @param string date text 321 */ 322 function returnDate(d) { 323 txt = d; 324 if (window.opener.dateType != 'date') { 325 // need to get time 326 h = parseInt(document.getElementById('hour').value,10); 327 m = parseInt(document.getElementById('minute').value,10); 328 s = parseInt(document.getElementById('second').value,10); 329 if (window.opener.dateType == 'datetime') { 330 txt += ' ' + formatNum2(h, 'hour') + ':' + formatNum2(m, 'minute') + ':' + formatNum2(s, 'second'); 331 } else { 332 // timestamp 333 txt += formatNum2(h, 'hour') + formatNum2(m, 'minute') + formatNum2(s, 'second'); 334 } 335 } 336 337 window.opener.dateField.value = txt; 338 window.close(); 339 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| [ Powered by PHPXref - Served by Debian GNU/Linux ] |