Haha, yes! Can't wait to start testing the new version @jtratta! ;)
Great! I can't wait to see, if it is possible to implement a choice window to this (like Computer prefix choice per location)
So I downloaded the files and opened in Xcode. I build the project and got 12 errors. Is there anything I need to do in order to get it to compile? I wanted to see it compile before I started making changes to the HMTL.
@roiegat @jtratta Was this project updated for Swift 3?
This was updated for Swift 3. You will need the latest version of Xcode 8.0 (8A218a). If you're still seeing errors please post them as issues on GitHub. https://github.com/jason-tratta/ProgressScreen/issues
Thanks!
@jtratta I was using 7.3.1...which would account for the errors. Will update and try it again.
@jtratta are you able to provide a high level overview of what you (or anyone else here) do with your launch agent and launch daemon for when a reboot is required at the beginning of the progress bar setup process? I noticed in one of the screenshots above (I think in your cleanup script) you posted that you had both and was wondering how you "continued" the setup process (or not sure if you're doing everything on the "enrollment" trigger or if you are running other policies with custom events or what have you). Thanks!
Hi everyone
After seeing IBM's latest update to the enrolment screen at JUNC i wanted to try and make something similar. I also wanted something with a bit more user interaction. It's mostly bassed on requestes and idea's from some of my customers.
heres what i have come up with: DEP-Enrolment
Far from perfect and lots that can be added, hopfuly by the community. I have not included any API in this version mainly due to time (or the lack of it) but lots that could be imporved with splash of API.
Also im not a developer or programer (not even close), so theres bound to be some non optimal code.
thanks.
@gavin.pardoe This looks really nice! Hopefully I will have a chance to take a look at this in the next few weeks as things slow down for the holiday. I will definitely provide any feedback that I can.
Aaron
@gavin.pardoe what if I don't want to use departments? Can I just comment it out or will that cause issues?
I assume we can add more popups, can those popups relate to a specific key, for instance if a popup says United States, can I have it record "US"?
@jwojda good question. First you need to delete pop up menu: in main.storyboard on the source view controller highlight and delete the department label and pop up menu.
Then inside SourceViewController.swift delete or comment out line 33, 42, 48-51, 73, 74, 92 & 115. on line 80 you need to remove '-department (departmentValue)'
edit: theres a backslash inbetween -department and (department) that is not showing up in the post.
@gavin.pardoe The DEP app look really great, i got a question, what if you activate Filevault, can there be a reboot option added with the finish button? (and maybe a nice to have that after the (filevault) reboot the "whats next" app is open after login.)
@mvdbent Yes, a reboot can be added to the finish button as well as leaving a launch agent. on reboot you can then display the whats next/ next steps/ web view, would be easier to create a specific web view app (very easy todo) to call on reboot than to try resume the DEP app where it left off.
Finally getting to build out something with ProgressScreen (love it).. don't love the AppleScript interaction from a jam policy. This might some people out.
https://github.com/loceee/OSXCasperScripts/blob/master/progressScreenHelper.py
Lets you call and configure ProgressScreen easier from a JAMF policy. Set build time (persistent from across a session) so you can then set the progress as a percentage as you build policies run.
I don't love massive build scripts and would rather have policies doing the work with helpers scripts where needed. It's more visible and flexible that way.
Thanks again to @jtratta for a great tool!
progressScreenHelper.py
optional arguments:
-h, --help show this help message and exit
--start [[html_path]]
start ProgressScreen with [html_path]
--fullscreen set fullscreen mode
--hidequit hide the quit button
--buildtime [build_time_secs]
set [build_time_secs] for progress bar
--progress [progress_percentage]
set [progress_percentage] (based on build_time_sec)
for progress bar
--waypoints [app.pkg] [app.pkg] [app.pkg] [app.pkg]
set waypoints to [app1.pkg] [app2.pkg] [app3.pkg]
[app4.pkg]
--end quit the app and remove temp file
@gavin.pardoe Awesome work! Maybe you can start a separate post so we can post contributions there to keep ProgressScreen and DEP-Enrolment contributions separate. I have been tinkering with your app and a script to run the policies... Thanks a lot for sharing!
Just saw this. I am going to give it a go in our environment. Thanks!
Hi All,
ProgressScreen has been working great for us over the last year and a half - but our branding has changed so I'm working on updating it. Everything is going great with @jtratta's new version. I'm trying to change the color of the progress bar border, as the theme is now very dark. It is just completely invisible - of course you can see the blue bar filling, but without a visible endpoint it's fairly useless. Anybody have any Xcode tips on changing the slightly transparent black border to say, white?
Thanks!
@mbezzo
There's nothing you can do inside of Xcode to affect the border color of NSProgressIndicator, nor does it look like the class itself has a method to change it either. Tint of the bar is simple...border not so much.
My guess, you're probably going to have to look into subclassing NSProgressIndicator and redraw the border in the drawRect method. There might already be something out there on GitHub....but nothings coming up in my quick search.
Thanks! I was afraid of that - appreciate you poking around.
Will see if I can figure out subclassing. :)
Thanks!
Does anyone know if the waypoint names can contain wildcards? Our packages will always have the same format, but the version number is included. We usually have something like "[group that uploaded it] [Name of program]-[version number].pkg", which would look something like "+Global+ Google Chrome-56.0.2924.87.pkg". Since we have to have the Chrome version in the package name every time, but everything else will stay the exact same, the ability to use a wildcard in it would be fantastic.
you could always build dummy payload free packages to place in your package flow to use for the waypoints?
25percent.pkg
50percent.pkg
75percent.pkg
I could, but our environment is getting stricter on package names and purposes which could lead to a situation where I can't actually keep them in the JSS like that.
@McAwesome
The updateWaypointMethod() method in ProgressScreen would need to be altered to allow for wildcards. I'll see if this is something I can add in a future update.
@jtratta Is there any place with a more detailed explanation for how to write up a script to configure the Progress Screen? I was modifying the project itself, but now I'm trying to make it a bit easier for others to use it at my organization. So I was going to write up a script that pulled JAMF parameters($4, $5, etc) in to fill in the blanks. The problem is I can't even get the bare minimum to work through applescript. I've made a very basic script that looks like this:
#!/bin/sh
user=`stat -f%Su /dev/console`
sudo -u $user /usr/bin/osascript <<TimeComplete
tell application "ProgressScreen"
set fullscreen of every configuration to false
end tell
TimeComplete
From what I gather, all this should do is make the ProgressScreen app not use fullscreen. Instead, it seems to launch it in fullscreen while keeping the focus locked to the terminal window it obscures. After blindly quitting terminal, the Quit button in the ProgressScreen functions again. Clearly I am missing something basic here. Can you/anyone else point me in a good direction?
What @loceee said back here
...
It might look a little summink like this...

