Connect with us

Iowa

Iowa immigration law remains blocked, US appeals court says, but second lawsuit to be dismissed

Published

on

Iowa immigration law remains blocked, US appeals court says, but second lawsuit to be dismissed


DES MOINES, Iowa — A federal appeals court on Friday sided with the Biden administration’s Department of Justice and kept a temporary block on an Iowa law that makes it a state crime for a person to be in Iowa if they are in the U.S. illegally.

But a second order from the 8th Circuit U.S. Court of Appeals raises questions on future court proceedings now that President Donald Trump is in the White House.

The department and an immigrant rights groups sued Iowa in May over the law, which looks similar to Texas and Oklahoma laws that are also on hold while courts consider whether they unconstitutionally usurp federal immigration authority. A district court judge granted the Biden administration and the immigrant rights group a temporary block on the law, and Iowa appealed.

The law would let state and local officials arrest and charge people who have outstanding deportation orders or who previously have been removed from or denied admission to the U.S.

Advertisement

The federal appeals court said that “contrary to Iowa’s belief,” the state law would likely contradict federal officials’ discretion in how to enforce immigration policy and complicate U.S. foreign policy.

But the federal appeals court issued a second decision Friday that might complicate the legal battle in Iowa if Trump’s administration withdraws the Department of Justice’s complaint.

The federal appeals court said that the lawsuit filed by Iowa Migrant Movement for Justice on behalf of its organization and two individuals should be dismissed by the district court judge — because the U.S. v. Iowa lawsuit makes it moot.

“Right now we’re just figuring out what our legal next steps are,” said Veronica Fowler, communications director for the ACLU of Iowa, one of the legal teams representing Iowa Migrant Movement for Justice, “because obviously we are committed to doing everything we can to strike down this really terrible law.”

The Department of Justice did not immediately respond to a request for comment on the future of the lawsuit, which would proceed in the lower court.

Advertisement

Under President Joe Biden, Republican governors and lawmakers across the country accused the president of a failure to enforce federal immigration law and manage the southern border. Most are now lining up to support Trump in his pledge to crack down on illegal immigration and deport many who are living in the U.S. illegally.

A December joint statement from 26 Republican governors, including Iowa Gov. Kim Reynolds, said they “stand ready to utilize every tool at our disposal — whether through state law enforcement or the National Guard — to support President Trump in this vital mission.”

Iowa Attorney General Brenna Bird said in a statement Friday that the “battle is far from over.”

“As President Trump works nationally to fix the mess Biden and (Vice President Kamala) Harris created on the southern border, we will continue fighting in Iowa to defend our laws and keep families safe,” Bird said.



Source link

Advertisement

Iowa

Iowa High School Boys Track And Field Leaders

Published

on

Iowa High School Boys Track And Field Leaders


We are still weeks away from the state track and field meet in Iowa, but high school athletes around the state are starting to get outdoors to post times and leave marks.

High School on SI previously posted the leaders in Iowa high school track and field for the girls, so now, we head over to the boys. Just like with that one, the numbers below are from the Bound website and up-to-date as of April 3, 2026.

Iowa High School Boys Track And Field Event Leaders

100-Meter Dash

Advertisement
Add us as a preferred source on Google

  • Connor Kunze, Nevada, 10.48
  • Kaiden Kunze, Norwalk, 10.52
  • Noah Ross, Ankeny Centennial, 10.61
  • Adam Kacmarynski, Pella Christian, 10.69
  • Deztin McMurrin, Waterloo West, 10.70

200-Meter Dash

  • Marcus Tomlyanovich, Cedar Falls, 21.73
  • Zane Johnson, ADM, 21.90
  • Cauy Konz, Treynor, 22.08
  • Dawson Dougherty, Cedar Rapids Kennedy, 22.09
  • Lincoln Bainbridge, Van Buren County, 22.10

400-Meter Dash

  • Drew Bennis, Cedar Rapids Prairie, 48.52
  • Harrison Mullens, Pella, 48.85
  • Lincoln Bainbridge, Van Buren County, 49.10
  • Will Bertrand, Sioux City Bishop Heelan, 49.43
  • Gage Tucker, Bettendorf, 49.55

800-Meter Run

  • Brennen Hoyer, Cedar Falls, 1:53.72
  • AJ Willey, Bettendorf, 1:54.27
  • Keegan Decker, Iowa City Liberty, 1:54.44
  • Canaan Dunham, Pella, 1:54.73
  • Ayden Gabrielson, Waukee Northwest, 1:54.79

1600-Meter Run

  • Quentin Nauman, Western Dubuque, 4:03.65
  • Keegan Decker, Iowa City Liberty, 4:04.33
  • Kuma Gutema, Sioux City North, 4:12.40
  • Logan Bleich, Gilbert, 4:14.67
  • Canaan Dunham, Pella, 4:15.92

3200-Meter Run

  • Keegan Decker, Iowa City Liberty, 8:59.49
  • Quentin Nauman, Western Dubuque, 9:07.03
  • AJ Willey, Bettendorf, 9:08.52
  • Slader Buckheister, Cedar Rapids Kennedy, 9:08.54
  • Canaan Dunham, Pella, 9:12.27

110-Meter Hurdles

  • Tay Seals, Clear Creek-Amana, 13.92
  • Hayden Carlson, Ankeny, 14.07
  • Caiden Johnson, Pella, 14.16
  • Blake Ludwig, Waukee Northwest, 14.25
  • Miciah LeLaCheur, Valley, 14.30

400-Meter Hurdles

  • J.J. McDermott, Bettendorf, 54.42
  • Wil Pauli, Cedar Falls, 54.78
  • Jayden Jeter, Waukee, 54.92
  • Owen Von Ahsen, Benton, 54.92
  • Tate Marco, Sibley-Ocheyedan, 55.14

Long Jump

  • Rylan Peters, Waverly-Shell Rock, 23-8
  • Kaiden Kunze, Norwalk, 23-3
  • Jayden Stephens, Waverly-Shell Rock, 22-11
  • Ezekiel Symonds, Independence, 22-10.5
  • Jamaul Richardson Willamsburg, 22-8

High Jump

  • Ajak Malual, Waukee, 6-9
  • Logan Athlerton, Norwalk, 6-8
  • Eli Patterson, Benton, 6-7
  • Miciah LeLaCheur, Valley, 6-6
  • Spencer Casey, Cascade, 6-5.5

Shot Put

  • Greyson Hartman, Washington, 67-3.5
  • Morgan Cooley, East Union, 59-11
  • Max Nevitt, Algona, 59-5.5
  • Carson Divis, Hinton, 57-6
  • Shem Mally, Cedar Rapids Kennedy, 57-5.5

Discus

  • Greyson Hartman, Washington, 179-9
  • Aiden Curtis, Indianola, 179-2
  • Daxon Kiesau, Urbandale, 176-8
  • Colin Whitters, Iowa City West, 167-1
  • Reece Winery, Southeast Polk, 166-5

100-Meter Wheel Chair

  • Titus Steng, Shenandoah, 17.01
  • Eli Johnson, Bedford, 18.58
  • Josh Anderson, Washington, 20.45
  • Logan Shwery, Ankeny Centennial, 23.50
  • Ryan Stevenson, Pleasant Valley, 31.23

200-Meter Wheel Chair

  • Titus Steng, Shenandoah, 31.66
  • Eli Johnson, Bedford, 33.89
  • Issac Anderson, Washington, 37.32
  • Josh Anderson, Washington, 37.34
  • Logan Shwery, Ankeny Centennial, 49.04

400-Meter Wheel Chair

  • Titus Steng, Shenandoah, 1:06.30
  • Eli Johnson, Bedford, 1:10.74
  • Isaac Anderson, Washington, 1:13.78
  • Logan Shwery, Ankeny Centennial, 1:28.32

800-Meter Wheel Chair

  • Titus Steng, Shenandoah, 2:21.91
  • Eli Johnson, Bedford, 2:41.25
  • Josh Anderson, Washington, 3:01.66

Shot Put Wheel Chair

  • Ryan Stevenson, Pleasant Valley, 16-11

100-Meter Ambulatory

  • Carter Swanson, Hudson, 15.35
  • Daniel Villa, Waterloo East, 15.49
  • Leighton Pullin, Waterloo East, 19.72
  • Daniel Carr, Waterloo East, 22.97

200-Meter Ambulatory

  • Cameron McGraw, Alburnett, 30.86
  • Carter Swanson, Hudson, 32.19

400-Meter Ambulatory

  • Carter Swanson, Hudson, 1:14.41

4×100-Meter Relay

  • Gilbert, 42.21
  • Cedar Rapids Jefferson, 42.61
  • Treynor, 42.70
  • Western Dubuque, 42.79
  • Waukee Northwest, 42.86

4×200-Meter Relay

  • Valley, 1:26.29
  • Clear Lake, 1:27.55
  • Waukee Northwest, 1:28.54
  • ADM, 1:28.60
  • Cedar Rapids Prairie, 1:29.30

4×400-Meter Relay

  • Clear Lake, 3:20.37
  • Cedar Falls, 3:21.03
  • Waukee Northwest, 3:23.95
  • Sioux City Bishop Heelan, 3:24.10
  • Cedar Rapids Prairie, 3:24.62

4×800-Meter Relay

  • Waukee Northwest, 7:55.90
  • Cedar Falls, 7:57.36
  • Dallas Center-Grimes, 8:02.78
  • Johnston, 8:03.88
  • Unity Christian, 8:04.19

Sprint Medley Relay

  • Clear Creek-Amana, 1:34.37
  • Sibley-Ocheyedan, 1:35.17
  • Muscatine, 1:35.57
  • Cedar Rapids Prairie, 1:35.76
  • Mount Vernon, 1:35.86

Distance Medley Relay

  • Ankeny Centennial, 3:26.51
  • Waukee Northwest, 3:30.23
  • Gilbert, 3:32.46
  • Dallas Center-Grimes, 3:33.16
  • Ankeny, 3:34.82

Shuttle Hurdle Relay

  • Pella, 58.29
  • Iowa City West, 58.61
  • Treynor, 58.87
  • Waukee Northwest, 58.95
  • Ankeny, 59.02



Source link

Continue Reading

Iowa

Where will Iowa basketball spending rank in transfer portal?

Published

on

Where will Iowa basketball spending rank in transfer portal?


You have to pay to play.

That’s the way the new world of college sports works, especially football and men’s basketball, the two moneymakers for programs across the country. The financial aspect of competing is looming larger than ever now, and to win in those sports, it requires serious financial backing.

It costs now to recruit top talent from high school and even more to lure in top talent from the transfer portal, which can infuse instant upgrades to a roster. The Iowa Hawkeyes had a portal-heavy roster this year during their magical Elite 8 run during March Madness and will once again be shopping for more high-end talent.

Iowa won’t just be among the big spenders in the Big Ten, but On3’s Pete Nakos believes Iowa is going to be among those big spenders in the sport of college basketball, potentially nearing double-figures in the millions.

Advertisement

The Next Tier: $8 to $10 million

LouisvilleTexas A&MIowa, St. Louis, Providence and BYU make up the next tier of top spenders, all expected to spend over $8 million and can touch $10 million if they want. Other top spenders of note will likely be Virginia and Washington, among others.

Alabama was in the $8 to $10 million range this season, and the Crimson Tide are expected to have similar funding available. They will be able to crack into the next tier if they need to, sources said. – Pete Nakos, On3

Iowa’s first priority via the transfer portal is replacing the crater-sized hole in the starting lineup left by point guard Bennett Stirtz, who carried this team at times this year and was the engine that made this team go.

After that, Iowa needs to add size on the interior. While they were able to play most of the year, finding ways to win despite lacking some size, having a true big man only further unlocks Ben McCollum’s offense.

Contact/Follow us @HawkeyesWire on X (formerly Twitter) and like our page on Facebook to follow ongoing coverage of Iowa news, notes and opinions. Follow Riley on X: @rileydonald7

Advertisement





Source link

Continue Reading

Iowa

Iowa wide receiver becomes first-ever back-to-back winner of Jet Award

Published

on

Iowa wide receiver becomes first-ever back-to-back winner of Jet Award


Iowa wide receiver Kaden Wetjen becomes first-ever back-to-back winner of Jet Award

Advertisement

OUR TEAM. SOMEONE TO LOOK OUT FOR THIS UPCOMING YEAR, STICKING WITH FOOTBALL, THE JET AWARD GALA HAPPENING TONIGHT IN OMAHA ON THE 15TH YEAR OF THE AWARD. THE AWARD IS GIVEN TO THE COLLEGE RETURN SPECIALIST OF THE YEAR, IOWA’S KADEN WETJEN MAKES HISTORY, BECOMING THE FIRST EVER BACK TO BACK WINNER. OF JOHNNY THE JET RODGERS AWARD. IT’S AWESOME. AND I KIND OF JOKED AROUND LAST YEAR, TOLD ME I WAS GOING TO COME BACK HERE NEXT YEAR AND HERE WE ARE ACTUALLY ACTUALLY DID IT. AND WE ACTUALLY HAD TWICE THE SUCCESS WE HAD LAST YEAR WHEN WE WON IT. SO JUST ME AND THE UNIT, THE TEAM THAT WE HAD WAS, WAS SUPER AWESOME. IT’S NOT JUST THIS AWARD ISN’T JUST FOR ME. IT’S FOR MY, FOR MY TEAMMATES AS WELL. YES. ALSO BEING HONORED TONIGHT, MILLARD SOUTH ALMA JOBJET TAMALA AS MR. FOOTBALL 2025. RECOGNIZING THE TOP HIGH SCHOOL FOOTBALL TALENT IN THE STATE. GUYS, OBVIOUSLY KAMALA TAKING HIS TALENTS TO ALABAMA. HE’LL BE PLAYING IN TUSCALOOSA THIS YEAR AS FAR AS IT COMES WITH EACH AND EVERY TIME ANYBODY WOULD KICK TO HIM, I WOULD SAY, WHAT ARE YOU DOING? DON’T KICK, KICK, KICK IT. HE’S SO GOOD. I MEAN, LOO

Advertisement

Iowa wide receiver Kaden Wetjen becomes first-ever back-to-back winner of Jet Award

Updated: 8:57 PM CDT Apr 2, 2026

Editorial Standards

Advertisement

Omaha hosted the Jet Award Gala on Thursday.It was the 15th year of the award, which was given to the College Return Specialist of the Year.Iowa’s Kaden Wetjen made history, becoming the first-ever back-to-back winner of the Johnny the Jet Rodgers Award.The gala also honored Millard South alum Jett Thomalla as Mr. Football 2025, recognizing the top high school football talent in the state.Make sure you can always see the latest news, weather, sports and more from KETV NewsWatch 7 on Google search.NAVIGATE: Home | Weather | Local News | National | Sports | Newscasts on demand |

Omaha hosted the Jet Award Gala on Thursday.

Advertisement

It was the 15th year of the award, which was given to the College Return Specialist of the Year.

Iowa’s Kaden Wetjen made history, becoming the first-ever back-to-back winner of the Johnny the Jet Rodgers Award.

The gala also honored Millard South alum Jett Thomalla as Mr. Football 2025, recognizing the top high school football talent in the state.

Advertisement

Make sure you can always see the latest news, weather, sports and more from KETV NewsWatch 7 on Google search.

NAVIGATE: Home | Weather | Local News | National | Sports | Newscasts on demand |

Advertisement

`;
}

function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}

function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;

Advertisement

function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}

function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}

Advertisement

var location = { zip: window.DEFAULT_ZIPCODE };

try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}

var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;

if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}

function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;

Advertisement

var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);

if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.ketv.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, “https://www.ketv.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}

function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;

var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}

var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}

Advertisement

var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}

var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}

var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

Advertisement

function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;

if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);

for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex

`;
}

function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}

Advertisement

function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;

function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}

Advertisement

function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}

var location = { zip: window.DEFAULT_ZIPCODE };

try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}

var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;

if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}

Advertisement

function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;

var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);

if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.ketv.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘sidelist-weather’, “https://www.ketv.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}

function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;

var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}

Advertisement

var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}

var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}

var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}

var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

Advertisement

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;

if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);

for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex

Loading more articles…

Advertisement



Source link

Continue Reading

Trending