diff --git a/src/Common/ModalOpener.php b/src/Common/ModalOpener.php new file mode 100644 index 00000000..dba3b26d --- /dev/null +++ b/src/Common/ModalOpener.php @@ -0,0 +1,77 @@ +getAttributes() + ->set([ + 'data-icinga-modal' => true, + 'data-no-icinga-ajax' => true + ]); + + return $element; + } + + /** + * Create an HTML link + * + * Create an HTML link that opens a modal once clicked + * + * @param string|Url $url + * @param mixed $content + * + * @return BaseHtmlElement + */ + public static function createLink($url, $content): BaseHtmlElement + { + return static::addTo(new Link($content, $url)); + } + + /** + * Create a button link + * + * Create a button link that opens a modal once clicked + * + * @param string|Url $url + * @param mixed $content + * @param string|null $icon + * + * @return BaseHtmlElement + */ + public static function createButtonLink($url, $content, string $icon = null): BaseHtmlElement + { + return static::addTo(new ButtonLink($content, $url, $icon)); + } + + /** + * Create an action link + * + * Create an action link that opens a modal once clicked + * + * @param string|Url $url + * @param mixed $content + * @param string|null $icon + * @return BaseHtmlElement + */ + public static function createActionLink($url, $content, string $icon = null): BaseHtmlElement + { + return static::addTo(new ActionLink($content, $url, $icon)); + } +}