Oasis 0.8.7 mobile (nodejs-project baseline)
This commit is contained in:
commit
e563b86ede
226 changed files with 141968 additions and 0 deletions
97
src/views/pm_view.js
Normal file
97
src/views/pm_view.js
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
const { div, h2, p, section, button, form, input, textarea, br, label, pre, span, strong } = require("../server/node_modules/hyperaxe");
|
||||
const { template, i18n } = require('./main_views');
|
||||
const { getConfig } = require('../configs/config-manager.js');
|
||||
|
||||
exports.pmView = async (initialRecipients = '', initialSubject = '', initialText = '', showPreview = false, sentKey = '', crypterError = false, crypterPreview = null, recipientError = false) => {
|
||||
const title = i18n.pmSendTitle;
|
||||
const description = i18n.pmDescription;
|
||||
const textLen = (initialText || '').length;
|
||||
|
||||
const { renderEncryptedChip, renderDoubleEncryptionChip } = require('./clearnet_view');
|
||||
return template(
|
||||
title,
|
||||
section(
|
||||
div({ class: "tags-header" },
|
||||
div({ class: "title-with-chip" }, h2(title), renderEncryptedChip(i18n)),
|
||||
p(description)
|
||||
),
|
||||
crypterError
|
||||
? div({ class: "pm-form-error-msg" }, p('✗ ' + i18n.pmCrypterTooLong))
|
||||
: null,
|
||||
recipientError
|
||||
? div({ class: "pm-form-error-msg" }, p('✗ ' + i18n.pmInvalidRecipients))
|
||||
: null,
|
||||
sentKey
|
||||
? div({ class: "pm-sent-key" },
|
||||
input({ type: "text", readonly: true, value: sentKey, class: "pm-sent-key-value" })
|
||||
)
|
||||
: null,
|
||||
section(
|
||||
div({ class: "pm-form" },
|
||||
form({ method: "POST", action: "/pm", id: "pm-form" },
|
||||
label({ for: "recipients" }, i18n.pmLimitsHint),
|
||||
br(),
|
||||
input({
|
||||
type: "text",
|
||||
name: "recipients",
|
||||
placeholder: i18n.pmRecipientsHint,
|
||||
required: true,
|
||||
value: initialRecipients,
|
||||
maxlength: "511"
|
||||
}),
|
||||
br(),
|
||||
label({ for: "subject" }, i18n.pmSubject),
|
||||
br(),
|
||||
input({ type: "text", name: "subject", placeholder: i18n.pmSubjectHint, value: initialSubject, maxlength: "150" }),
|
||||
br(),
|
||||
label({ for: "text" }, i18n.pmText),
|
||||
br(),
|
||||
textarea({ name: "text", rows: "6", cols: "50", id: "pm-text", maxlength: "8096" }, initialText),
|
||||
div({ class: "pm-crypter-row" },
|
||||
label({ for: "pm-crypter" },
|
||||
input({ type: "checkbox", name: "crypter", value: "1", id: "pm-crypter" }),
|
||||
renderDoubleEncryptionChip(i18n)
|
||||
)
|
||||
),
|
||||
div({ class: "pm-actions-block" },
|
||||
div({ class: "pm-actions" },
|
||||
button({ type: "submit", formaction: "/pm/preview", formmethod: "POST" }, i18n.pmPreview),
|
||||
button({ type: "submit", class: "btn-compact" }, i18n.pmSend)
|
||||
)
|
||||
)
|
||||
),
|
||||
showPreview
|
||||
? (crypterPreview
|
||||
? div({ class: "pm-preview pm-crypter-preview" },
|
||||
div({ class: "title-with-chip" }, h2(i18n.pmPreviewTitle), renderEncryptedChip(i18n)),
|
||||
p({ class: "pm-preview-count" }, `${(initialText || '').length} ${i18n.pmCrypterCharsLabel}`),
|
||||
div({ class: "pm-preview-content" }, pre({ class: "pm-pre" }, initialText || '')),
|
||||
div({ class: "pm-sent-key" },
|
||||
input({ type: "text", readonly: true, value: crypterPreview.key, class: "pm-sent-key-value" })
|
||||
),
|
||||
div({ class: "title-with-chip" }, h2(i18n.pmCrypterCipherLabel), renderDoubleEncryptionChip(i18n)),
|
||||
p({ class: "pm-preview-count" }, `${(crypterPreview.cipher || '').length} ${i18n.pmCrypterCharsLabel}`),
|
||||
div({ class: "pm-preview-content" }, pre({ class: "pm-pre" }, crypterPreview.cipher || '')),
|
||||
form({ method: "POST", action: "/pm", class: "pm-crypter-send-form" },
|
||||
input({ type: "hidden", name: "recipients", value: initialRecipients }),
|
||||
input({ type: "hidden", name: "subject", value: initialSubject }),
|
||||
input({ type: "hidden", name: "text", value: initialText }),
|
||||
input({ type: "hidden", name: "crypter", value: "1" }),
|
||||
input({ type: "hidden", name: "crypterKey", value: crypterPreview.key }),
|
||||
input({ type: "hidden", name: "precomputed", value: crypterPreview.cipher }),
|
||||
button({ type: "submit", class: "btn-compact" }, i18n.pmSend)
|
||||
)
|
||||
)
|
||||
: div({ id: "pm-preview-area", class: "pm-preview" },
|
||||
div({ class: "title-with-chip" }, h2(i18n.pmPreviewTitle), renderEncryptedChip(i18n)),
|
||||
p({ id: "pm-preview-count", class: "pm-preview-count" }, `${textLen}/8096`),
|
||||
div({ id: "pm-preview-content", class: "pm-preview-content" },
|
||||
pre({ class: "pm-pre" }, initialText || '')
|
||||
)
|
||||
))
|
||||
: null
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue