@@ -233,6 +233,11 @@ public function addSettings($setting, $newId, $type = null)
233233 }
234234 }
235235
236+ if ($ type === 'ui_settings ' ) {
237+ $ config ['id ' ] = ['css-override ' , 'login-footer ' , 'logo-alt-text ' ];
238+ $ config ['type ' ] = $ type ;
239+ }
240+
236241 BundleSetting::create ([
237242 'bundle_id ' => $ this ->id ,
238243 'setting ' => $ setting ,
@@ -292,8 +297,16 @@ public function newestVersionFile()
292297 return $ this ->filesSortedByVersion ()->first ();
293298 }
294299
295- public function savePayloadsToFile (array $ payloads )
300+ public function savePayloadsToFile (array $ payloads, array $ payloadsSettings , $ logger = null )
296301 {
302+ if ($ logger === null ) {
303+ $ logger = new Logger ();
304+ }
305+ $ logger ->status ('Saving the bundle locally ' );
306+ if (isset ($ payloadsSettings [0 ])) {
307+ $ payloads = array_merge ($ payloads , $ payloadsSettings [0 ]);
308+ }
309+
297310 $ this ->addMediaFromString (
298311 gzencode (
299312 json_encode ($ payloads )
@@ -338,51 +351,63 @@ public function installSettingsPayloads(array $payloads, $mode, $logger = null)
338351 $ logger ->status ('Installing bundle settings on the this instance ' );
339352 $ logger ->setSteps ($ payloads [0 ]);
340353 $ assets [] = DevLink::import ($ payload [0 ], $ options , $ logger );
341- } else {
342- switch ($ payload [0 ]['setting_type ' ]) {
343- case 'auth_clients ' :
344- $ clientRepository ->create (
345- null ,
346- $ payload [0 ]['name ' ],
347- $ payload [0 ]['redirect ' ],
348- $ payload [0 ]['provider ' ],
349- $ payload [0 ]['personal_access_client ' ],
350- $ payload [0 ]['password_client ' ]
351- );
352- break ;
353- case 'User Settings ' :
354- case 'Email ' :
355- case 'Integrations ' :
356- case 'Log-In & Auth ' :
357- $ settingsMenu = SettingsMenus::where ('menu_group ' , $ payload [0 ]['setting_type ' ])->first ();
358- Setting::updateOrCreate ([
359- 'key ' => $ payload [0 ]['key ' ],
360- ], [
361- 'config ' => $ payload [0 ]['config ' ],
362- 'name ' => $ payload [0 ]['name ' ],
363- 'helper ' => $ payload [0 ]['helper ' ],
364- 'format ' => $ payload [0 ]['format ' ],
365- 'hidden ' => $ payload [0 ]['hidden ' ],
366- 'readonly ' => $ payload [0 ]['readonly ' ],
367- 'ui ' => $ payload [0 ]['ui ' ],
368- 'group_id ' => $ settingsMenu ->id ,
369- 'group ' => $ payload [0 ]['group ' ],
370- ]);
371- break ;
354+ } elseif (isset ($ payload [0 ]['setting_type ' ])) {
355+ foreach ($ payload as $ setting ) {
356+ switch ($ setting ['setting_type ' ]) {
357+ case 'auth_clients ' :
358+ $ clientRepository ->create (
359+ null ,
360+ $ setting ['name ' ],
361+ $ setting ['redirect ' ],
362+ $ setting ['provider ' ],
363+ $ setting ['personal_access_client ' ],
364+ $ setting ['password_client ' ]
365+ );
366+ break ;
367+ case 'User Settings ' :
368+ case 'Email ' :
369+ case 'Integrations ' :
370+ case 'Log-In & Auth ' :
371+ $ settingsMenu = SettingsMenus::where ('menu_group ' , $ setting ['setting_type ' ])->first ();
372+ Setting::updateOrCreate ([
373+ 'key ' => $ setting ['key ' ],
374+ ], [
375+ 'config ' => $ setting ['config ' ],
376+ 'name ' => $ setting ['name ' ],
377+ 'helper ' => $ setting ['helper ' ],
378+ 'format ' => $ setting ['format ' ],
379+ 'hidden ' => $ setting ['hidden ' ],
380+ 'readonly ' => $ setting ['readonly ' ],
381+ 'ui ' => $ setting ['ui ' ],
382+ 'group_id ' => $ settingsMenu ->id ,
383+ 'group ' => $ setting ['group ' ],
384+ ]);
385+ break ;
386+ case 'ui_settings ' :
387+ Setting::updateOrCreate ([
388+ 'key ' => $ setting ['key ' ],
389+ ], [
390+ 'config ' => $ setting ['config ' ],
391+ 'name ' => $ setting ['name ' ],
392+ 'helper ' => $ setting ['helper ' ],
393+ 'format ' => $ setting ['format ' ],
394+ 'hidden ' => $ setting ['hidden ' ],
395+ 'readonly ' => $ setting ['readonly ' ],
396+ 'ui ' => $ setting ['ui ' ],
397+ ]);
398+ break ;
399+ }
372400 }
373401 }
374402 }
375403 }
376404
377- public function install (array $ payloads , $ mode , $ logger = null )
405+ public function install (array $ payloads , $ mode , $ logger = null , $ reinstall = false )
378406 {
379407 if ($ logger === null ) {
380408 $ logger = new Logger ();
381409 }
382410
383- $ logger ->status ('Saving the bundle locally ' );
384- $ this ->savePayloadsToFile ($ payloads );
385-
386411 $ logger ->status ('Installing bundle on the this instance ' );
387412 $ logger ->setSteps ($ payloads );
388413
@@ -394,7 +419,7 @@ public function install(array $payloads, $mode, $logger = null)
394419 $ assets [] = DevLink::import ($ payload , $ options , $ logger );
395420 }
396421
397- if ($ mode === 'update ' ) {
422+ if ($ mode === 'update ' && $ reinstall === false ) {
398423 $ logger ->status ('Syncing bundle assets ' );
399424 $ this ->syncAssets ($ assets );
400425 }
@@ -406,8 +431,7 @@ public function reinstall(string $mode, Logger $logger = null)
406431
407432 $ content = file_get_contents ($ media ->getPath ());
408433 $ payloads = json_decode (gzdecode ($ content ), true );
409-
410- $ this ->install ($ payloads , $ mode , $ logger );
434+ $ this ->install ($ payloads , $ mode , $ logger , true );
411435
412436 $ logger ?->setStatus('done ' );
413437 }
0 commit comments