From 5734ae6b6a35fa2585b2bc4270e743afbaa267b6 Mon Sep 17 00:00:00 2001 From: ofirgalcon Date: Sat, 1 Feb 2025 23:51:26 +0000 Subject: [PATCH 1/5] buttons, optim, outofdate widget client tab - add listing and report buttons, optimise improve out of date widget --- js/softwareupdate.js | 20 + locales/en.json | 1 + softwareupdate_controller.php | 3 + views/softwareupdate_outofdate_widget.yml | 12 +- views/softwareupdate_tab.php | 426 +++++++++------------- 5 files changed, 208 insertions(+), 254 deletions(-) diff --git a/js/softwareupdate.js b/js/softwareupdate.js index 9bf9dc2..065b9b9 100755 --- a/js/softwareupdate.js +++ b/js/softwareupdate.js @@ -62,4 +62,24 @@ var ManagedDeferralCounterFilter = function(colNumber, d){ // Clear global search d.search.value = ''; } +} + +var uptodateFilter = function(colNumber, d){ + // Look for 'not_safety_frozen' keyword + if(d.search.value.match(/^macos_updtodate$/)) + { + // Add column specific search + d.columns[colNumber].search.value = '= 0'; + // Clear global search + d.search.value = ''; + } + + // Look for 'safety_frozen' keyword + if(d.search.value.match(/^macos_not_updtodate$/)) + { + // Add column specific search + d.columns[colNumber].search.value = '!= 0'; + // Clear global search + d.search.value = ''; + } } \ No newline at end of file diff --git a/locales/en.json b/locales/en.json index 220a24b..1d45d76 100644 --- a/locales/en.json +++ b/locales/en.json @@ -16,6 +16,7 @@ "lastfullsuccessfuldate": "Last Full Success Date", "lastrecommendedupdatesavailable": "Recommended Available Updates", "mac_os_uptodate": "macOS Up-to-date", + "lastrecommendedupdatesavailable_widget": "macOS Updates Pending", "lastresultcode": "Last Result Code", "lastsessionsuccessful": "Session Successful", "lastsessionsuccessful_widget": "Last Update Session Successful", diff --git a/softwareupdate_controller.php b/softwareupdate_controller.php index 070f03f..75212a2 100644 --- a/softwareupdate_controller.php +++ b/softwareupdate_controller.php @@ -76,9 +76,12 @@ public function get_pending_widget($column = '') $updates = []; foreach(Softwareupdate_model::select($column . ' AS label') + ->selectRaw('count(*) AS count') ->whereNotNull($column) ->where($column, '<>', '') ->filter() + ->groupBy($column) + ->orderBy('count', 'desc') ->get() ->toArray() as $update){ $update_array = explode( ', ', $update['label']); diff --git a/views/softwareupdate_outofdate_widget.yml b/views/softwareupdate_outofdate_widget.yml index 8c4e6c9..9a2d9d1 100755 --- a/views/softwareupdate_outofdate_widget.yml +++ b/views/softwareupdate_outofdate_widget.yml @@ -1,13 +1,15 @@ type: button widget_id: su_outofdate-widget api_url: /module/softwareupdate/get_binary_widgetx/lastrecommendedupdatesavailable -i18n_title: softwareupdate.mac_os_uptodate -icon: fa-check-square +i18n_title: softwareupdate.lastrecommendedupdatesavailable_widget +icon: fa-apple listing_link: /show/listing/softwareupdate/softwareupdate buttons: - label: 1 - i18n_label: no - class: btn-danger - - label: 0 i18n_label: yes + class: btn-danger + search_component: macos_not_updtodate + - label: 0 + i18n_label: no class: btn-success + search_component: macos_updtodate diff --git a/views/softwareupdate_tab.php b/views/softwareupdate_tab.php index 232a2cd..bb399a6 100755 --- a/views/softwareupdate_tab.php +++ b/views/softwareupdate_tab.php @@ -1,4 +1,15 @@
+ +
+ + + +
+
+ + + +

@@ -6,266 +17,183 @@ From 2f22c3292d44842602e4db4b432decc0a5a0609d Mon Sep 17 00:00:00 2001 From: ofirgalcon Date: Sat, 15 Feb 2025 01:30:05 +0000 Subject: [PATCH 2/5] Update softwareupdate_tab.php --- views/softwareupdate_tab.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/softwareupdate_tab.php b/views/softwareupdate_tab.php index bb399a6..7d8c2ed 100755 --- a/views/softwareupdate_tab.php +++ b/views/softwareupdate_tab.php @@ -147,7 +147,7 @@ `${update.name || ''}` + `${update.version || ''}` + `${update.build || ''}` + - `${update.deferred === '1' ? i18n.t('yes') : i18n.t('no')}` + + `${update.deferred === 1 ? i18n.t('yes') : i18n.t('no')}` + `${update.deferred_until ? formatDate(update.deferred_until) : ''}` + `${update.major_os_update === '1' ? i18n.t('yes') : i18n.t('no')}` + `${update.minor_os_update === '1' ? i18n.t('yes') : i18n.t('no')}` + From 1033c7e28116b5fac915db629fe449a49de1505d Mon Sep 17 00:00:00 2001 From: ofirgalcon Date: Sat, 15 Feb 2025 01:33:38 +0000 Subject: [PATCH 3/5] Update softwareupdate_tab.php --- views/softwareupdate_tab.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/views/softwareupdate_tab.php b/views/softwareupdate_tab.php index 7d8c2ed..7dcd0c6 100755 --- a/views/softwareupdate_tab.php +++ b/views/softwareupdate_tab.php @@ -149,8 +149,8 @@ `${update.build || ''}` + `${update.deferred === 1 ? i18n.t('yes') : i18n.t('no')}` + `${update.deferred_until ? formatDate(update.deferred_until) : ''}` + - `${update.major_os_update === '1' ? i18n.t('yes') : i18n.t('no')}` + - `${update.minor_os_update === '1' ? i18n.t('yes') : i18n.t('no')}` + + `${update.major_os_update === 1 ? i18n.t('yes') : i18n.t('no')}` + + `${update.minor_os_update === 1 ? i18n.t('yes') : i18n.t('no')}` + `${update.download_size ? fileSize(update.download_size, 2) : ''}` + `${update.product_key || ''}` + ''); From 96fba078628a9a2444958adaa267e626a9419444 Mon Sep 17 00:00:00 2001 From: ofirgalcon Date: Sat, 15 Feb 2025 03:27:30 +0000 Subject: [PATCH 4/5] widget filters and bug fixes --- js/softwareupdate.js | 207 ++++++++++++++++++ locales/en.json | 1 - provides.yml | 2 +- scripts/softwareupdate | 2 +- ...e_allow_prerelease_installation_widget.yml | 2 + ...reupdate_allow_rsr_installation_widget.yml | 2 + ...oftwareupdate_allow_rsr_removal_widget.yml | 2 + ...te_auto_update_restart_required_widget.yml | 2 + views/softwareupdate_auto_update_widget.yml | 4 +- ...areupdate_automaticcheckenabled_widget.yml | 2 + ...oftwareupdate_automaticdownload_widget.yml | 2 + ...oftwareupdate_configdatainstall_widget.yml | 2 + ...areupdate_criticalupdateinstall_widget.yml | 2 + ...wareupdate_force_major_deferred_widget.yml | 2 + ...wareupdate_force_minor_deferred_widget.yml | 2 + views/softwareupdate_listing.yml | 52 +++-- views/softwareupdate_report.yml | 14 +- views/softwareupdate_tab.php | 2 +- 18 files changed, 275 insertions(+), 29 deletions(-) diff --git a/js/softwareupdate.js b/js/softwareupdate.js index 065b9b9..174591c 100755 --- a/js/softwareupdate.js +++ b/js/softwareupdate.js @@ -82,4 +82,211 @@ var uptodateFilter = function(colNumber, d){ // Clear global search d.search.value = ''; } +} + +var allow_prerelease_installation_filter = function(colNumber, d){ + // Look for 'prerelease_off' keyword + if(d.search.value.match(/^prerelease_off$/)) + { + // Add column specific search + d.columns[colNumber].search.value = '= 0'; + // Clear global search + d.search.value = ''; + } + + // Look for 'prerelease_on' keyword + if(d.search.value.match(/^prerelease_on$/)) + { + // Add column specific search + d.columns[colNumber].search.value = '= 1'; + // Clear global search + d.search.value = ''; + } +} + +var softwareUpdateYesNo = function(colNumber, row){ + var col = $('td:eq('+colNumber+')', row), + colvar = col.text(); + colvar = colvar != '1' ? ''+i18n.t('No')+'' : + colvar = (colvar == '1' ? ''+i18n.t('Yes')+'' : colvar) + col.html(colvar) +} + +var allow_rsr_installation_filter = function(colNumber, d){ + // Look for 'rsr_off' keyword + if(d.search.value.match(/^rsr_off$/)) + { + // Add column specific search + d.columns[colNumber].search.value = '= 0'; + // Clear global search + d.search.value = ''; + } + + // Look for 'rsr_on' keyword + if(d.search.value.match(/^rsr_on$/)) + { + // Add column specific search + d.columns[colNumber].search.value = '= 1'; + // Clear global search + d.search.value = ''; + } +} + +var allow_rsr_removal_filter = function(colNumber, d){ + // Look for 'rsr_removal_off' keyword + if(d.search.value.match(/^rsr_removal_off$/)) + { + // Add column specific search + d.columns[colNumber].search.value = '= 0'; + // Clear global search + d.search.value = ''; + } + + // Look for 'rsr_removal_on' keyword + if(d.search.value.match(/^rsr_removal_on$/)) + { + // Add column specific search + d.columns[colNumber].search.value = '= 1'; + // Clear global search + d.search.value = ''; + } +} + +var auto_update_restart_required_filter = function(colNumber, d){ + // Look for 'restart_required_off' keyword + if(d.search.value.match(/^restart_required_off$/)) + { + // Add column specific search + d.columns[colNumber].search.value = '= 0'; + // Clear global search + d.search.value = ''; + } + + // Look for 'restart_required_on' keyword + if(d.search.value.match(/^restart_required_on$/)) + { + // Add column specific search + d.columns[colNumber].search.value = '= 1'; + // Clear global search + d.search.value = ''; + } +} + +var auto_update_filter = function(colNumber, d){ + // Look for 'auto_update_off' keyword + if(d.search.value.match(/^auto_update_off$/)) + { + // Add column specific search + d.columns[colNumber].search.value = '= 0'; + // Clear global search + d.search.value = ''; + } + + // Look for 'auto_update_on' keyword + if(d.search.value.match(/^auto_update_on$/)) + { + // Add column specific search + d.columns[colNumber].search.value = '= 1'; + // Clear global search + d.search.value = ''; + } +} + +var automaticcheckenabled_filter = function(colNumber, d){ + // Look for 'autocheck_off' keyword + if(d.search.value.match(/^autocheck_off$/)) + { + // Add column specific search + d.columns[colNumber].search.value = '= 0'; + // Clear global search + d.search.value = ''; + } + + // Look for 'autocheck_on' keyword + if(d.search.value.match(/^autocheck_on$/)) + { + // Add column specific search + d.columns[colNumber].search.value = '= 1'; + // Clear global search + d.search.value = ''; + } +} + +var automaticdownload_filter = function(colNumber, d){ + // Look for 'autodownload_off' keyword + if(d.search.value.match(/^autodownload_off$/)) + { + // Add column specific search + d.columns[colNumber].search.value = '= 0'; + // Clear global search + d.search.value = ''; + } + + // Look for 'autodownload_on' keyword + if(d.search.value.match(/^autodownload_on$/)) + { + // Add column specific search + d.columns[colNumber].search.value = '= 1'; + // Clear global search + d.search.value = ''; + } +} + +var force_major_deferred_filter = function(colNumber, d){ + if(d.search.value.match(/^major_deferred_off$/)) + { + d.columns[colNumber].search.value = '= 0'; + d.search.value = ''; + } + if(d.search.value.match(/^major_deferred_on$/)) + { + d.columns[colNumber].search.value = '= 1'; + d.search.value = ''; + } +} + +var criticalupdateinstall_filter = function(colNumber, d){ + if(d.search.value.match(/^critical_install_off$/)) + { + d.columns[colNumber].search.value = '= 0'; + d.search.value = ''; + } + if(d.search.value.match(/^critical_install_on$/)) + { + d.columns[colNumber].search.value = '= 1'; + d.search.value = ''; + } +} + +var configdatainstall_filter = function(colNumber, d){ + if(d.search.value.match(/^config_install_off$/)) + { + d.columns[colNumber].search.value = '= 0'; + d.search.value = ''; + } + if(d.search.value.match(/^config_install_on$/)) + { + d.columns[colNumber].search.value = '= 1'; + d.search.value = ''; + } +} + +var force_minor_deferred_filter = function(colNumber, d){ + // Look for 'minor_deferred_off' keyword + if(d.search.value.match(/^minor_deferred_off$/)) + { + // Add column specific search + d.columns[colNumber].search.value = '= 0'; + // Clear global search + d.search.value = ''; + } + + // Look for 'minor_deferred_on' keyword + if(d.search.value.match(/^minor_deferred_on$/)) + { + // Add column specific search + d.columns[colNumber].search.value = '= 1'; + // Clear global search + d.search.value = ''; + } } \ No newline at end of file diff --git a/locales/en.json b/locales/en.json index 1d45d76..0da41e1 100644 --- a/locales/en.json +++ b/locales/en.json @@ -15,7 +15,6 @@ "lastbackgroundsuccessfuldate": "Background Success Date", "lastfullsuccessfuldate": "Last Full Success Date", "lastrecommendedupdatesavailable": "Recommended Available Updates", - "mac_os_uptodate": "macOS Up-to-date", "lastrecommendedupdatesavailable_widget": "macOS Updates Pending", "lastresultcode": "Last Result Code", "lastsessionsuccessful": "Session Successful", diff --git a/provides.yml b/provides.yml index 3b997c2..2d29c86 100755 --- a/provides.yml +++ b/provides.yml @@ -61,4 +61,4 @@ widgets: reports: softwareupdate_report: view: softwareupdate_report - i18n: softwareupdate.reporttitle \ No newline at end of file + i18n: softwareupdate.reporttitle diff --git a/scripts/softwareupdate b/scripts/softwareupdate index 5c2278c..da7e102 100755 --- a/scripts/softwareupdate +++ b/scripts/softwareupdate @@ -303,7 +303,7 @@ def get_ddm_info(): if os.path.isfile("/private/var/db/softwareupdate/SoftwareUpdateDDMStatePersistence.plist"): plist = FoundationPlist.readPlist("/private/var/db/softwareupdate/SoftwareUpdateDDMStatePersistence.plist") - if plist["SUCorePersistedStatePolicyFields"] and plist["SUCorePersistedStatePolicyFields"]["Declarations"]: + if "SUCorePersistedStatePolicyFields" in plist and plist["SUCorePersistedStatePolicyFields"] and "Declarations" in plist["SUCorePersistedStatePolicyFields"]: key_index = 1 ddm_info = "" for declaration in plist["SUCorePersistedStatePolicyFields"]["Declarations"]: diff --git a/views/softwareupdate_allow_prerelease_installation_widget.yml b/views/softwareupdate_allow_prerelease_installation_widget.yml index 97b0865..7020ef6 100755 --- a/views/softwareupdate_allow_prerelease_installation_widget.yml +++ b/views/softwareupdate_allow_prerelease_installation_widget.yml @@ -8,6 +8,8 @@ buttons: - label: 0 i18n_label: no class: btn-danger + search_component: prerelease_off - label: 1 i18n_label: yes class: btn-success + search_component: prerelease_on \ No newline at end of file diff --git a/views/softwareupdate_allow_rsr_installation_widget.yml b/views/softwareupdate_allow_rsr_installation_widget.yml index 79c6cd2..ff76396 100755 --- a/views/softwareupdate_allow_rsr_installation_widget.yml +++ b/views/softwareupdate_allow_rsr_installation_widget.yml @@ -8,6 +8,8 @@ buttons: - label: 0 i18n_label: no class: btn-danger + search_component: rsr_off - label: 1 i18n_label: yes class: btn-success + search_component: rsr_on diff --git a/views/softwareupdate_allow_rsr_removal_widget.yml b/views/softwareupdate_allow_rsr_removal_widget.yml index a90ac86..59c4842 100755 --- a/views/softwareupdate_allow_rsr_removal_widget.yml +++ b/views/softwareupdate_allow_rsr_removal_widget.yml @@ -8,6 +8,8 @@ buttons: - label: 1 i18n_label: yes class: btn-danger + search_component: rsr_removal_on - label: 0 i18n_label: no class: btn-success + search_component: rsr_removal_off diff --git a/views/softwareupdate_auto_update_restart_required_widget.yml b/views/softwareupdate_auto_update_restart_required_widget.yml index 80060a1..71c5525 100755 --- a/views/softwareupdate_auto_update_restart_required_widget.yml +++ b/views/softwareupdate_auto_update_restart_required_widget.yml @@ -8,6 +8,8 @@ buttons: - label: 0 i18n_label: no class: btn-danger + search_component: restart_required_off - label: 1 i18n_label: yes class: btn-success + search_component: restart_required_on diff --git a/views/softwareupdate_auto_update_widget.yml b/views/softwareupdate_auto_update_widget.yml index f60d503..8a3aca7 100755 --- a/views/softwareupdate_auto_update_widget.yml +++ b/views/softwareupdate_auto_update_widget.yml @@ -8,6 +8,8 @@ buttons: - label: 0 i18n_label: no class: btn-danger + search_component: auto_update_off - label: 1 i18n_label: yes - class: btn-success \ No newline at end of file + class: btn-success + search_component: auto_update_on \ No newline at end of file diff --git a/views/softwareupdate_automaticcheckenabled_widget.yml b/views/softwareupdate_automaticcheckenabled_widget.yml index a5b65e7..b57107f 100755 --- a/views/softwareupdate_automaticcheckenabled_widget.yml +++ b/views/softwareupdate_automaticcheckenabled_widget.yml @@ -8,6 +8,8 @@ buttons: - label: 0 i18n_label: no class: btn-danger + search_component: autocheck_off - label: 1 i18n_label: yes class: btn-success + search_component: autocheck_on diff --git a/views/softwareupdate_automaticdownload_widget.yml b/views/softwareupdate_automaticdownload_widget.yml index 900042b..c993379 100755 --- a/views/softwareupdate_automaticdownload_widget.yml +++ b/views/softwareupdate_automaticdownload_widget.yml @@ -8,6 +8,8 @@ buttons: - label: 0 i18n_label: no class: btn-danger + search_component: autodownload_off - label: 1 i18n_label: yes class: btn-success + search_component: autodownload_on diff --git a/views/softwareupdate_configdatainstall_widget.yml b/views/softwareupdate_configdatainstall_widget.yml index fc9566e..8db41ed 100755 --- a/views/softwareupdate_configdatainstall_widget.yml +++ b/views/softwareupdate_configdatainstall_widget.yml @@ -8,6 +8,8 @@ buttons: - label: 0 i18n_label: no class: btn-danger + search_component: config_install_off - label: 1 i18n_label: yes class: btn-success + search_component: config_install_on diff --git a/views/softwareupdate_criticalupdateinstall_widget.yml b/views/softwareupdate_criticalupdateinstall_widget.yml index 677da1e..2557953 100755 --- a/views/softwareupdate_criticalupdateinstall_widget.yml +++ b/views/softwareupdate_criticalupdateinstall_widget.yml @@ -8,6 +8,8 @@ buttons: - label: 0 i18n_label: no class: btn-danger + search_component: critical_install_off - label: 1 i18n_label: yes class: btn-success + search_component: critical_install_on diff --git a/views/softwareupdate_force_major_deferred_widget.yml b/views/softwareupdate_force_major_deferred_widget.yml index bfd6c21..b567cbe 100755 --- a/views/softwareupdate_force_major_deferred_widget.yml +++ b/views/softwareupdate_force_major_deferred_widget.yml @@ -8,6 +8,8 @@ buttons: - label: 1 i18n_label: yes class: btn-info + search_component: major_deferred_on - label: 0 i18n_label: no class: btn-success + search_component: major_deferred_off diff --git a/views/softwareupdate_force_minor_deferred_widget.yml b/views/softwareupdate_force_minor_deferred_widget.yml index 9959833..1f85755 100755 --- a/views/softwareupdate_force_minor_deferred_widget.yml +++ b/views/softwareupdate_force_minor_deferred_widget.yml @@ -8,6 +8,8 @@ buttons: - label: 1 i18n_label: yes class: btn-info + search_component: minor_deferred_on - label: 0 i18n_label: no class: btn-success + search_component: minor_deferred_off diff --git a/views/softwareupdate_listing.yml b/views/softwareupdate_listing.yml index 92d2c45..edf96ac 100755 --- a/views/softwareupdate_listing.yml +++ b/views/softwareupdate_listing.yml @@ -1,5 +1,5 @@ i18n_title: softwareupdate.reporttitle -not_null_column: lastsuccessfuldate +# not_null_column: lastsuccessfuldate js_link: module/softwareupdate/js/softwareupdate table: - @@ -22,9 +22,10 @@ table: i18n_header: softwareupdate.lastbackgroundsuccessfuldate formatter: timestampToMoment - - column: softwareupdate.lastupdatesavailable - i18n_header: softwareupdate.lastupdatesavailable + column: softwareupdate.lastrecommendedupdatesavailable + i18n_header: softwareupdate.lastrecommendedupdatesavailable formatter: format_softwareupdate_updates_available + filter: uptodateFilter - column: softwareupdate.program_seed i18n_header: softwareupdate.program_seed @@ -36,22 +37,27 @@ table: - column: softwareupdate.allow_prerelease_installation i18n_header: softwareupdate.allow_prerelease_installation - formatter: format_softwareupdate_yes_no + filter: allow_prerelease_installation_filter + formatter: softwareUpdateYesNo - column: softwareupdate.automaticcheckenabled i18n_header: softwareupdate.automaticcheckenabled + filter: automaticcheckenabled_filter formatter: format_softwareupdate_yes_no_rev - column: softwareupdate.automaticdownload i18n_header: softwareupdate.automaticdownload + filter: automaticdownload_filter formatter: format_softwareupdate_yes_no_rev - column: softwareupdate.configdatainstall i18n_header: softwareupdate.configdatainstall + filter: configdatainstall_filter formatter: format_softwareupdate_yes_no_rev - column: softwareupdate.criticalupdateinstall i18n_header: softwareupdate.criticalupdateinstall + filter: criticalupdateinstall_filter formatter: format_softwareupdate_yes_no_rev - column: softwareupdate.xprotect_version @@ -71,32 +77,46 @@ table: - column: softwareupdate.force_delayed_minor_updates i18n_header: softwareupdate.force_delayed_minor_updates + filter: force_minor_deferred_filter formatter: format_softwareupdate_yes_no - column: softwareupdate.force_delayed_major_updates i18n_header: softwareupdate.force_delayed_major_updates + filter: force_major_deferred_filter formatter: format_softwareupdate_yes_no - column: softwareupdate.allow_rapid_security_response_installation i18n_header: softwareupdate.allow_rapid_security_response_installation - formatter: format_softwareupdate_yes_no_rev + filter: allow_rsr_installation_filter + formatter: softwareUpdateYesNo - column: softwareupdate.allow_rapid_security_response_removal i18n_header: softwareupdate.allow_rapid_security_response_removal - formatter: format_softwareupdate_yes_no - - - column: softwareupdate.managed_do_it_later_deferral_count - i18n_header: softwareupdate.managed_do_it_later_deferral_count - filter: ManagedDeferralCounterFilter - - - column: softwareupdate.maximum_managed_do_it_later_deferral_count - i18n_header: softwareupdate.maximum_managed_do_it_later_deferral_count - - - column: softwareupdate.managed_product_keys - i18n_header: softwareupdate.managed_product_keys + filter: allow_rsr_removal_filter + formatter: softwareUpdateYesNo + # - + # column: softwareupdate.managed_do_it_later_deferral_count + # i18n_header: softwareupdate.managed_do_it_later_deferral_count + # filter: ManagedDeferralCounterFilter + # - + # column: softwareupdate.maximum_managed_do_it_later_deferral_count + # i18n_header: softwareupdate.maximum_managed_do_it_later_deferral_count + # - + # column: softwareupdate.managed_product_keys + # i18n_header: softwareupdate.managed_product_keys - column: softwareupdate.ddm_info i18n_header: softwareupdate.ddm_info - column: softwareupdate.catalogurl i18n_header: softwareupdate.catalogurl + - + column: softwareupdate.auto_update_restart_required + i18n_header: softwareupdate.auto_update_restart_required + filter: auto_update_restart_required_filter + formatter: softwareUpdateYesNo + - + column: softwareupdate.auto_update + i18n_header: softwareupdate.auto_update + filter: auto_update_filter + formatter: softwareUpdateYesNo diff --git a/views/softwareupdate_report.yml b/views/softwareupdate_report.yml index ec6b134..f24d685 100755 --- a/views/softwareupdate_report.yml +++ b/views/softwareupdate_report.yml @@ -13,22 +13,20 @@ row3: row4: softwareupdate_force_major_deferred: softwareupdate_force_minor_deferred: - softwareupdate_outofdate: -row5: softwareupdate_allow_rsr_removal: - softwareupdate_allow_rsr_installation: -row6: +row5: softwareupdate_ignored_updates: softwareupdate_pending_recommended_updates: softwareupdate_mrt_version: -row7: +row6: softwareupdate_gatekeeper_disk_version: softwareupdate_gatekeeper_version: softwareupdate_kext_exclude_version: -row8: +row7: softwareupdate_xprotect_version: softwareupdate_xprotect_payloads_version: -row9: + softwareupdate_allow_rsr_installation: +row8: softwareupdate_managed_updates_deferrals: softwareupdate_managed_max_deferrals: - softwareupdate_managed_product_keys: \ No newline at end of file + softwareupdate_managed_product_keys: diff --git a/views/softwareupdate_tab.php b/views/softwareupdate_tab.php index 7dcd0c6..20f1f2a 100755 --- a/views/softwareupdate_tab.php +++ b/views/softwareupdate_tab.php @@ -87,7 +87,7 @@ 'lastsessionsuccessful', 'allow_rapid_security_response_installation', 'allow_rapid_security_response_removal'].includes(prop)) { if (value !== -1) { - sections.main.push(`${i18n.t('softwareupdate.'+prop)}${i18n.t(value ? 'yes' : 'no')}`); + sections.main.push(`${i18n.t('softwareupdate.'+prop)}${i18n.t(parseInt(value) === 1 ? 'yes' : 'no')}`); } } // Handle delayed updates From 535f3a04ec124bacccdbb58029ca0976754f0a08 Mon Sep 17 00:00:00 2001 From: ofirgalcon Date: Sat, 15 Feb 2025 15:09:46 +0000 Subject: [PATCH 5/5] more widget fixes --- js/softwareupdate.js | 20 +++++++++++++++++++ ...eupdate_last_session_successful_widget.yml | 2 ++ views/softwareupdate_listing.yml | 5 +++++ views/softwareupdate_seed_widget.yml | 3 +++ 4 files changed, 30 insertions(+) diff --git a/js/softwareupdate.js b/js/softwareupdate.js index 174591c..df1cebd 100755 --- a/js/softwareupdate.js +++ b/js/softwareupdate.js @@ -289,4 +289,24 @@ var force_minor_deferred_filter = function(colNumber, d){ // Clear global search d.search.value = ''; } +} + +var lastsessionsuccessful_filter = function(colNumber, d){ + // Look for 'last_session_off' keyword + if(d.search.value.match(/^last_session_off$/)) + { + // Add column specific search + d.columns[colNumber].search.value = '= 0'; + // Clear global search + d.search.value = ''; + } + + // Look for 'last_session_on' keyword + if(d.search.value.match(/^last_session_on$/)) + { + // Add column specific search + d.columns[colNumber].search.value = '= 1'; + // Clear global search + d.search.value = ''; + } } \ No newline at end of file diff --git a/views/softwareupdate_last_session_successful_widget.yml b/views/softwareupdate_last_session_successful_widget.yml index b7d3aa6..6465b7f 100755 --- a/views/softwareupdate_last_session_successful_widget.yml +++ b/views/softwareupdate_last_session_successful_widget.yml @@ -8,6 +8,8 @@ buttons: - label: 0 i18n_label: no class: btn-danger + search_component: last_session_off - label: 1 i18n_label: yes class: btn-success + search_component: last_session_on diff --git a/views/softwareupdate_listing.yml b/views/softwareupdate_listing.yml index edf96ac..54aee5d 100755 --- a/views/softwareupdate_listing.yml +++ b/views/softwareupdate_listing.yml @@ -120,3 +120,8 @@ table: i18n_header: softwareupdate.auto_update filter: auto_update_filter formatter: softwareUpdateYesNo + - + column: softwareupdate.lastsessionsuccessful + i18n_header: softwareupdate.lastsessionsuccessful + filter: lastsessionsuccessful_filter + formatter: format_softwareupdate_yes_no_rev diff --git a/views/softwareupdate_seed_widget.yml b/views/softwareupdate_seed_widget.yml index 94e3110..70cc13e 100755 --- a/views/softwareupdate_seed_widget.yml +++ b/views/softwareupdate_seed_widget.yml @@ -9,14 +9,17 @@ buttons: i18n_label: softwareupdate.developerseed class: btn-danger hide_when_zero: true + search_component: Developer Beta - label: "3" i18n_label: softwareupdate.publicseed class: btn-warning hide_when_zero: true + search_component: Public Beta - label: "1" i18n_label: softwareupdate.customerseed class: btn-warning hide_when_zero: true + search_component: AppleSeed Beta - label: "0" i18n_label: softwareupdate.unenrolled class: btn-success