<xs:complexType name="bbcode_delete">
<xs:attribute name="name" type="woltlab_varchar" use="required" />
</xs:complexType>
+
+ <xs:complexType name="bbcode_icon">
+ <xs:attribute name="solid" type="xs:boolean" />
+ </xs:complexType>
<!-- imported/updated page menu item element -->
<xs:complexType name="bbcode_import">
<xs:element name="classname" type="woltlab_varchar_nullable" minOccurs="0" />
<xs:element name="attributes" type="attributes_element" minOccurs="0" />
<xs:element name="sourcecode" type="woltlab_boolean" minOccurs="0" />
- <xs:element name="wysiwygicon" type="woltlab_varchar_nullable" minOccurs="0" />
+ <xs:element name="wysiwygicon" type="bbcode_icon" minOccurs="0" />
<xs:element name="buttonlabel" type="woltlab_varchar_nullable" minOccurs="0" />
<xs:element name="isBlockElement" type="woltlab_boolean" minOccurs="0" />
</xs:all>
<bbcode name="quote">
<isBlockElement>1</isBlockElement>
<buttonlabel>wcf.editor.button.quote</buttonlabel>
- <wysiwygicon>fa-quote-left</wysiwygicon>
+ <wysiwygicon solid="true">quote-left</wysiwygicon>
<attributes>
<attribute name="0"/>
<attribute name="1"/>
<isBlockElement>1</isBlockElement>
<sourcecode>1</sourcecode>
<buttonlabel>wcf.editor.button.code</buttonlabel>
- <wysiwygicon>fa-code</wysiwygicon>
+ <wysiwygicon>code</wysiwygicon>
<attributes>
<attribute name="0"/>
<attribute name="1"/>
<bbcode name="spoiler">
<isBlockElement>1</isBlockElement>
<buttonlabel>wcf.editor.button.spoiler</buttonlabel>
- <wysiwygicon>fa-eye-slash</wysiwygicon>
+ <wysiwygicon>eye-slash</wysiwygicon>
<attributes>
<attribute name="0"/>
</attributes>
<htmlclose><![CDATA[kbd]]></htmlclose>
<sourcecode>1</sourcecode>
<buttonlabel>wcf.editor.button.inlineCode</buttonlabel>
- <wysiwygicon>fa-terminal</wysiwygicon>
+ <wysiwygicon>terminal</wysiwygicon>
</bbcode>
<bbcode name="attach">
<classname>wcf\system\bbcode\AttachmentBBCode</classname>
<isBlockElement>1</isBlockElement>
<sourcecode>1</sourcecode>
<buttonlabel>wcf.editor.button.woltlabHtml</buttonlabel>
- <wysiwygicon>fa-html5</wysiwygicon>
+ <wysiwygicon>html5</wysiwygicon>
</bbcode>
<bbcode name="wsa">
<classname>wcf\system\bbcode\WoltLabSuiteArticleBBCode</classname>
const buttonKeep = document.createElement("button");
buttonKeep.innerHTML = '<fa-icon size="16" name="check"></fa-icon>';
+ buttonKeep.type = "button";
buttonKeep.classList.add("jsTooltip");
buttonKeep.title = Language.get("wcf.editor.autosave.keep");
buttonKeep.addEventListener("click", () => this.hideOverlay());
const buttonDiscard = document.createElement("button");
buttonDiscard.innerHTML = '<fa-icon size="16" name="xmark"></fa-icon>';
+ buttonDiscard.type = "button";
buttonDiscard.classList.add("jsTooltip");
buttonDiscard.title = Language.get("wcf.editor.autosave.discard");
buttonDiscard.addEventListener("click", () => {
<dt><label for="wysiwygIcon">{lang}wcf.acp.bbcode.wysiwygIcon{/lang}</label></dt>
<dd>
<div class="inputAddon">
- <input type="text" id="wysiwygIcon" name="wysiwygIcon" value="{$wysiwygIcon}" class="medium">
- <a href="#" class="inputSuffix button jsButtonSearchWysiwygIcon">{icon size=16 name='magnifying-glass'}</a>
+ <input type="text" id="wysiwygIcon" name="wysiwygIcon" value="{$wysiwygIcon}" class="medium" readonly>
+ <button type="button" class="inputSuffix button jsButtonSearchWysiwygIcon">{icon size=16 name='magnifying-glass'}</button>
</div>
{if $errorField == 'wysiwygIcon'}
<small class="innerError">
{include file='fontAwesomeJavaScript'}
<script data-relocate="true">
- require(['WoltLabSuite/Core/Ui/Style/FontAwesome'], function (UiStyleFontAwesome) {
- elBySel('.jsButtonSearchWysiwygIcon').addEventListener('click', function(event) {
- event.preventDefault();
-
- UiStyleFontAwesome.open(function(iconName) {
- elById('wysiwygIcon').value = 'fa-' + iconName;
+ require(['WoltLabSuite/Core/Ui/Style/FontAwesome'], (UiStyleFontAwesome) => {
+ const button = document.querySelector('.jsButtonSearchWysiwygIcon');
+ const input = document.getElementById('wysiwygIcon');
+
+ function openFontAwesomePicker() {
+ UiStyleFontAwesome.open((iconName, forceSolid) => {
+ input.value = `${ iconName };${ String(forceSolid) }`;
});
- });
+ }
+
+ button.addEventListener("click", () => openFontAwesomePicker());
+ input.addEventListener("click", () => openFontAwesomePicker());
});
</script>
container.appendChild(title);
const buttonKeep = document.createElement("button");
buttonKeep.innerHTML = '<fa-icon size="16" name="check"></fa-icon>';
+ buttonKeep.type = "button";
buttonKeep.classList.add("jsTooltip");
buttonKeep.title = Language.get("wcf.editor.autosave.keep");
buttonKeep.addEventListener("click", () => this.hideOverlay());
container.appendChild(buttonKeep);
const buttonDiscard = document.createElement("button");
buttonDiscard.innerHTML = '<fa-icon size="16" name="xmark"></fa-icon>';
+ buttonDiscard.type = "button";
buttonDiscard.classList.add("jsTooltip");
buttonDiscard.title = Language.get("wcf.editor.autosave.discard");
buttonDiscard.addEventListener("click", () => {
$nodeValue[$attributeNo][$attributeValue->tagName] = $attributeValue->nodeValue;
}
}
+ } else if ($element->tagName === 'wysiwygicon') {
+ $solid = $element->getAttribute('solid');
+ $nodeValue = \sprintf(
+ "%s;%s",
+ $element->nodeValue,
+ $solid === 'true' ? 'true' : 'false'
+ );
}
$elements[$element->tagName] = $nodeValue;