91³Ô¹ÏÍø

Watch CBS News

Minneapolis city leaders say law enforcement, community members making Uptown safer, but more must be done

Minneapolis Mayor Jacob Frey, Police Chief Brian O'Hara and other city leaders outlined ongoing efforts to improve safety and livability in the city's Uptown neighborhood during a news conference Tuesday morning.

The discussion focused on a series of public safety initiatives, including expanded patrols by the Minneapolis Police Department and the planned growth of the city's in Uptown.

That program is already in place elsewhere in south Minneapolis, on East Lake Street and Franklin Avenue. Officials said Tuesday it will come to Uptown in November. One dispatcher and up to eight ambassadors will be available to perform safety escorts, wellness checks, first aid and more.

Officials say efforts to increase safety in the area have been ongoing since December, when dedicated police patrols were introduced.

"Uptown is experiencing a comeback, but we need to be doing the work to make sure that it happens faster. We've all got these beautiful, nostalgic memories about what Uptown was six, seven, eight years ago. Twenty years ago," Minneapolis Mayor Jacob Frey said. "What's certain is the Uptown of the future is going to be dramatically different than the Uptown of the past."

In March, dozens of people lined up for a community meeting discussing safety and livability concerns in the Uptown neighborhood. Data from the city shows there are more assaults, car thefts, robberies and calls for gunshots in the neighborhood compared to the same time last year. Community members, business owners and others have come together to launch community initiatives — like United Uptown — to get the area back on track.

Leaders describe the city's approach as a coordinated strategy that combines public safety resources, infrastructure investments and partnerships with community organizations. City Council member Elizabeth Shaffer said the goal is "an Uptown that is safe, welcoming and enjoyable for everyone."

Frey, O'Hara and Shaffer all highlighted drug use as a serious problem in the area. Shaffer and Frey said law enforcement has been helpful in curbing the issue, but more needs to be done. 

"We need to be stepping up to be honest about it, to do something about it, to provide the supports for people who need it and yes, also make sure that we're enforcing the law," Frey said. "That's part of the comeback that we're going to see in Uptown."

The Community Safety Ambassadors will make a starting wage of $27 an hour. A criminal background doesn't necessarily disqualify an applicant.

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=50747257b890e014813016b79ece0fb2'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });