1jQuery(document).ready(function(){ 2 3 var responsiveWidthPhone = 320; 4 5 var formUserDataEdit = jQuery('form[name="userDataEdit"]'); 6 var formCompanyDescriptionEdit = jQuery('form[name="companyDescriptionEdit"]'); 7 var formCompanyDataEdit = jQuery('form[name="companyDataEdit"]'); 8 var formCreateEmployee = jQuery('form[name="createEmployee"]'); 9 10 var editButtonUserData = jQuery('.edit.userData',formUserDataEdit); 11 var editButtonPassword = jQuery('.edit.password',formUserDataEdit); 12 13 var editButtonCompanyDescription = jQuery('.edit.companyDescription',formCompanyDescriptionEdit); 14 var editButtonCompanyData = jQuery('.edit.companyData',formCompanyDataEdit); 15 16 var editButtonSubCompanyData = jQuery('.edit.subCompanyData'); 17 var createButtonSubCompanyData = jQuery('.create.subCompanyData'); 18 var deleteButtonSubCompany = jQuery('.delete.subCompanyData'); 19 20 var selectSubCompanyLogoMode = jQuery('select[name="inheritLogo"]'); 21 22 var editButtonEmployeeData = jQuery('.edit.employeeData'); 23 var createButtonEmployee = jQuery('.create.employeeData'); 24 var deleteButtonEmployee = jQuery('.delete.employeeData'); 25 var saveButtonEmployee = jQuery('.save',formCreateEmployee); 26 27 var searchEmployeesInput = jQuery('input[name="searchEmployee"]'); 28 29 var loginButton = jQuery('a[name="Login"]'); 30 var logoutButton = jQuery('a.logout'); 31 32 logoutButton.click(function(e){ 33 e.preventDefault(); 34 var curUrl = window.location.href; 35 logoutUser(curUrl); 36 }); 37 38 39 loginButton.click(function(e){ 40 e.preventDefault(); 41 loginButton_onClick(jQuery(this),''); 42 }); 43 44 loginButton.keypress(function(e){ 45 e.preventDefault(); 46 if ( event.which == 13 ) { 47 loginButton_onClick(jQuery(this),''); 48 } 49 }); 50 51 searchEmployeesInput.keyup(function(){ 52 searchEmployeeList(jQuery(this)); 53 }); 54 55 editButtonUserData.click(function(){ 56 editButtonUserData_onClick(jQuery(this)); 57 }); 58 59 editButtonPassword.click(function(){ 60 editButtonPassword_onClick(jQuery(this)); 61 }); 62 63 createButtonSubCompanyData.click(function(){ 64 createButtonSubCompanyData_onClick(jQuery(this)); 65 }); 66 67 editButtonSubCompanyData.click(function(){ 68 editButtonSubCompanyData_onClick(jQuery(this)); 69 }); 70 71 deleteButtonSubCompany.click(function(){ 72 deleteButtonSubCompany_onClick(jQuery(this)); 73 }); 74 75 editButtonCompanyDescription.click(function(){ 76 editButtonCompanyDescription_onClick(jQuery(this)); 77 }); 78 79 editButtonCompanyData.click(function(){ 80 editButtonCompanyData_onClick(jQuery(this)); 81 }); 82 83 editButtonEmployeeData.click(function(){ 84 editButtonEmployeeData_onClick(jQuery(this)); 85 }); 86 87 deleteButtonEmployee.click(function(){ 88 deleteButtonEmployee_onClick(jQuery(this)); 89 }); 90 91 createButtonEmployee.click(function(){ 92 createButtonEmployee_onClick(jQuery(this)); 93 }); 94 95 saveButtonEmployee.click(function(){ 96 saveButton_onClick(jQuery(this)); 97 }); 98 99 selectSubCompanyLogoMode.change(function () { 100 selectSubCompanyLogoMode_onChange(jQuery(this)); 101 }); 102 103 104 var currentURL = window.location.href; 105 106 var statusParameter = getURLParameter('status'); 107 if(statusParameter != null){ 108 callActionStatus(statusParameter); 109 } 110 111 if(jQuery('ul.navLevel1Container').attr('data-shownavlevel') !== 'showLevel2'){ 112 jQuery('#blockTop').addClass('borderBottom'); 113 } 114 115// *************************************************************************** 116// editButtonCompanyDescription_onClick 117// *************************************************************************** 118 119 function editButtonCompanyDescription_onClick(obj){ 120 formCompanyDescriptionEdit.addClass('editable'); 121 122 var formUserDataInputFields = formCompanyDescriptionEdit.find('textarea'); 123 formUserDataInputFields.each(function(){ 124 var curField = jQuery(this); 125 curField.removeAttr('readonly').removeClass('inactive'); 126 127 curField.on('keyup',function (e) { 128 var currentValue = curField.val(); 129 var currentStringLength = currentValue.length; 130 if(currentStringLength > 500){ 131 jQuery('.infoMaxChars').show(); 132 } else { 133 jQuery('.infoMaxChars').hide(); 134 } 135 }); 136 137 }); 138 139 140 141 var saveButton = jQuery('.functions.save',formCompanyDescriptionEdit); 142 var cancelButton = jQuery('.functions.cancel',formCompanyDescriptionEdit); 143 144 cancelButton.click(function(){ 145 cancelButton_onClick(jQuery(this)); 146 }); 147 148 saveButton.click(function(e){ 149 e.preventDefault(); 150 saveButton_onClick(jQuery(this),true); 151 }); 152 153 } 154 155// *************************************************************************** 156// editButtonUserData_onClick 157// *************************************************************************** 158 159 function editButtonCompanyData_onClick(obj){ 160 formCompanyDataEdit.addClass('editable'); 161 162 var formUserDataInputFields = formCompanyDataEdit.find('input'); 163 formUserDataInputFields.each(function(){ 164 var curField = jQuery(this); 165 curField.removeAttr('readonly').removeClass('inactive'); 166 }); 167 168 var saveButton = jQuery('.functions.save',formCompanyDataEdit); 169 var cancelButton = jQuery('.functions.cancel',formCompanyDataEdit); 170 171 cancelButton.click(function(){ 172 cancelButton_onClick(jQuery(this),true); 173 }); 174 175 saveButton.click(function(e){ 176 e.preventDefault(); 177 saveButton_onClick(jQuery(this)); 178 }); 179 180 } 181 182// *************************************************************************** 183// editButtonUserData_onClick 184// *************************************************************************** 185 186 function editButtonUserData_onClick(obj){ 187 formUserDataEdit.addClass('editable'); 188 189 var fieldBirthdayPersonalData = jQuery('input[name="birthdate"]'); 190 fieldBirthdayPersonalData.attr('placeholder','dd.mm.yyyy'); 191 192 var formUserDataInputFields = formUserDataEdit.find('input'); 193 formUserDataInputFields.each(function(){ 194 var curField = jQuery(this); 195 curField.removeAttr('readonly').removeClass('inactive'); 196 }); 197 198 var saveButton = jQuery('.functions.save',formUserDataEdit); 199 var cancelButton = jQuery('.functions.cancel',formUserDataEdit); 200 201 cancelButton.click(function(){ 202 cancelButton_onClick(jQuery(this),true); 203 }); 204 205 saveButton.click(function(e){ 206 e.preventDefault(); 207 saveButton_onClick(jQuery(this)); 208 }); 209 210 } 211
212 // *************************************************************************** 213// editButtonUserData_onClick 214// *************************************************************************** 215 216 function editButtonSubCompanyData_onClick(obj){ 217 var parentForm = obj.closest('form'); 218 parentForm.addClass('editable'); 219 220 var formUserDataInputFields = parentForm.find('input'); 221 formUserDataInputFields.each(function(){ 222 var curField = jQuery(this); 223 curField.removeAttr('readonly').removeClass('inactive'); 224 }); 225 226 var saveButton = jQuery('.functions.save',parentForm); 227 var cancelButton = jQuery('.functions.cancel',parentForm); 228 229 cancelButton.click(function(){ 230 cancelButton_onClick(jQuery(this),true); 231 }); 232 233 saveButton.click(function(e){ 234 e.preventDefault(); 235 saveButton_onClick(jQuery(this)); 236 }); 237 238 } 239 240 241 // *************************************************************************** 242// editButtonEmployeeData_onClick 243// *************************************************************************** 244 245 function editButtonEmployeeData_onClick(obj){ 246 var parentForm = obj.closest('form'); 247 parentForm.addClass('editable'); 248 249 var formUserDataInputFields = parentForm.find('input'); 250 formUserDataInputFields.each(function(){ 251 var curField = jQuery(this); 252 curField.removeAttr('readonly').removeClass('inactive'); 253 }); 254 255 var saveButton = jQuery('.functions.save',parentForm); 256 var cancelButton = jQuery('.functions.cancel',parentForm); 257 258 cancelButton.click(function(){ 259 cancelButton_onClick(jQuery(this),true); 260 }); 261 262 saveButton.click(function(e){ 263 e.preventDefault(); 264 saveButton_onClick(jQuery(this)); 265 }); 266 267 } 268 269 270// *************************************************************************** 271// deleteButtonEmployee_onClick 272// *************************************************************************** 273 274 function deleteButtonEmployee_onClick(obj){ 275 var parentForm = obj.closest('form'); 276 var employeeID = parentForm.find('input[name="employeeID"]').val(); 277 var projectPath = wProjectPath; 278 279 jQuery.post( "/c4b-global/partnerportal/scripts/employeeDelete.php", { action: 'deleteEmployee', employeeID: employeeID, projectPath: projectPath}) 280 .done(function( data ) { 281 showOverlay(data); 282 }); 283 284 } 285 286// *************************************************************************** 287// createButtonEmployee_onClick 288// *************************************************************************** 289 290 function createButtonEmployee_onClick(obj){ 291 window.location.href = obj.attr('data-urlcreateemployee'); 292 } 293 294 295 296// *************************************************************************** 297// deleteButtonSubCompany_onClick 298// *************************************************************************** 299 300 function deleteButtonSubCompany_onClick(obj){ 301 var parentForm = obj.closest('form'); 302 var companyID = parentForm.find('input[name="curSubCompany"]').val(); 303 var projectPath = wProjectPath; 304 305 jQuery.post( "/c4b-global/partnerportal/scripts/companyDelete.php", { action: 'deleteCompany', companyID: companyID, projectPath: projectPath }) 306 .done(function( data ) { 307 console.log(data); 308 showOverlay(data); 309 }); 310 311 } 312 313 314 315// *************************************************************************** 316// editButtonUserData_onClick 317// *************************************************************************** 318 319 function createButtonSubCompanyData_onClick(obj){ 320 var subCompanyDataArea = jQuery('.subCompanyDataArea'); 321 322 var projectPath = wProjectPath; 323 324 jQuery.post( "/c4b-global/partnerportal/scripts/subCompanyCreate.php", { action: 'subCompanyCreate', projectPath: projectPath }) 325 .done(function( data ) { 326 var dataObj = jQuery(data); 327 subCompanyDataArea.append( dataObj ); 328 var parentForm = dataObj.find('form'); 329 parentForm.addClass('editable'); 330 331 jQuery('html, body').animate({ 332 scrollTop: dataObj.offset().top - 300 333 }, 500); 334 335 var saveButton = jQuery('.functions.save',parentForm); 336 var cancelButton = jQuery('.functions.cancel',parentForm); 337 338 cancelButton.click(function(){ 339 cancelButton_onClick(jQuery(this),true); 340 }); 341 342 saveButton.click(function(e){ 343 e.preventDefault(); 344 saveButton_onClick(jQuery(this)); 345 }); 346 347 }); 348 349 } 350
351 // *************************************************************************** 352// selectSubCompanyLogoMode_onChange 353// *************************************************************************** 354 355 function selectSubCompanyLogoMode_onChange(obj){ 356 357 var selectedValue = obj.find('option:selected').val(); 358 var targetHtmlNode = jQuery('.subCompanyDataEntry.inheritLogo'); 359 if(selectedValue === '0'){ 360 targetHtmlNode.addClass('inheritLogoFalse'); 361 targetHtmlNode.removeClass('inheritLogoTrue'); 362 } else { 363 targetHtmlNode.removeClass('inheritLogoFalse'); 364 targetHtmlNode.addClass('inheritLogoTrue'); 365 } 366 367 } 368 369 370 371 372// *************************************************************************** 373// editButtonUserData_onClick 374// *************************************************************************** 375 376 function loginButton_onClick(obj,type){ 377 378 if(CookieNotice.checkIfIsAllowedTechnical() === true){ 379 jQuery.post( "/c4b-global/partnerportal/scripts/loginForm.php", { type:type, wProjectPath:wProjectPath }) 380 .done(function( data ) { 381 showOverlay(data); 382 jQuery('#loginForm').find('input[name="ref"]').val( window.location.pathname ); 383 }); 384 } else { 385 alert("Sie müssen der Nutzung von technisch notwendigen Cookies zustimmen."); 386 } 387 388 } 389 390 391 // *************************************************************************** 392// searchEmployeeList 393// *************************************************************************** 394 395 function searchEmployeeList(obj){ 396 var listEmployeesArea = jQuery('.employeeDataArea'); 397 var listEmployees = jQuery('div.employeeDataEdit',listEmployeesArea); 398 var searchTerm = obj.val().toLowerCase(); 399 400 listEmployees.each(function(){ 401 var name = jQuery(this).attr('data-employeename').toLowerCase(); 402 console.log(name.indexOf(searchTerm)); 403 if( name.indexOf(searchTerm) != -1 ){ 404 jQuery(this).show(); 405 } else { 406 jQuery(this).hide(); 407 } 408 409 }); 410 411 } 412 413 414// *************************************************************************** 415// editButtonUserData_onClick 416// *************************************************************************** 417 418 function editButtonPassword_onClick(obj,type){ 419 420 var projectPath = wProjectPath; 421 jQuery.post( "/c4b-global/partnerportal/scripts/changePasswordForm.php", { type: type, projectPath: projectPath}) 422 .done(function( data ) { 423 showOverlay(data); 424 jQuery('#changePasswordForm').find('input[name="ref"]').val( window.location.pathname ); 425 }); 426 427 } 428 429// *************************************************************************** 430// validateEmail 431// *************************************************************************** 432 function validateEmail(email) { 433 var re = /\S+@\S+\.\S+/; 434 return re.test(email); 435} 436 437// *************************************************************************** 438// isValidDate 439// *************************************************************************** 440function isValidDate(date) 441{ 442 var matches = /^(\d{1,2})[\.-\/](\d{1,2})[\.-\/](\d{4})$/.exec(date); 443 if (matches == null) return false; 444 var d = matches[1]; 445 var m = matches[2] - 1; 446 var y = matches[3]; 447 var composedDate = new Date(y, m, d); 448 return composedDate.getDate() == d && 449 composedDate.getMonth() == m && 450 composedDate.getFullYear() == y; 451} 452 453// *************************************************************************** 454// validateEmail 455// *************************************************************************** 456 function validateForm(obj) { 457 458 var form = obj.closest('form'); 459 var requiredFields = jQuery('.required',form); 460 var check = new Object(); 461 var pass = true; 462 463 requiredFields.each(function(){ 464 jQuery(this).removeClass('error'); 465 }); 466 467 requiredFields.each(function(){ 468 var requiredField = jQuery(this); 469 var requiredType = requiredField.attr('data-requiredtype'); 470 471 if(requiredType == 'text'){ 472 if(requiredField.val() == '' ){ 473 check[requiredField.attr('name')] = requiredField; 474 pass = false;
475 } 476 } 477 478 if(requiredType == 'date'){ 479 if(requiredField.val() != ''){ 480 if(!isValidDate(requiredField.val())){ 481 check[requiredField.attr('name')] = requiredField; 482 pass = false; 483 } 484 } 485 } 486 487 if(requiredType == 'choice'){ 488 var curFieldName = requiredField.attr('name'); 489 var radioFields = jQuery('input[name="'+curFieldName+'"]'); 490 var checkedRadios = radioFields.filter(':checked').length; 491 jQuery(this).closest('div').addClass('required'); 492 493 if(checkedRadios == 0){ 494 radioFields.each(function(){ 495 check[jQuery(this).attr('name')] = jQuery(this).closest('div'); 496 }); 497 pass = false; 498 } 499 } 500 501 if(requiredType == 'email'){ 502 if(validateEmail(requiredField.val()) == false ){ 503 check[requiredField.attr('name')] = requiredField; 504 pass = false; 505 } 506 } 507 508 }); 509 510 if(pass == false){ 511 for(prop in check){ 512 check[prop].addClass('error'); 513 } 514 } 515 516 return pass; 517 } 518 519// *************************************************************************** 520// cancelButton_onClick 521// *************************************************************************** 522 523 function saveButton_onClick(obj){ 524 525 var check = validateForm(obj); 526 527 if(check === true){ 528 var form = obj.closest('form'); 529 form.submit(); 530 } 531 532 }; 533 534// *************************************************************************** 535// cancelButton_onClick 536// *************************************************************************** 537 538 function cancelButton_onClick(obj, clearParams){ 539 if(clearParams === true){ 540 var curLocation = window.location.pathname; 541 window.location = curLocation; 542 } else { 543 window.location.reload(); 544 } 545 546 }; 547 548// *************************************************************************** 549// closeButton_onClick 550// *************************************************************************** 551 552 function closeButton_onClick(obj){ 553 obj.closest('.overlay').remove(); 554 removeBlocker(); 555 }; 556 557 function inIframe() { 558 try { 559 return window.self !== window.top; 560 } catch (e) { 561 return true; 562 } 563 } 564 565 function getTarget(){ 566 if(inIframe() !== true){ 567 return window.self.document; 568 } else { 569 return window.parent.document; 570 } 571 } 572 573// *************************************************************************** 574// cancelButton_onClick 575// *************************************************************************** 576 577 function showOverlay(data,id){ 578 579 var dataObj = jQuery(data); 580 var isInFrame = inIframe(); 581 582 if(isInFrame !== true){ 583 var targetWindow = window; 584 var targetDocument = window.self.document; 585 } else { 586 var targetWindow = window.parent; 587 var targetDocument = window.parent.document; 588 } 589 590 jQuery('body',targetDocument).append( data ); 591 592 var parentForm = jQuery('.overlay',targetDocument).find('form'); 593 594 showBlocker(); 595 596 var wWidth = jQuery(targetWindow).width(); 597 var wHeight = jQuery(targetWindow).height(); 598 599 var cWidth = jQuery('.overlay',targetDocument).width(); 600 var cHeight = jQuery('.overlay',targetDocument).height(); 601 602 var scrollT = jQuery(targetWindow).scrollTop(); 603 604 var tLeft = (wWidth-cWidth)/2; 605 var tTop = (wHeight-cHeight)/2; 606 607 tTop = tTop + +scrollT; 608 609 if(wWidth <= responsiveWidthPhone){ 610 tTop = 0; 611 tLeft = 0; 612 } 613 614 jQuery('.overlay',targetDocument).css('top',tTop).css('left',tLeft); 615 616 var closeButton = jQuery('<div class="close"><span>X</span></div>'); 617 jQuery('.overlay',targetDocument).prepend(closeButton); 618 619 if(wWidth <= responsiveWidthPhone){ 620 jQuery('#logo').clone().prependTo(closeButton); 621 } 622 623 var saveButton = jQuery('.functions.save',parentForm); 624 var cancelButton = jQuery('.functions.cancel',parentForm); 625 var closeWindowButton = jQuery('.functions.closeWindow',parentForm); 626 var closeButton = jQuery('.close',jQuery('.overlay',targetDocument)); 627 628 closeWindowButton.click(function(){ 629 closeButton_onClick(jQuery(this)); 630 history.replaceState({}, document.title, "."); 631 }); 632 633 closeButton.click(function(){ 634 closeButton_onClick(jQuery(this)); 635 history.replaceState({}, document.title, "."); 636 }); 637 638 cancelButton.click(function(){ 639 cancelButton_onClick(jQuery(this)); 640 history.replaceState({}, document.title, "."); 641 }); 642 643 saveButton.click(function(){ 644 saveButton_onClick(jQuery(this)); 645 }); 646 647 648 649 } 650 651// *************************************************************************** 652// cancelButton_onClick 653// *************************************************************************** 654 655 function showBlocker(){ 656 var targetDocument = getTarget(); 657 jQuery('body',targetDocument).append('<div id="blocker"></div>'); 658 jQuery('#blocker',targetDocument).height( jQuery(targetDocument).height() ); 659 } 660 661// *************************************************************************** 662// cancelButton_onClick 663// *************************************************************************** 664 665 function removeBlocker(){ 666 var targetDocument = getTarget(); 667 jQuery('#blocker',targetDocument).remove(); 668 } 669 670 671// *************************************************************************** 672// callActionStatus 673// *************************************************************************** 674 675 function callActionStatus(statusParam){ 676 677 var statusArray = statusParam.split('|'); 678 var status = statusArray[0]; 679 var type = statusArray[1]; 680 681 if(type == 'subCompanyData'){ 682 jQuery('html, body').animate({ 683 scrollTop: jQuery('.partnerPortal_subCompanyData').offset().top - 200 684 }, 200); 685 } 686 687 else if(type == 'employeeData'){ 688 jQuery('html, body').animate({ 689 scrollTop: jQuery('.partnerPortal_employeeData').offset().top - 150 690 }, 200); 691 } 692 693 else if(type == 'login' && status == 'error'){ 694 loginButton_onClick(self,'error'); 695 } 696 697 else if(type == 'changePassword' && status == 'error'){ 698 editButtonPassword_onClick(self,'error'); 699 } 700 else if(type == 'changePassword' && status == 'success'){ 701 editButtonPassword_onClick(self,'success'); 702 } 703 704 }; 705 706 707}); 708 709 710 711 712// *************************************************************************** 713// function getParameters() 714// *************************************************************************** 715 716function getParameters() { 717 var searchString = window.location.search.substring(1), 718 params = searchString.split("&"), 719 hash = {}; 720 721 if (searchString == "") return {}; 722 for (var i = 0; i < params.length; i++) { 723 var val = params[i].split("="); 724 hash[unescape(val[0])] = unescape(val[1]); 725 } 726 return hash; 727} 728 729// *************************************************************************** 730// function getURLParameter() 731// *************************************************************************** 732 733function getURLParameter(name) { 734 return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)||[,""])[1].replace(/\+/g, '%20'))||null; 735} 736 737// *************************************************************************** 738// function getURLParameter() 739// *************************************************************************** 740 741function logoutUser(redirect) { 742 location.href = '/weblication/grid5/scripts/wSystem.php?action=logout&redirect=' + redirect; 743}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.