30 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import { JoomlaEditor, JoomlaEditorButton } from 'editor-api';
 | |
| import JoomlaDialog from 'joomla.dialog';
 | |
| 
 | |
| /**
 | |
|  * @copyright  (C) 2018 Open Source Matters, Inc. <https://www.joomla.org>
 | |
|  * @license    GNU General Public License version 2 or later; see LICENSE.txt
 | |
|  */
 | |
| const insertReadmoreHandler = editor => {
 | |
|   const content = editor.getValue();
 | |
|   if (!content) {
 | |
|     editor.replaceSelection('<hr id="system-readmore">');
 | |
|   } else if (content && !content.match(/<hr\s+id=("|')system-readmore("|')\s*\/*>/i)) {
 | |
|     editor.replaceSelection('<hr id="system-readmore">');
 | |
|   } else {
 | |
|     JoomlaDialog.alert(Joomla.Text._('PLG_READMORE_ALREADY_EXISTS'));
 | |
|   }
 | |
| };
 | |
| 
 | |
| // @TODO: Remove in Joomla 6
 | |
| window.insertReadmore = () => {
 | |
|   // eslint-disable-next-line no-console
 | |
|   console.warn('Method window.insertReadmore() is deprecated, use button action "insert-readmore."');
 | |
|   const editor = JoomlaEditor.getActive();
 | |
|   if (!editor) {
 | |
|     throw new Error('An active editor are not available');
 | |
|   }
 | |
|   insertReadmoreHandler(editor);
 | |
| };
 | |
| JoomlaEditorButton.registerAction('insert-readmore', insertReadmoreHandler);
 |