Blue Iris UI3

There is nothing I can do about those issues, as it is all within the domain of Blue Iris and is not something UI3 is involved with. The one about sub stream audio is new to me. I was under the impression that a camera's audio came from the main stream, period.
Understood. Yes, the audio issue surprised me too. Anyway, thanks for replying.
 
  • Like
Reactions: bp2008
UI3 version 265, Blue Iris version: 5.8.4.5
I noticed this red speaker icon (I highlighted with yellow rectange in screenshot).
Why does it appear every time trigger happens (red lightning icon), even for external trigger?
I think this was introduced in a recent release?!?! What does it mean?
audio icon.png

BTW, I don't have audio trigger source enabled.
config.png
 
  • Like
Reactions: bp2008
@actran That icon has been in for a very long time. It is supposed to only appear during an audio trigger, only if you've enabled the icon in UI3's settings > Event-Triggered Icons. It does look like it is bugged. I was able to reproduce the issue myself and UI3 is behaving as intended with the info Blue Iris gives it. But clearly something is wrong. I've sent Ken an email to figure it out.
 
  • Like
Reactions: actran
I haven't changed anything on my setup, as far as I can remember in the last 6 months but just in the last couple of months, I've noticed that about half the time when I try to log into the UI3 web interface using Chrome on Android, that it prompts me for a username and password even though I've had my phone memorized those. It will work fine for several days and maybe a week and then all of a sudden it prompts for credentials repeatedly for several days. Is there a way I can hard code my credentials into the URL parameter or some other way?

Edit: I should add that this doesn't happen when I'm using Chrome on my Windows desktop or laptop, only on my Samsung S21.
 
@piconut

Yes, if you disable the "secure session keys" function in Blue Iris settings > Web server > Advanced, then you can embed credentials into your bookmarked URL. Embed credentials on Blue Iris Web Server URL

I don't recommend that though.

There are a number of things that could interfere with automatic login.

Are you using "Log in automatically" on Blue Iris's login page? If not then I can't help you. lol.

If you are, then the credentials are being stored in your browser's localStorage associated with the hostname. In fact, the state of the "Log in automatically" toggle switch is also stored there.

If you are finding yourself on Blue Iris's login page and there's no error message and it isn't trying to log you in ...
  • If the "Log in automatically" toggle switch set to "no", then it indicates your localStorage probably got cleared. This typically only happens if you clear cookies. Maybe your browser or a security extension is doing that periodically.
  • If the "Log in automatically" toggle switch set to "yes", there are a few ways that can occur by design.
* If you just clicked "Log Out" in UI3, that loads the login page with the URL parameter "autologin=0" which temporarily disables the auto login just for that one page load and leaves the auto login setting still set to "yes". The "autologin=0" URL parameter should disappear immediately upon page load, so you wouldn't necessarily see it in the address bar.
* If you load the login page by some other means (e.g. by loading a bookmark that points explicitly at login.htm) and UI3 is or was open within the last few seconds, the login page is supposed to not log you in automatically. Typically you'd get a message saying you have an existing session and to click here to use it.
 
  • Like
Reactions: looney2ns
In the full Blue Iris app, you can right click a cancelled alert and Confirm Alert and the alert moves to the Confirmed Alerts list.

In UI3, you can right click alerts and Mark as AI-Confirmed but all that appears to do is give the alert a checkmark? It doesn't move the alert to the Confirmed Alerts. It works the same on already confirmed alerts, the option is to Mark not Unmark (which adds a checkmark).

Are these supposed to be equivalent functions between the app the web ui? Maybe it's just a limitation of what's possible via the web ui? Is there a way of actually confirming the alert (and moving it to the correct list)?

Thanks
 
  • Like
Reactions: looney2ns
Hi @EvanVanVan

Thanks for reporting the issue!

Yes, those functions are supposed to be equivalent. Something is broken. I've just sent Ken a support request detailing what is going on and asking for his input on the matter.
 
Whats the best way to lock down certain mainMainItems to admins only? Ive been able to find where the buttons are created in ui3.js such as new DropdownListItem({ cmd: "ui_settings".... and how items are controlled with if (sessionManager.IsAdministratorSession()) but I'm not sure how to bring it together in the overrides js. I'm trying to stop people being able to locally override settings I've already created overrides for globally. I believe I could change each settings "Options Window" setting to false one by one, but I think that would also affect admins..

Similarly, I'd like to hide the "playbackSettingsButton" for non-admins so folks can't change the quality setting I've dictated.

Thanks!
 
Last edited:
@DarkHelmet

Hmm, tough one. None of this is very straightforward to implement via the overrides system, but it can all be done. Apologies for the forum mangling the comment lines. It deletes double forward slashes and replaces them with single forward slashes so I've put in a lot of extra slashes on the code comments.

Here's one way. First we'd hook into the dropdown boxes initialization routine and configure every item in the main menu to have a predictable unique CSS class. Then upon login success (which is also the event that UI3 raises after receiving session status), you can inject css to hide certain buttons.


The above script also injects css to hide the playback settings button only for non-admins.

I'm trying to stop people being able to locally override settings I've already created overrides for globally. I believe I could change each settings "Options Window" setting to false one by one, but I think that would also affect admins..

That is correct. Again this is a little messy but it can be done. You'd need to listen for UI3 to raise the "Login Success" event and paste your OverrideDefaultSetting calls there. Like this:


Edit: The above scripts are now in UI3's github documentation.
 
Last edited:
This is great! If I'm understanding correctly, I don't need to use both of these methods. I can either use the 'myCss' classes you made at the top OR use the more standard override format within your admin checker function from the bottom. Is that right?
 
I was just typing an and edit but you beat me to it :D

I see they are targeting different things, so I could use both methods. myCss to hide buttons. Within admin checker to use standard override format to hide menu items. Awesome. I'll get to testing!
 
After testing, the 'myCss' bits are working perfectly to hide buttons from non-admins.

The other settings overrides are being applied to everyone, however. Here's what I have:

I also tried changing overrideSettings(false); to true just in case, but that made no change.
 
Last edited:
  • Like
Reactions: looney2ns
After testing, the 'myCss' bits are working perfectly to hide buttons from non-admins.

The other settings overrides are being applied to everyone, however. Here's what I have:

I also tried changing overrideSettings(false); to true just in case, but that made no change.


Oh, hmm, it turns out there were problems with the implementation of OverrideDefaultSetting and that flag specifically. Fixed in UI3-268. I think it should work properly now if you install that update.
 
  • Like
Reactions: looney2ns
No joy as yet. Copied over new version files and restarted BI service. Here's my full overrides file so you can see it in context. Perhaps I have something laid out incorrectly. Again, myCss stuff is working perfectly! It's just the "OverrideDefaultSetting" lines that are applying to users and admins alike.
 
@DarkHelmet
That script is working as intended on my system. Perhaps the difference is that I misunderstood your intent.

The OverrideDefaultSetting function was only originally meant to be used before the list of default settings is processed -- which is shortly after the DOM is ready, and long before the session's permission level is known. That is what the overrideSettings(false); call on line 59 accomplishes. When we call OverrideDefaultSetting from the "Login Success" event handler, it is no longer able to affect the live settings object. When it is called this late, it only manages to change metadata about each setting (which is read by the UI Settings panel to know which settings to hide, what the default values are, etc).

If you wanted to leave admin users completely alone and only apply any of those settings changes to non-admin users, then that can't be accomplished simply via the OverrideDefaultSetting function. You can't just change the settings either (e.g. settings.ui3_is_maximized = "1") because for the most part UI3 does not react to sudden changes in the settings object. You'd have to call maximizedModeController.EnableMaximizedMode() instead.

For some of the settings, you can actually set them (e.g. settings.ui3_topbar_alerts_confirmed_shortcut_show = "1";) and then call their onChange function (OnChange_ui3_topbar_alerts_confirmed_shortcut_show()) to make UI3 react to the change. But not all of the settings have an onChange function. You'd have to research how each setting is declared and used and identify the appropriate functions to call.

As another example, ui3_streamingQuality is another setting that doesnt have an onChange function. You'd need to instead call genericQualityHelper.QualityChoiceChanged("1080p VBR^").
 
Oh I see. I mean even just having the myCss function working is awesome. Hiding those buttons is enough to make 99% of my users not know how or be able to change things.

I'll look through the rest of the javascript to find the functions you mentioned for everything else and see if I can't figure that out.

Thanks for all the help!
 
Last edited:
In the full Blue Iris app, you can right click a cancelled alert and Confirm Alert and the alert moves to the Confirmed Alerts list.

In UI3, you can right click alerts and Mark as AI-Confirmed but all that appears to do is give the alert a checkmark? It doesn't move the alert to the Confirmed Alerts. It works the same on already confirmed alerts, the option is to Mark not Unmark (which adds a checkmark).

Are these supposed to be equivalent functions between the app the web ui? Maybe it's just a limitation of what's possible via the web ui? Is there a way of actually confirming the alert (and moving it to the correct list)?

Thanks
Hi @EvanVanVan

Thanks for reporting the issue!

Yes, those functions are supposed to be equivalent. Something is broken. I've just sent Ken a support request detailing what is going on and asking for his input on the matter.

Fixed in the latest update, thank you!
 
  • Like
Reactions: bp2008