Skip to content

Commit f702a7c

Browse files
committedJan 18, 2023
add tinymce option 'link_default_protocol'
1 parent 63d2c29 commit f702a7c

File tree

3 files changed

+43
-1
lines changed

3 files changed

+43
-1
lines changed
 

‎src-gwt/org/opencms/gwt/client/ui/input/tinymce/CmsTinyMCEHelper.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,9 @@ public static native JavaScriptObject generateOptionsForTiny(String configuratio
151151
options.valid_elements = "*[*]";
152152
options.allow_script_urls = true;
153153
}
154-
154+
if (config.link_default_protocol) {
155+
options.link_default_protocol = config.link_default_protocol;
156+
}
155157
if (config.toolbar_items) {
156158
toolbarGroup = @org.opencms.gwt.client.ui.input.tinymce.CmsTinyMCEHelper::createToolbar(Lcom/google/gwt/core/client/JavaScriptObject;)(config.toolbar_items);
157159
toolbarGroup += " | spellchecker";

‎src/org/opencms/widgets/CmsHtmlWidget.java

+4
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,10 @@ public static JSONObject getJSONConfiguration(
210210

211211
result.put("spellcheck_language", contentLocale.getLanguage());
212212
}
213+
String linkDefaultProtocol = widgetOptions.getLinkDefaultProtocol();
214+
if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(linkDefaultProtocol)) {
215+
result.put("link_default_protocol", linkDefaultProtocol);
216+
}
213217
} catch (JSONException e) {
214218
LOG.error(e.getLocalizedMessage(), e);
215219
}

‎src/org/opencms/widgets/CmsHtmlWidgetOption.java

+36
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,9 @@ public class CmsHtmlWidgetOption {
296296
/** Option for the "show/hide visual control characters" button. */
297297
public static final String OPTION_VISUALCHARS = "visualchars";
298298

299+
/** Option for the default protocol for links */
300+
public static final String OPTION_LINKDEFAULTPROTOCOL = "linkdefaultprotocol:";
301+
299302
/** The optional buttons that can be additionally added to the button bar. */
300303
public static final String[] OPTIONAL_BUTTONS = {
301304
OPTION_ANCHOR,
@@ -405,6 +408,9 @@ public class CmsHtmlWidgetOption {
405408
/** The style XML path. */
406409
private String m_stylesXmlPath;
407410

411+
/** The link default protocol */
412+
private String m_linkDefaultProtocol;
413+
408414
/**
409415
* Creates a new empty HTML widget object object.<p>
410416
*/
@@ -503,6 +509,10 @@ public static String createConfigurationString(CmsHtmlWidgetOption option) {
503509
result.append(option.getFormatSelectOptions());
504510
added = true;
505511
}
512+
if (CmsStringUtil.isNotEmpty(option.getLinkDefaultProtocol())) {
513+
result.append(OPTION_LINKDEFAULTPROTOCOL);
514+
result.append(option.getLinkDefaultProtocol());
515+
}
506516

507517
return result.toString();
508518
}
@@ -861,6 +871,15 @@ public String getStylesXmlPath() {
861871
return m_stylesXmlPath;
862872
}
863873

874+
/**
875+
* Returns the link default protocol to use when inserting/editing links via the link dialog.
876+
*
877+
* @return the link default protocol to use when inserting/editing links via the link dialog
878+
*/
879+
public String getLinkDefaultProtocol() {
880+
return m_linkDefaultProtocol;
881+
}
882+
864883
/**
865884
* Initializes the widget options from the given configuration String.<p>
866885
*
@@ -1043,6 +1062,17 @@ public void setStylesXmlPath(String stylesXmlPath) {
10431062
m_stylesXmlPath = stylesXmlPath;
10441063
}
10451064

1065+
/**
1066+
* Set the link default protocol to use when inserting/editing links via the link dialog
1067+
*
1068+
* @param linkDefaultProtocol
1069+
* the link default protocol to use when inserting/editing links via the link dialog
1070+
*/
1071+
public void setLinkDefaultProtocol(String linkDefaultProtocol) {
1072+
1073+
m_linkDefaultProtocol = linkDefaultProtocol;
1074+
}
1075+
10461076
/**
10471077
* Returns true if the anchor dialog button should be available.<p>
10481078
*
@@ -1228,6 +1258,12 @@ protected void parseOptions(String configuration) {
12281258
m_importCss = true;
12291259
} else if (option.startsWith(OPTION_ALLOWSCRIPTS)) {
12301260
m_allowScripts = true;
1261+
} else if (option.startsWith(OPTION_LINKDEFAULTPROTOCOL)) {
1262+
// the link default protocol
1263+
option = option.substring(OPTION_LINKDEFAULTPROTOCOL.length());
1264+
if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(option)) {
1265+
setLinkDefaultProtocol(option);
1266+
}
12311267
} else {
12321268
// check if option describes an additional button
12331269
if (OPTIONAL_BUTTONS_LIST.contains(option)) {

0 commit comments

Comments
 (0)