mirror of
https://github.com/sky-systems/sky_phone.git
synced 2026-09-04 16:23:22 +00:00
ADD - add in-game phone administration and configuration (#25)
* ADD - build in-game admin command center * ADD - open admin panel by command * ENH - rebuild admin panel as standalone editor * ENH - compact admin workspace navigation * ENH - expand admin device controls * ENH - refine admin panel navigation style * ADD - add SQL phone configurator * FIX - expose complete phone configuration * FIX - make company jobs freely configurable * FIX - align configurator tables to left * ENH - organize configurator collection controls * ENH - organize nested configurator sections * ENH - add configurator field descriptions * FIX - hide fixed configurator add controls * ENH - refine configurator editing experience * ENH - refine admin configurator controls * FIX - apply configurator settings instantly * FIX - close live activity command registration --------- Co-authored-by: Leon.Schmidt <leonmauricewill15@gmail.com>
This commit is contained in:
co-authored by
Leon.Schmidt
parent
7aa4677b81
commit
a9143b0fba
@@ -1567,19 +1567,49 @@ SkyPhoneApps.SendCatalog = send_catalog
|
||||
SkyPhoneApps.SetPhoneOpen = set_phone_open
|
||||
SkyPhoneApps.RegisterClientHooks = register_bundled_client_hooks
|
||||
|
||||
if Config.CustomApps.Enabled and Config.CustomApps.BundledApps then
|
||||
local bundled = SkyPhoneApps.GetBundledManifests()
|
||||
for index = 1, #bundled do
|
||||
local registered, register_error = register_app(normalize_bundled_manifest(bundled[index]))
|
||||
if not registered then
|
||||
error(("[sky_phone] Could not register bundled custom app '%s': %s"):format(
|
||||
bundled[index].id,
|
||||
register_error
|
||||
))
|
||||
local function refresh_bundled_apps()
|
||||
local manifests = Config.CustomApps.Enabled and Config.CustomApps.BundledApps
|
||||
and SkyPhoneApps.GetBundledManifests()
|
||||
or {}
|
||||
local desired_ids = {}
|
||||
for index = 1, #manifests do
|
||||
desired_ids[manifests[index].id] = true
|
||||
end
|
||||
|
||||
local removals = {}
|
||||
for app_id, app in pairs(apps_by_id) do
|
||||
if app.catalog.bundled and not desired_ids[app_id] then
|
||||
removals[#removals + 1] = app_id
|
||||
end
|
||||
end
|
||||
for index = 1, #removals do
|
||||
remove_registered_app(removals[index], true, false)
|
||||
end
|
||||
|
||||
for index = 1, #manifests do
|
||||
local manifest = manifests[index]
|
||||
local existing = apps_by_id[manifest.id]
|
||||
local normalized = normalize_bundled_manifest(manifest)
|
||||
if existing and existing.catalog.bundled then
|
||||
normalized.hooks = existing.hooks
|
||||
apps_by_id[manifest.id] = normalized
|
||||
elseif not existing then
|
||||
local registered, register_error = register_app(normalized)
|
||||
if not registered then
|
||||
error(("[sky_phone] Could not register bundled custom app '%s': %s"):format(
|
||||
manifest.id,
|
||||
register_error
|
||||
))
|
||||
end
|
||||
end
|
||||
end
|
||||
sync_catalog()
|
||||
end
|
||||
|
||||
refresh_bundled_apps()
|
||||
|
||||
AddEventHandler("sky_phone:configurator:updated", refresh_bundled_apps)
|
||||
|
||||
SkyPhoneApps.CompatibilityCore = {
|
||||
Add = add_compatibility_app,
|
||||
AddServerAuthorized = add_server_authorized_compatibility_app,
|
||||
|
||||
Reference in New Issue
Block a user