Loading js/ajax_blocks.js +8 −4 Original line number Diff line number Diff line Loading @@ -118,14 +118,18 @@ let $block = $(this); let blockId = $block.data('block-ajax-id'); if (blockId && drupalSettings.block_ajax.blocks[blockId] !== undefined) { // Load block via button. if (drupalSettings.block_ajax.blocks[blockId].block_ajax.load_button) { $('#block-ajax-button-' + blockId).on('click', function() { ajaxBlockHandler($block); }); } else if (drupalSettings.block_ajax.blocks[blockId].block_ajax.refresh_block) { // Refresh ajax block on set interval. if (drupalSettings.block_ajax.blocks[blockId].block_ajax.refresh_block) { let refreshInterval = drupalSettings.block_ajax.blocks[blockId].block_ajax.refresh_interval; setInterval(ajaxBlockHandler, refreshInterval, $block); } else { // Load in block via AJAX on page load. // Load in block via AJAX on page load (default operation). ajaxBlockHandler($block); // On RefreshAjaxBlock event. $block.on('RefreshAjaxBlock', function () { // Execute the handler payload. Loading src/Form/AjaxBlockForm.php +29 −0 Original line number Diff line number Diff line Loading @@ -134,6 +134,33 @@ class AjaxBlockForm extends BlockForm { ], ]; $form['settings']['block_ajax']['load_button'] = [ '#type' => 'checkbox', '#title' => $this->t('Load block via button'), '#description' => $this->t('If checked, button will be rendered in place and used to trigger Ajax loading of block.'), '#default_value' => $settings['block_ajax']['load_button'] ?? FALSE, '#states' => [ 'visible' => [ ':input[name="settings[block_ajax][is_ajax]"]' => ['checked' => TRUE], ':input[name="settings[block_ajax][refresh_block]"]' => ['checked' => FALSE], ], ], ]; $form['settings']['block_ajax']['load_button_text'] = [ '#type' => 'textfield', '#title' => $this->t('Load button text'), '#description' => $this->t('Set the text used for load button.'), '#default_value' => $settings['block_ajax']['load_button_text'] ?? 'Load block', '#size' => 30, '#states' => [ 'visible' => [ ':input[name="settings[block_ajax][is_ajax]"]' => ['checked' => TRUE], ':input[name="settings[block_ajax][load_button]"]' => ['checked' => TRUE], ], ], ]; $form['settings']['block_ajax']['refresh_block'] = [ '#type' => 'checkbox', '#title' => $this->t('Refresh block'), Loading @@ -142,6 +169,7 @@ class AjaxBlockForm extends BlockForm { '#states' => [ 'visible' => [ ':input[name="settings[block_ajax][is_ajax]"]' => ['checked' => TRUE], ':input[name="settings[block_ajax][load_button]"]' => ['checked' => FALSE], ], ], ]; Loading @@ -156,6 +184,7 @@ class AjaxBlockForm extends BlockForm { 'visible' => [ ':input[name="settings[block_ajax][is_ajax]"]' => ['checked' => TRUE], ':input[name="settings[block_ajax][refresh_block]"]' => ['checked' => TRUE], ':input[name="settings[block_ajax][load_button]"]' => ['checked' => FALSE], ], ], ]; Loading templates/block-ajax-block.html.twig +3 −0 Original line number Diff line number Diff line Loading @@ -20,5 +20,8 @@ data-block-ajax-provider="{{ block_settings.provider }}" data-block-ajax-placeholder="{{ block_settings.block_ajax.placeholder }}" data-block-ajax-show-spinner="{{ block_settings.block_ajax.show_spinner }}"> {% if block_settings.block_ajax.load_button %} <button id="block-ajax-button-{{ block_ajax_id }}" class="block-ajax-button" type="button">{{ block_settings.block_ajax.load_button_text|t }}</button> {% endif %} </div> </div> Loading
js/ajax_blocks.js +8 −4 Original line number Diff line number Diff line Loading @@ -118,14 +118,18 @@ let $block = $(this); let blockId = $block.data('block-ajax-id'); if (blockId && drupalSettings.block_ajax.blocks[blockId] !== undefined) { // Load block via button. if (drupalSettings.block_ajax.blocks[blockId].block_ajax.load_button) { $('#block-ajax-button-' + blockId).on('click', function() { ajaxBlockHandler($block); }); } else if (drupalSettings.block_ajax.blocks[blockId].block_ajax.refresh_block) { // Refresh ajax block on set interval. if (drupalSettings.block_ajax.blocks[blockId].block_ajax.refresh_block) { let refreshInterval = drupalSettings.block_ajax.blocks[blockId].block_ajax.refresh_interval; setInterval(ajaxBlockHandler, refreshInterval, $block); } else { // Load in block via AJAX on page load. // Load in block via AJAX on page load (default operation). ajaxBlockHandler($block); // On RefreshAjaxBlock event. $block.on('RefreshAjaxBlock', function () { // Execute the handler payload. Loading
src/Form/AjaxBlockForm.php +29 −0 Original line number Diff line number Diff line Loading @@ -134,6 +134,33 @@ class AjaxBlockForm extends BlockForm { ], ]; $form['settings']['block_ajax']['load_button'] = [ '#type' => 'checkbox', '#title' => $this->t('Load block via button'), '#description' => $this->t('If checked, button will be rendered in place and used to trigger Ajax loading of block.'), '#default_value' => $settings['block_ajax']['load_button'] ?? FALSE, '#states' => [ 'visible' => [ ':input[name="settings[block_ajax][is_ajax]"]' => ['checked' => TRUE], ':input[name="settings[block_ajax][refresh_block]"]' => ['checked' => FALSE], ], ], ]; $form['settings']['block_ajax']['load_button_text'] = [ '#type' => 'textfield', '#title' => $this->t('Load button text'), '#description' => $this->t('Set the text used for load button.'), '#default_value' => $settings['block_ajax']['load_button_text'] ?? 'Load block', '#size' => 30, '#states' => [ 'visible' => [ ':input[name="settings[block_ajax][is_ajax]"]' => ['checked' => TRUE], ':input[name="settings[block_ajax][load_button]"]' => ['checked' => TRUE], ], ], ]; $form['settings']['block_ajax']['refresh_block'] = [ '#type' => 'checkbox', '#title' => $this->t('Refresh block'), Loading @@ -142,6 +169,7 @@ class AjaxBlockForm extends BlockForm { '#states' => [ 'visible' => [ ':input[name="settings[block_ajax][is_ajax]"]' => ['checked' => TRUE], ':input[name="settings[block_ajax][load_button]"]' => ['checked' => FALSE], ], ], ]; Loading @@ -156,6 +184,7 @@ class AjaxBlockForm extends BlockForm { 'visible' => [ ':input[name="settings[block_ajax][is_ajax]"]' => ['checked' => TRUE], ':input[name="settings[block_ajax][refresh_block]"]' => ['checked' => TRUE], ':input[name="settings[block_ajax][load_button]"]' => ['checked' => FALSE], ], ], ]; Loading
templates/block-ajax-block.html.twig +3 −0 Original line number Diff line number Diff line Loading @@ -20,5 +20,8 @@ data-block-ajax-provider="{{ block_settings.provider }}" data-block-ajax-placeholder="{{ block_settings.block_ajax.placeholder }}" data-block-ajax-show-spinner="{{ block_settings.block_ajax.show_spinner }}"> {% if block_settings.block_ajax.load_button %} <button id="block-ajax-button-{{ block_ajax_id }}" class="block-ajax-button" type="button">{{ block_settings.block_ajax.load_button_text|t }}</button> {% endif %} </div> </div>