Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 0 additions & 20 deletions eejs.js

This file was deleted.

10 changes: 7 additions & 3 deletions ep.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"client_hooks": {
"postAceInit": "ep_reference/static/js/index:postAceInit",
"handleClientMessage_CUSTOM": "ep_reference/static/js/index",
"handleClientMessage_CLIENT_MESSAGE": "ep_reference/static/js/index:handleClientMessage_CLIENT_MESSAGE",
"aceInitialized": "ep_reference/static/js/index",
"aceAttribsToClasses": "ep_reference/static/js/index",
"aceDomLineProcessLineAttributes": "ep_reference/static/js/index",
Expand All @@ -15,9 +16,12 @@
"aceRegisterLineAttributes":"ep_reference/static/js/index"
},
"hooks": {
"eejsBlock_body":"ep_reference/eejs",
"eejsBlock_mySettings":"ep_reference/eejs",
"eejsBlock_dd_help":"ep_reference/eejs"
"loadSettings": "ep_reference/index",
"clientVars": "ep_reference/index",
"eejsBlock_body": "ep_reference/index",
"eejsBlock_mySettings": "ep_reference/index",
"eejsBlock_padSettings": "ep_reference/index",
"eejsBlock_dd_help": "ep_reference/index"
}
}
]
Expand Down
29 changes: 29 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
'use strict';

const eejs = require('ep_etherpad-lite/node/eejs/');
const {padToggle} = require('ep_plugin_helpers/pad-toggle-server');

// Parallel User Settings + Pad Wide Settings checkboxes for the reference
// pane visibility. Helper owns the storage, broadcast, enforce, and i18n
// wiring.
const referenceToggle = padToggle({
pluginName: 'ep_reference',
settingId: 'reference',
l10nId: 'ep_reference.title',
defaultLabel: 'Show Reference / Quote creator',
defaultEnabled: false,
});

exports.loadSettings = referenceToggle.loadSettings;
exports.clientVars = referenceToggle.clientVars;
exports.eejsBlock_mySettings = referenceToggle.eejsBlock_mySettings;
exports.eejsBlock_padSettings = referenceToggle.eejsBlock_padSettings;

exports.eejsBlock_body = (hookName, args, cb) => {
args.content += eejs.require('ep_reference/templates/reference.ejs');
cb();
};

exports.eejsBlock_dd_help = (hookName, args, cb) => {
cb();
};
5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "ep_reference",
"description": "Reference content from other Pads",
"version": "0.0.65",
"version": "0.1.0",
"author": "johnyma22 (John McLear) <john@mclear.co.uk>",
"repository": {
"type": "git",
Expand All @@ -11,6 +11,9 @@
"type": "individual",
"url": "https://etherpad.org/"
},
"dependencies": {
"ep_plugin_helpers": "^0.3.0"
},
"devDependencies": {
"eslint": "^8.57.1",
"eslint-config-etherpad": "^4.0.5",
Expand Down
16 changes: 16 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

27 changes: 21 additions & 6 deletions static/js/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,27 @@
/* Include the Security module, we will use this later to escape a HTML attribute*/
const Security = require('ep_etherpad-lite/static/js/security');
const underscore = require('ep_etherpad-lite/static/js/underscore');
// Sub-path import keeps the client bundle clean. Importing the top-level
// `ep_plugin_helpers` index pulls in every helper's getters; `settings` and
// `toggle` reach server-only modules (eejs, Settings) which esbuild can't
// resolve for the browser.
const {padToggle} = require('ep_plugin_helpers/pad-toggle');
let originalRight = 0;

// Same config as the server-side instance — must agree on pluginName,
// settingId, and l10nId for the checkbox ids and clientVars lookup to line up.
const referenceToggle = padToggle({
pluginName: 'ep_reference',
settingId: 'reference',
l10nId: 'ep_reference.title',
defaultLabel: 'Show Reference / Quote creator',
defaultEnabled: false,
});

// Re-export so the helper sees pad-wide broadcasts and refreshes our state
// when another user toggles the pad-wide checkbox.
exports.handleClientMessage_CLIENT_MESSAGE = referenceToggle.handleClientMessage_CLIENT_MESSAGE;

exports.aceEditorCSS = () => ['ep_reference/static/css/editor.css'];

exports.aceRegisterBlockElements = () => ['reference', 'quotation'];
Expand Down Expand Up @@ -47,12 +66,8 @@ exports.postAceInit = (name, context) => {
});
});

$('#options-reference').click(function () {
if ($(this).is(':checked')) {
referenceShow();
} else {
referenceHide();
}
referenceToggle.init({
onChange: (enabled) => { enabled ? referenceShow() : referenceHide(); },
});

$('#referenceForm').submit((e) => {
Expand Down
4 changes: 0 additions & 4 deletions templates/referenceSettings.ejs

This file was deleted.

Loading