Skip to content

Commit

Permalink
Merge pull request #14215 from jdalsem/activity-last-action
Browse files Browse the repository at this point in the history
removed(widgets): class function saveSettings has been removed
  • Loading branch information
jeabakker committed Nov 18, 2022
2 parents d23c0a4 + 3c58dae commit be384e5
Show file tree
Hide file tree
Showing 21 changed files with 19 additions and 103 deletions.
15 changes: 13 additions & 2 deletions actions/widgets/save.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,21 @@
$context = get_input('context');

$widget = get_entity($guid);
if (!$widget instanceof \ElggWidget || !$widget->saveSettings($params)) {
return elgg_error_response(elgg_echo('widgets:save:failure'));
if (!$widget instanceof \ElggWidget) {
return elgg_error_response(elgg_echo('error:missing_data'));
}

if (!$widget->canEdit()) {
return elgg_error_response(elgg_echo('actionunauthorized'));
}

foreach ($params as $name => $value) {
$widget->$name = $value;
}

// trigger save for cache invalidation
$widget->save();

$context_stack = [];

if ($default_widgets) {
Expand Down
2 changes: 2 additions & 0 deletions docs/appendix/upgrade-notes/4.x-to-5.0.rst
Original file line number Diff line number Diff line change
Expand Up @@ -375,13 +375,15 @@ Removed functions
* ``elgg_get_breadcrumbs``
* ``elgg_pop_breadcrumb``
* ``elgg_trigger_deprecated_plugin_hook``
* ``\ElggWidget->saveSettings()``

Removed events
~~~~~~~~~~~~~~

* ``access:collections:addcollection, collection`` use the ``create, access_collection`` sequence
* ``access:collections:deletecollection, collection`` use the ``delete, access_collection`` sequence
* ``prepare, breadcrumbs`` use ``register, menu:breadcrumbs``
* ``widget_settings, <widget_handler>``

Removed exceptions
~~~~~~~~~~~~~~~~~~
Expand Down
4 changes: 0 additions & 4 deletions docs/guides/events-list.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1293,10 +1293,6 @@ Other
**to:object, <entity_type|metadata|annotation|relationship|river_item>**
Converts the entity ``$params['entity']`` to a StdClass object. This is used mostly for exporting
entity properties for portable data formats like JSON and XML.

**widget_settings, <widget_handler>** |results|
Triggered when saving a widget settings ``$params['params']`` for widget ``$params['widget']``.
If handling saving the settings, the handler should return true to prevent the default code from running.

Plugins
=======
Expand Down
46 changes: 0 additions & 46 deletions engine/classes/ElggWidget.php
Original file line number Diff line number Diff line change
Expand Up @@ -130,50 +130,4 @@ public function move(int $column, int $rank): void {

$this->column = $column;
}

/**
* Saves the widget's settings
*
* Plugins can override the save mechanism using the event:
* 'widget_settings', <widget handler identifier>. The widget and
* the parameters are passed. The event handler should return
* true to indicate that it has successfully saved the settings.
*
* @warning The values in the parameter array cannot be arrays
*
* @param array $params An array of name => value parameters
*
* @return bool
* @since 1.8.0
*/
public function saveSettings(array $params): bool {
if (!$this->canEdit()) {
return false;
}

// Event handlers should return true to indicate the settings have
// been saved so that default code does not run
$event_params = [
'widget' => $this,
'params' => $params
];
if (_elgg_services()->events->triggerResults('widget_settings', (string) $this->handler, $event_params, false) === true) {
return true;
}

if (!empty($params)) {
foreach ($params as $name => $value) {
if (is_array($value)) {
// @todo should we support arrays
return false;
} else {
$this->$name = $value;
}
}

$this->save();
}

return true;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -191,14 +191,14 @@ public function testWidgetSaveFailsIfNoWidget() {
$response = $this->executeAction('widgets/save');

$this->assertInstanceOf(ErrorResponse::class, $response);
$this->assertEquals(elgg_echo('widgets:save:failure'), $response->getContent());
$this->assertEquals(elgg_echo('error:missing_data'), $response->getContent());

$response = $this->executeAction('widgets/save', [
'guid' => $this->user->guid,
]);

$this->assertInstanceOf(ErrorResponse::class, $response);
$this->assertEquals(elgg_echo('widgets:save:failure'), $response->getContent());
$this->assertEquals(elgg_echo('error:missing_data'), $response->getContent());
}

public function testWidgetSaveFailsIfCantEdit() {
Expand All @@ -215,7 +215,7 @@ public function testWidgetSaveFailsIfCantEdit() {
]);

$this->assertInstanceOf(ErrorResponse::class, $response);
$this->assertEquals(elgg_echo('widgets:save:failure'), $response->getContent());
$this->assertEquals(elgg_echo('actionunauthorized'), $response->getContent());
}

public function testWidgetSaveSuccess() {
Expand Down
17 changes: 0 additions & 17 deletions engine/tests/phpunit/integration/ElggWidgetIntegrationTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -68,23 +68,6 @@ public function testGetTitle() {
$this->assertEquals('title_from_definition', $this->widget->getDisplayName());
}

public function testSaveSettings() {
$params = [
'setting_1' => 'value_1',
'setting_1' => 'value_2',
];

$this->assertFalse($this->widget->saveSettings($params));

elgg_call(ELGG_IGNORE_ACCESS, function() use ($params) {
$this->assertTrue($this->widget->saveSettings($params));

foreach ($params as $name => $value) {
$this->assertEquals($value, $this->widget->$name);
}
});
}

public function testHandlerRegistration() {
$this->assertFalse(elgg_is_widget_type('test_handler'));
elgg_unregister_widget_type('test_handler');
Expand Down
2 changes: 0 additions & 2 deletions languages/cmn.php
Original file line number Diff line number Diff line change
Expand Up @@ -185,8 +185,6 @@
'widget' => "组件",
'item:object:widget' => "组件",
'collection:object:widget' => '页面组件',
'widgets:save:success' => "该组件保存成功!",
'widgets:save:failure' => "无法保存该组件!",
'widgets:add:success' => "组件添加成功!",
'widgets:add:failure' => "无法添加该组件!",
'widgets:move:failure' => "不能保存新组件位置。",
Expand Down
2 changes: 0 additions & 2 deletions languages/cs.php
Original file line number Diff line number Diff line change
Expand Up @@ -172,8 +172,6 @@
'widget' => "Udělátko",
'item:object:widget' => "Udělátka",
'collection:object:widget' => 'Udělátka',
'widgets:save:success' => "Udělátko bylo úspěšně uloženo.",
'widgets:save:failure' => "Nemohu uložit udělátko.",
'widgets:add:success' => "Udělátko bylo úspěšně přidáno.",
'widgets:add:failure' => "Nemohu přidat udělátko.",
'widgets:move:failure' => "Nemohu uložit novou pozici udělátka.",
Expand Down
2 changes: 0 additions & 2 deletions languages/de.php
Original file line number Diff line number Diff line change
Expand Up @@ -207,8 +207,6 @@
'widget' => "Widget",
'item:object:widget' => "Widgets",
'collection:object:widget' => 'Widgets',
'widgets:save:success' => "Das Widget wurde hinzugefügt.",
'widgets:save:failure' => "Das Widget konnte nicht hinzugefügt werden. Bitte versuche es noch einmal.",
'widgets:add:success' => "Das Widget wurde hinzugefügt.",
'widgets:add:failure' => "Das Hinzufügen des Widgets ist fehlgeschlagen.",
'widgets:move:failure' => "Die Position des Widgets auf Deiner Seite konnte nicht gespeichert werden.",
Expand Down
2 changes: 0 additions & 2 deletions languages/en.php
Original file line number Diff line number Diff line change
Expand Up @@ -218,8 +218,6 @@
'widget' => "Widget",
'item:object:widget' => "Widget",
'collection:object:widget' => 'Widgets',
'widgets:save:success' => "The widget was successfully saved.",
'widgets:save:failure' => "We could not save your widget.",
'widgets:add:success' => "The widget was successfully added.",
'widgets:add:failure' => "We could not add your widget.",
'widgets:move:failure' => "We could not store the new widget position.",
Expand Down
2 changes: 0 additions & 2 deletions languages/es.php
Original file line number Diff line number Diff line change
Expand Up @@ -188,8 +188,6 @@
'widget' => "Widget",
'item:object:widget' => "Widgets",
'collection:object:widget' => 'Widgets',
'widgets:save:success' => "El widget se guard&oacute; correctamente",
'widgets:save:failure' => "No se pudo guardar el widget, por favor intente nuevamente",
'widgets:add:success' => "Se agreg&oacute; correctamente el widget",
'widgets:add:failure' => "No se pudo a&ntilde;adir el widget",
'widgets:move:failure' => "No se pudo guardar la nueva posici&oacute;n del widget",
Expand Down
2 changes: 0 additions & 2 deletions languages/fa.php
Original file line number Diff line number Diff line change
Expand Up @@ -170,8 +170,6 @@
'widget' => "ابزارک",
'item:object:widget' => "ابزار ها",
'collection:object:widget' => 'ابزار ها',
'widgets:save:success' => "ابزارک با موفقیت ذخیره شد",
'widgets:save:failure' => "امکان ذخیره سازی ابزارک نیست",
'widgets:add:success' => "ابزارک با موفقیت افزوده شد",
'widgets:add:failure' => "امکان افزودن ابزارک نبود.",
'widgets:move:failure' => "امکان ذخیره سازی مکان ابزارک جدید نبود.",
Expand Down
2 changes: 0 additions & 2 deletions languages/fi.php
Original file line number Diff line number Diff line change
Expand Up @@ -173,8 +173,6 @@
'widget' => "Vimpain",
'item:object:widget' => "Vimpaimet",
'collection:object:widget' => 'Vimpaimet',
'widgets:save:success' => "Vimpain tallennettu onnistuneesti.",
'widgets:save:failure' => "Vimpaimen tallentaminen epäonnistui.",
'widgets:add:success' => "Vimpain lisättiin onnituneesti.",
'widgets:add:failure' => "Vimpaimen lisääminen epäonnistui.",
'widgets:move:failure' => "Vimpaimen uuden sijainnin tallentaminen epäonnistui.",
Expand Down
2 changes: 0 additions & 2 deletions languages/fr.php
Original file line number Diff line number Diff line change
Expand Up @@ -220,8 +220,6 @@
'widget' => "Widget",
'item:object:widget' => "Widget",
'collection:object:widget' => 'Widgets',
'widgets:save:success' => "La configuration du widget a bien été enregistrée.",
'widgets:save:failure' => "Un problème est survenu lors de l'enregistrement de la configuration du widget. ",
'widgets:add:success' => "Le widget a bien été ajouté.",
'widgets:add:failure' => "Nous n'avons pas pu ajouter votre widget.",
'widgets:move:failure' => "Nous n'avons pas pu enregistrer la position du nouveau widget.",
Expand Down
2 changes: 0 additions & 2 deletions languages/gl.php
Original file line number Diff line number Diff line change
Expand Up @@ -160,8 +160,6 @@
'widget' => "Trebello",
'item:object:widget' => "Trebellos",
'collection:object:widget' => 'Trebellos',
'widgets:save:success' => "O trebello gardouse correctamente.",
'widgets:save:failure' => "Non foi posíbel gardar o trebello.",
'widgets:add:success' => "O trebello engadiuse correctamente.",
'widgets:add:failure' => "Non foi posíbel engadir o trebello.",
'widgets:move:failure' => "Non foi posíbel almacenar a nova posición do trebello.",
Expand Down
2 changes: 0 additions & 2 deletions languages/it.php
Original file line number Diff line number Diff line change
Expand Up @@ -173,8 +173,6 @@
'widget' => "Widget",
'item:object:widget' => "Widget",
'collection:object:widget' => 'Widget',
'widgets:save:success' => "Il Widget è stato salvato.",
'widgets:save:failure' => "Impossibile salvare il tuo widget.",
'widgets:add:success' => "Il widget è stato aggiunto.",
'widgets:add:failure' => "Impossibile aggiungere il tuo widget.",
'widgets:move:failure' => "Impossibile memorizzare la posizione del nuovo widget.",
Expand Down
2 changes: 0 additions & 2 deletions languages/ja.php
Original file line number Diff line number Diff line change
Expand Up @@ -173,8 +173,6 @@
'widget' => "ウィジェット",
'item:object:widget' => "ウィジェット",
'collection:object:widget' => 'Widgets(ウィジェット)',
'widgets:save:success' => "ウィジェットを保存しました。",
'widgets:save:failure' => "ウィジェットを保存できませんでした。",
'widgets:add:success' => "ウィジェットを追加しました。",
'widgets:add:failure' => "あなたのウィジェットを追加できませんでした。",
'widgets:move:failure' => "ウィジェットを新しい場所に移動できませんでした。",
Expand Down
2 changes: 0 additions & 2 deletions languages/nl.php
Original file line number Diff line number Diff line change
Expand Up @@ -217,8 +217,6 @@
'widget' => "Widget",
'item:object:widget' => "Widgets",
'collection:object:widget' => 'Widgets',
'widgets:save:success' => "De widget is succesvol opgeslagen.",
'widgets:save:failure' => "Er ging iets mis tijdens het opslaan van je widget. Probeer het nog een keer.",
'widgets:add:success' => "De widget is toegevoegd.",
'widgets:add:failure' => "De widget kon niet worden toegevoegd.",
'widgets:move:failure' => "De nieuwe widgetpositie kon niet worden opgeslagen.",
Expand Down
2 changes: 0 additions & 2 deletions languages/pl.php
Original file line number Diff line number Diff line change
Expand Up @@ -157,8 +157,6 @@
'widget' => "Gadżet",
'item:object:widget' => "Gadżety",
'collection:object:widget' => 'Gadżety',
'widgets:save:success' => "Gadżet został zapisany pomyślnie.",
'widgets:save:failure' => "Nie można było zapisać gadżetu.",
'widgets:add:success' => "Gadżet dodany pomyślnie.",
'widgets:add:failure' => "Nie mogliśmy dodać tego gadżetu.",
'widgets:move:failure' => "Nie mogliśmy zapisać nowej pozycji gadżetu.",
Expand Down
4 changes: 1 addition & 3 deletions languages/sv.php
Original file line number Diff line number Diff line change
Expand Up @@ -194,8 +194,6 @@
'widget' => "Widget",
'item:object:widget' => "Widget",
'collection:object:widget' => 'Widgets',
'widgets:save:success' => "Widgeten sparades med lyckat resultat.",
'widgets:save:failure' => "Vi kunde inte spara din widget.",
'widgets:add:success' => "Widgeten lades till med lyckat resultat.",
'widgets:add:failure' => "Vi kunde inte lägga till din widget.",
'widgets:move:failure' => "Vi kunde inte lagra den nya widgetens position.",
Expand Down Expand Up @@ -234,7 +232,7 @@
'avatar:current' => 'Nuvarande avatar',
'avatar:remove' => 'Ta bort din avatar och ställ in standardikonen',
'avatar:crop:title' => 'Beskärningsverktyg för avatar',
'avatar:upload:instructions' => "Din avatar visas runt om på den här webbplatsen. Du kan
'avatar:upload:instructions' => "Din avatar visas runt om på den här webbplatsen. Du kan
ändra den hur ofta du vill. (Accepterade fil-format: GIF, JPG eller PNG)",
'avatar:create:instructions' => 'Tryck och dra en fyrkant nedan för att matcha hur du vill att din avatar blir beskuren. En förhandsvisning kommer att visa sig i en box till höger. När du är nöjd med förhandsvisningen, tryck "Skapa din avatar". Den här beskurna versionen kommer användas runt omkring på webbplatsen som din avatar.',
'avatar:upload:success' => 'Avatar laddades upp med lyckat resultat',
Expand Down
2 changes: 0 additions & 2 deletions languages/zh_hans.php
Original file line number Diff line number Diff line change
Expand Up @@ -185,8 +185,6 @@
'widget' => "组件",
'item:object:widget' => "组件",
'collection:object:widget' => '页面组件',
'widgets:save:success' => "该组件保存成功!",
'widgets:save:failure' => "无法保存该组件!",
'widgets:add:success' => "组件添加成功!",
'widgets:add:failure' => "无法添加该组件!",
'widgets:move:failure' => "不能保存新组件位置。",
Expand Down

0 comments on commit be384e5

Please sign in to comment.