jobs in Danfoss

Danfoss Hiring! Full Time Lead Engineer, Field Service in - Ricebowl

Lead Engineer, Field Service

Undisclosed

Singapore

Share
Save

Working Location

  • Singapore

Job Description

Responsibilities

Job Description
); let grid = columnOne.querySelector('.job-grid'); let allTokens = *************(columnOne.querySelectorAll('.joblayouttoken')); // - 1. CAPTURE VARIABLES FOR BUSINESS RULES - let jobLocationValue = ""; let countryRegionValue = ""; let regionValue = ""; let ipeLevelValue = null; let employeeGroupValue = ""; // - INTERNAL USER VALIDATION VIA CUSTOM PLUGIN - // Reads global flags injected by the authentication plugin let pluginWindowCheck = !!window.isSFInternalUser; let pluginSessionCheck = sessionStorage.getItem('SF_Internal_User') === 'true'; let isInternalPortal = pluginWindowCheck || pluginSessionCheck; // Iterate through all tokens to capture their values before manipulating the DOM allTokens.forEach(el => { let labelEl = el.querySelector('.joblayouttoken-label'); if (!labelEl) return; let labelText = labelEl.innerText; let propId = generatePropertyId(labelText); let valueEl = el.querySelector('.rtltextaligneligible'); let valueText = valueEl ? *************() : ""; if (propId === "JobLocation") { jobLocationValue = valueText; } else if (propId === "CountryRegion") { countryRegionValue = valueText; } else if (propId === "Region") { regionValue = valueText; } else if (propId === "IPELevel") { let match = *************(/\d+/); if (match) ipeLevelValue = parseInt(match[0], 10); } else if (propId === "EmployeeGroup") { employeeGroupValue = valueText.toLowerCase(); } }); // - 2. BUSINESS RULES VALIDATION - let isSalaryPaid = employeeGroupValue.includes('salary'); let isIpeValid = ipeLevelValue !== null && ipeLevelValue <= 61; // Normalize locations for matching let fullLocationLower = (jobLocationValue + " " + countryRegionValue).toLowerCase(); let isUSJob = fullLocationLower.includes("usa") || fullLocationLower.includes("united states"); let allowedUSStates = ["california", "colorado", "delaware", "hawaii", "illinois", "maryland", "massachusetts", "minnesota", "nevada", "new jersey", "new york", "vermont", "washington", "d.c."]; let allowedUSAbbr = ["ca", "co", "de", "hi", "il", "md", "ma", "mn", "nv", "nj", "ny", "vt", "wa", "dc"]; let allowedGlobalCountries = ["austria", "slovakia", "lithuania", "latvia", "canada"]; // Salary Range Visibility Rule let isSalaryLocationValid = false; if (isUSJob) { let hasFullStateName = allowedUSStates.some(state => fullLocationLower.includes(state)); let hasStateAbbr = allowedUSAbbr.some(abbr => { let regex = new RegExp(\\b${abbr}\\b); return *************(fullLocationLower); }); isSalaryLocationValid = hasFullStateName || hasStateAbbr; } else { isSalaryLocationValid = allowedGlobalCountries.some(country => fullLocationLower.includes(country)); } // Job Level Visibility Rule (Legacy locations + EER Region) let allowedJobLevelLocations = ["austria", "slovakia", "lithuania", "latvia"]; let isJobLevelLocationValid = allowedJobLevelLocations.some(loc => fullLocationLower.includes(loc)); let isEERRegion = regionValue.toUpperCase().trim() === "EER"; // Final flags to determine if the fields should be shown let showSalaryRange = isSalaryLocationValid && isIpeValid && isSalaryPaid; let showJobLevel = (isJobLevelLocationValid || isEERRegion) && isIpeValid && isSalaryPaid && isInternalPortal; // - 3. TOKEN PROCESSING AND DISPLAY - let keepAddingToGrid = true; allTokens.forEach(el => { // Stop adding elements to the grid once the job description starts if (!keepAddingToGrid || el.querySelector('[itemprop="description"]')) { return; } let labelEl = el.querySelector('.joblayouttoken-label'); if (labelEl) { let labelText = labelEl.innerText; let customPropertyid = generatePropertyId(labelText); // - ABSOLUTE REMOVAL OF LOGIC-ONLY TOKENS - if ( customPropertyid === "EmployeeGroup" || customPropertyid === "CountryRegion" || customPropertyid === "Region" || customPropertyid === "IPELevel" ) { el.style.display = 'none'; // Force visual hiding *************(); // Remove from DOM return; } // - APPLY VISIBILITY BUSINESS FILTERS - if (customPropertyid === "SalaryRange" && !showSalaryRange) { el.style.display = 'none'; *************(); return; } if (customPropertyid === "JobLevel" && !showJobLevel) { el.style.display = 'none'; *************(); return; } // Cosmetic adjustment for short labels if (labelText.includes("(Short)")) { labelEl.innerText = labelText.replace(/\(Short\)/g, "(s)"); } // Append custom icons based on the mapped property ID let elType = labelEl.nextElementSibling; if (elType) { let icon = ''; let iconUrl = ''; switch (customPropertyid) { case 'JobLocation': icon = 'glyphicon-map-marker'; break; case 'BusinessUnit': icon = 'glyphicon-briefcase'; break; case 'JobCategory': icon = 'glyphicon-dashboard'; break; case 'EmploymentType': icon = 'glyphicon-star-empty'; break; case 'ReqID': icon = 'glyphicon-calendar'; break; case 'WorkLocationType': icon = 'glyphicon-paste'; break; case 'JobLevel': iconUrl = '*************'; break; case 'SalaryRange': iconUrl = '*************'; break; case 'TAPartner': iconUrl = '*************'; break; default: icon = ''; } let iconHtml = ''; if (icon) { iconHtml = ; } else if (iconUrl) { iconHtml = ; } labelEl.parentElement.insertAdjacentHTML('beforebegin',
${iconHtml}
); let wrapper = el.querySelector(.job-token-${customPropertyid}-wrapper); wrapper.appendChild(labelEl.parentElement); // Clean up empty text nodes let emptySibling = document.querySelector(.job-token-${customPropertyid}-wrapper).nextSibling; if(emptySibling && emptySibling.nodeType === 3) *************(); } // Flag to stop processing grid items when TA Partner is reached if (customPropertyid === "TAPartner") { keepAddingToGrid = false; } } grid.appendChild(el); }); } }); /** * Robust Mapping Function * Scans the label for keywords, effectively bypassing any issues caused by translations. */ function generatePropertyId(jobLayoutTokenLabel) { let normalized = jobLayoutTokenLabel.toLowerCase(); // Helper function to search for keywords regardless of formatting or active language const contains = (arr) => arr.some(keyword => normalized.includes(keyword)); if (contains(["employee group"])) return "EmployeeGroup"; if (contains(["ipe level", "ipe"])) return "IPELevel"; // Order matters: 'country' will correctly match 'country/region' if (contains(["country", "land", "país", "pays", "paese", "kraj", "krajina"])) return "CountryRegion"; if (contains(["region", "región", "région", "регион", "地区"])) return "Region"; if (contains(["posting job location", "joblokation", "job location", "jobsted", "arbeitsort", "ubicación", "site de l’emploi", "lokalizacja", "местоположение", "miesto", "职位地点", "sede di lavoro"])) return "JobLocation"; if (contains(["salary range", "recruitment salary", "løninterval", "gehaltsspanne", "przedział wynagrodzenia", "fourchette", "rango salarial", "mzdové rozpätie", "lønramme", "диапазон зарплаты"])) return "SalaryRange"; if (contains(["posting job level", "job level", "jobniveau", "joblevel", "nivel del puesto", "niveau du poste", "poziom stanowiska", "уровень должности", "úroveň pozície"])) return "JobLevel"; if (contains(["employment type", "ansættelse", "beschäftigungsart", "tipo de emprego", "type d’emploi", "rodzaj zatrudnienia", "тип занятости", "typ pracovného pomeru", "员工类型", "tipologia di impiego", "tipo de empleo"])) return "EmploymentType"; if (contains(["work location type", "arbejdsstedstype", "arbeitsmodell", "tipo de ubicacion", "emplacement de travail", "miejsca pracy", "формат работы", "výkonu práce", "工作地点类型", "modalità di lavoro"])) return "WorkLocationType"; if (contains(["job category", "jobkategori", "stellenkategorie", "categoría", "catégorie", "kategoria", "категория должности", "kategória", "职位类别", "area professionale"])) return "JobCategory"; if (contains(["business unit", "segment", "segmento", "firmaenhed", "unternehmenseinheit", "jednostka biznesowa", "сегмент", "业务板块"])) return "BusinessUnit"; if (contains(["req id", "rek-id", "kennung", "id de solicitud", "identifiant de la demande", "identyfikator", "идентификатор", "id pracovní pozície", "需求 id", "identifikačné", "id posizione", "requisition id", "stellen-id"])) return "ReqID"; if (contains(["ta partner", "partenaire ta"])) return "TAPartner"; // Default fallback if no keywords are matched return jobLayoutTokenLabel.replace(/[\s:\(\)\]\[]/g,''); } //]]>
/* Reset native spacing for RMK tokens */ .jobColumnOne .joblayouttoken { margin: 0 !important; padding: 0 !important; } /* Job Title Header (H1) */ .job-title-heading { font-size: 24px; font-weight: bold; color: #1d2d3e; margin-top: 10px; margin-bottom: 15px; } /* Main Green Container Background */ .job-info-wrapper .job-info-container { padding: 20px 15px; width: 100%; background-color: #cde9da; border-radius: 5px; margin-bottom: 25px; margin-top: 10px; box-sizing: border-box; } /* 3-Column Grid System */ .job-info-wrapper .job-grid { width: 100%; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); grid-column-gap: 15px; grid-row-gap: 15px; } /* Mobile Responsiveness for Grid */ @media screen and (max-width: 576px) { .job-info-wrapper .job-grid { grid-template-columns: repeat(1, 1fr) !important; grid-row-gap: 10px; } } .job-info-wrapper .joblayouttoken { padding-left: 0 !important; } /* Token Wrapper Flexbox Layout */ .job-token-wrapper { display: flex; flex-direction: row; align-items: center; } .job-token-wrapper > div { display: flex; flex-direction: column; } /* Custom Icon Alignment */ .joblayouttoken-label-icon::before { padding: 0 8px 0 0; font-family: "Glyphicons Halflings", custom1a06310ce5654f85ac9c6 !important; font-size: 18px; color: #12512f !important; } /* Token Label Font Styles */ .job-token-wrapper .joblayouttoken-label:not(.joblayouttoken-label-icon) { font-size: 14px; color: #303030; margin-bottom: 0px; font-weight: bold; } /* Token Value Font Styles */ .job-token-wrapper .rtltextaligneligible { font-weight: normal !important; font-family: custom2abfb6e0ee794a99894a6 !important; font-size: 15px; color: #303030; margin: 0; }

Important Information

Never provide your bank or credit card details when applying for jobs. Do not transfer any money or complete unrelated online surveys. If you see something suspicious, Report this Job ad.

Learn More