From a8f7beb20b5114f67aadc25edd65a961010206f0 Mon Sep 17 00:00:00 2001 From: ansuz Date: Thu, 14 Sep 2017 11:36:01 +0200 Subject: [PATCH] remove deprecated apps --- www/media/assets/image.png-encrypted | Bin 27455 -> 0 bytes www/media/index.html | 47 -- www/media/inner.html | 38 -- www/media/main.js | 139 ------ www/oldcode/code.less | 102 ---- www/oldcode/index.html | 41 -- www/oldcode/inner.html | 17 - www/oldcode/inner.js | 40 -- www/oldcode/main.js | 559 ---------------------- www/oldslide/index.html | 40 -- www/oldslide/inner.html | 33 -- www/oldslide/inner.js | 41 -- www/oldslide/main.js | 680 --------------------------- www/oldslide/slide.css | 428 ----------------- www/oldslide/slide.js | 321 ------------- www/oldslide/slide.less | 398 ---------------- 16 files changed, 2924 deletions(-) delete mode 100644 www/media/assets/image.png-encrypted delete mode 100644 www/media/index.html delete mode 100644 www/media/inner.html delete mode 100644 www/media/main.js delete mode 100644 www/oldcode/code.less delete mode 100644 www/oldcode/index.html delete mode 100644 www/oldcode/inner.html delete mode 100644 www/oldcode/inner.js delete mode 100644 www/oldcode/main.js delete mode 100644 www/oldslide/index.html delete mode 100644 www/oldslide/inner.html delete mode 100644 www/oldslide/inner.js delete mode 100644 www/oldslide/main.js delete mode 100644 www/oldslide/slide.css delete mode 100644 www/oldslide/slide.js delete mode 100644 www/oldslide/slide.less diff --git a/www/media/assets/image.png-encrypted b/www/media/assets/image.png-encrypted deleted file mode 100644 index 634bb90f22b5c88fa8295ea79c50e80feb480db0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27455 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 - - - CryptPad - - - - - - - - - - -
-
- -
- -
-

-
-
- - diff --git a/www/media/inner.html b/www/media/inner.html deleted file mode 100644 index 7d04259bb..000000000 --- a/www/media/inner.html +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - -
- - - - diff --git a/www/media/main.js b/www/media/main.js deleted file mode 100644 index c864ad7e4..000000000 --- a/www/media/main.js +++ /dev/null @@ -1,139 +0,0 @@ -define([ - 'jquery', - '/bower_components/chainpad-crypto/crypto.js', - '/bower_components/chainpad-netflux/chainpad-netflux.js', - '/common/toolbar.js', - '/common/cryptpad-common.js', - //'/common/visible.js', - //'/common/notify.js', - //'pdfjs-dist/build/pdf', - //'pdfjs-dist/build/pdf.worker', - '/bower_components/tweetnacl/nacl-fast.min.js', - '/bower_components/file-saver/FileSaver.min.js', -], function ($, Crypto, realtimeInput, Toolbar, Cryptpad /*, Visible, Notify*/) { - //var Messages = Cryptpad.Messages; - //var saveAs = window.saveAs; - //window.Nacl = window.nacl; - $(function () { - - var ifrw = $('#pad-iframe')[0].contentWindow; - var $iframe = $('#pad-iframe').contents(); - - Cryptpad.addLoadingScreen(); - - var andThen = function () { - var $bar = $iframe.find('.toolbar-container'); - var secret = Cryptpad.getSecrets(); - - if (!secret.keys) { throw new Error("You need a hash"); } // TODO - - var cryptKey = secret.keys && secret.keys.fileKeyStr; - var fileId = secret.channel; - var hexFileName = Cryptpad.base64ToHex(fileId); - // var type = "image/png"; - - var parsed = Cryptpad.parsePadUrl(window.location.href); - var defaultName = Cryptpad.getDefaultName(parsed); - - var getTitle = function () { - var pad = Cryptpad.getRelativeHref(window.location.href); - var fo = Cryptpad.getStore().getProxy().fo; - var data = fo.getFileData(pad); - return data ? data.title : undefined; - }; - - var updateTitle = function (newTitle) { - var title = document.title = newTitle; - $bar.find('.' + Toolbar.constants.title).find('span.title').text(title); - $bar.find('.' + Toolbar.constants.title).find('input').val(title); - }; - - var suggestName = function () { - return document.title || getTitle() || ''; - }; - - var renameCb = function (err, title) { - document.title = title; - }; - - var $mt = $iframe.find('#encryptedFile'); - $mt.attr('src', '/blob/' + hexFileName.slice(0,2) + '/' + hexFileName); - $mt.attr('data-crypto-key', 'cryptpad:'+cryptKey); - // $mt.attr('data-type', type); - - $(window.document).on('decryption', function (e) { - var decrypted = e.originalEvent; - var metadata = decrypted.metadata; - - if (decrypted.callback) { decrypted.callback(); } - //console.log(metadata); - //console.log(defaultName); - if (!metadata || metadata.name !== defaultName) { return; } - var title = document.title = metadata.name; - updateTitle(title || defaultName); - }) - .on('decryptionError', function (e) { - var error = e.originalEvent; - Cryptpad.alert(error.message); - }) - .on('decryptionProgress', function (e) { - var progress = e.originalEvent; - console.log(progress.percent); - }); - - require(['/common/media-tag.js'], function (MediaTag) { - var configTb = { - displayed: ['useradmin', 'share', 'newpad'], - ifrw: ifrw, - common: Cryptpad, - title: { - onRename: renameCb, - defaultName: defaultName, - suggestName: suggestName - }, - share: { - secret: secret, - channel: hexFileName - } - }; - Toolbar.create($bar, null, null, null, null, configTb); - - updateTitle(Cryptpad.initialName || getTitle() || defaultName); - - /** - * Allowed mime types that have to be set for a rendering after a decryption. - * - * @type {Array} - */ - var allowedMediaTypes = [ - 'image/png', - 'image/jpeg', - 'image/jpg', - 'image/gif', - 'audio/mp3', - 'audio/ogg', - 'audio/wav', - 'audio/webm', - 'video/mp4', - 'video/ogg', - 'video/webm', - 'application/pdf', - 'application/dash+xml', - 'download' - ]; - - MediaTag.CryptoFilter.setAllowedMediaTypes(allowedMediaTypes); - - MediaTag($mt[0]); - - Cryptpad.removeLoadingScreen(); - }); - }; - - Cryptpad.ready(function () { - andThen(); - Cryptpad.reportAppUsage(); - }); - - }); -}); diff --git a/www/oldcode/code.less b/www/oldcode/code.less deleted file mode 100644 index 36883f377..000000000 --- a/www/oldcode/code.less +++ /dev/null @@ -1,102 +0,0 @@ -@import "/customize/src/less/variables.less"; -@import "/customize/src/less/mixins.less"; -@import "/common/markdown.less"; -@import "/common/file-dialog.less"; - -html, body{ - height: 100%; - width: 100%; - padding: 0px; - margin: 0px; - overflow: hidden; - box-sizing: border-box; - position: relative; -} -body { - display: flex; - flex-flow: column; - max-height: 100%; - min-height: auto; -} - -@slideTime: 500ms; -.CodeMirror { - display: inline-block; - height: 100%; - width: 50%; - &.transition { - transition: width @slideTime, min-width @slideTime, max-width @slideTime; - } - min-width: 20%; - max-width: 80%; - resize: horizontal; - font-size: initial; -} -.CodeMirror.fullPage { - //min-width: 100%; - max-width: 100%; - resize: none; - flex: 1; -} -.CodeMirror-focused .cm-matchhighlight { - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAFklEQVQI12NgYGBgkKzc8x9CMDAwAAAmhwSbidEoSQAAAABJRU5ErkJggg==); - background-position: bottom; - background-repeat: repeat-x; -} -#editorContainer { - flex: 1; - display: flex; - flex-flow: row; - height: 100%; - overflow: hidden; -} -#previewContainer { - flex: 1; - padding: 5px 20px; - overflow: auto; - display: inline-block; - height: 100%; - border-left: 1px solid black; - box-sizing: border-box; - font-family: Calibri,Ubuntu,sans-serif; - word-wrap: break-word; - position: relative; - media-tag { - * { - max-width:100%; - } - iframe[type="application/pdf"] { - max-height:50vh; - } - } -} - -#preview { - max-width: 40vw; - margin: 1em auto; - - .markdown_preformatted-code; - .markdown_gfm-table(black); -} - -.cp-splitter { - position: absolute; - height: 100%; - width: 8px; - top: 0; - left: 0; - - cursor: col-resize; -} - -@media (max-width: @media-medium-screen) { - .CodeMirror { - flex: 1; - max-width: 100%; - resize: none; - } - #previewContainer { - display: none !important; - } -} - diff --git a/www/oldcode/index.html b/www/oldcode/index.html deleted file mode 100644 index 0f8824bd4..000000000 --- a/www/oldcode/index.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - CryptPad - - - - - - - -
- -
diff --git a/www/oldcode/inner.html b/www/oldcode/inner.html deleted file mode 100644 index 99bec8d08..000000000 --- a/www/oldcode/inner.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - -
-
- -
-
- - - diff --git a/www/oldcode/inner.js b/www/oldcode/inner.js deleted file mode 100644 index f6b83beee..000000000 --- a/www/oldcode/inner.js +++ /dev/null @@ -1,40 +0,0 @@ -define([ - 'jquery', - - 'cm/lib/codemirror', - - 'less!/bower_components/components-font-awesome/css/font-awesome.min.css', - 'css!/bower_components/bootstrap/dist/css/bootstrap.min.css', - 'less!/code/code.less', - 'less!/customize/src/less/toolbar.less', - 'less!/customize/src/less/cryptpad.less', - - 'css!cm/lib/codemirror.css', - 'css!cm/addon/dialog/dialog.css', - 'css!cm/addon/fold/foldgutter.css', - - 'cm/mode/markdown/markdown', - 'cm/addon/mode/loadmode', - 'cm/mode/meta', - 'cm/addon/mode/overlay', - 'cm/addon/mode/multiplex', - 'cm/addon/mode/simple', - 'cm/addon/edit/closebrackets', - 'cm/addon/edit/matchbrackets', - 'cm/addon/edit/trailingspace', - 'cm/addon/selection/active-line', - 'cm/addon/search/search', - 'cm/addon/search/match-highlighter', - 'cm/addon/search/searchcursor', - 'cm/addon/dialog/dialog', - 'cm/addon/fold/foldcode', - 'cm/addon/fold/foldgutter', - 'cm/addon/fold/brace-fold', - 'cm/addon/fold/xml-fold', - 'cm/addon/fold/markdown-fold', - 'cm/addon/fold/comment-fold', - 'cm/addon/display/placeholder', -], function ($, CMeditor) { - window.CodeMirror = CMeditor; - $('.loading-hidden').removeClass('loading-hidden'); -}); diff --git a/www/oldcode/main.js b/www/oldcode/main.js deleted file mode 100644 index 53ca1c5d8..000000000 --- a/www/oldcode/main.js +++ /dev/null @@ -1,559 +0,0 @@ -define([ - 'jquery', - '/bower_components/chainpad-crypto/crypto.js', - '/bower_components/chainpad-netflux/chainpad-netflux.js', - '/bower_components/textpatcher/TextPatcher.js', - '/common/toolbar2.js', - 'json.sortify', - '/bower_components/chainpad-json-validator/json-ot.js', - '/common/cryptpad-common.js', - '/common/cryptget.js', - '/common/diffMarked.js', - - 'less!/bower_components/components-font-awesome/css/font-awesome.min.css', - 'less!/customize/src/less/cryptpad.less' -], function ($, Crypto, Realtime, TextPatcher, Toolbar, JSONSortify, JsonOT, Cryptpad, - Cryptget, DiffMd) { - var Messages = Cryptpad.Messages; - - var APP = window.APP = { - Cryptpad: Cryptpad, - }; - - $(function () { - Cryptpad.addLoadingScreen(); - - var ifrw = APP.ifrw = $('#pad-iframe')[0].contentWindow; - var stringify = function (obj) { - return JSONSortify(obj); - }; - - var toolbar; - var editor; - - var secret = Cryptpad.getSecrets(); - var readOnly = secret.keys && !secret.keys.editKeyStr; - if (!secret.keys) { - secret.keys = secret.key; - } - - var onConnectError = function () { - Cryptpad.errorLoadingScreen(Messages.websocketError); - }; - - var andThen = function (CMeditor) { - var $iframe = $('#pad-iframe').contents(); - var $contentContainer = $iframe.find('#editorContainer'); - var $previewContainer = $iframe.find('#previewContainer'); - var $preview = $iframe.find('#preview'); - $preview.click(function (e) { - if (!e.target) { return; } - var $t = $(e.target); - if ($t.is('a') || $t.parents('a').length) { - e.preventDefault(); - var $a = $t.is('a') ? $t : $t.parents('a').first(); - var href = $a.attr('href'); - window.open(href); - } - }); - - var CodeMirror = Cryptpad.createCodemirror(ifrw, Cryptpad, null, CMeditor); - $iframe.find('.CodeMirror').addClass('fullPage'); - editor = CodeMirror.editor; - - var setIndentation = APP.setIndentation = function (units, useTabs) { - if (typeof(units) !== 'number') { return; } - editor.setOption('indentUnit', units); - editor.setOption('tabSize', units); - editor.setOption('indentWithTabs', useTabs); - }; - - var indentKey = 'indentUnit'; - var useTabsKey = 'indentWithTabs'; - - var proxy = Cryptpad.getProxy(); - - var updateIndentSettings = APP.updateIndentSettings = function () { - var indentUnit = proxy.settings[indentKey]; - var useTabs = proxy.settings[useTabsKey]; - setIndentation( - typeof(indentUnit) === 'number'? indentUnit: 2, - typeof(useTabs) === 'boolean'? useTabs: false); - }; - - proxy.on('change', ['settings', indentKey], updateIndentSettings); - proxy.on('change', ['settings', useTabsKey], updateIndentSettings); - - var $bar = $('#pad-iframe')[0].contentWindow.$('#cme_toolbox'); - - var isHistoryMode = false; - - var setEditable = APP.setEditable = function (bool) { - if (readOnly && bool) { return; } - editor.setOption('readOnly', !bool); - }; - - var Title; - var UserList; - var Metadata; - - var config = { - initialState: '{}', - websocketURL: Cryptpad.getWebsocketURL(), - channel: secret.channel, - // our public key - validateKey: secret.keys.validateKey || undefined, - readOnly: readOnly, - crypto: Crypto.createEncryptor(secret.keys), - network: Cryptpad.getNetwork(), - transformFunction: JsonOT.validate, - }; - - var canonicalize = function (t) { return t.replace(/\r\n/g, '\n'); }; - - var setHistory = function (bool, update) { - isHistoryMode = bool; - setEditable(!bool); - if (!bool && update) { - config.onRemote(); - } - }; - - var initializing = true; - - var stringifyInner = function (textValue) { - var obj = { - content: textValue, - metadata: { - users: UserList.userData, - defaultTitle: Title.defaultTitle - } - }; - if (!initializing) { - obj.metadata.title = Title.title; - } - // set mode too... - obj.highlightMode = CodeMirror.highlightMode; - - // stringify the json and send it into chainpad - return stringify(obj); - }; - - var forceDrawPreview = function () { - try { - DiffMd.apply(DiffMd.render(editor.getValue()), $preview); - } catch (e) { console.error(e); } - }; - - var drawPreview = Cryptpad.throttle(function () { - if (CodeMirror.highlightMode !== 'markdown') { return; } - if (!$previewContainer.is(':visible')) { return; } - forceDrawPreview(); - }, 150); - - var onLocal = config.onLocal = function () { - if (initializing) { return; } - if (isHistoryMode) { return; } - if (readOnly) { return; } - - editor.save(); - - drawPreview(); - - var textValue = canonicalize(CodeMirror.$textarea.val()); - var shjson = stringifyInner(textValue); - - APP.patchText(shjson); - - if (APP.realtime.getUserDoc() !== shjson) { - console.error("realtime.getUserDoc() !== shjson"); - } - }; - - var mediaTagModes = [ - 'markdown', - 'html', - 'htmlembedded', - 'htmlmixed', - 'index.html', - 'php', - 'velocity', - 'xml', - ]; - - var onModeChanged = function (mode) { - var $codeMirror = $iframe.find('.CodeMirror'); - window.clearTimeout(APP.previewTo); - $codeMirror.addClass('transition'); - APP.previewTo = window.setTimeout(function () { - $codeMirror.removeClass('transition'); - }, 500); - if (mediaTagModes.indexOf(mode) !== -1) { - APP.$mediaTagButton.show(); - } else { APP.$mediaTagButton.hide(); } - - if (mode === "markdown") { - APP.$previewButton.show(); - Cryptpad.getPadAttribute('previewMode', function (e, data) { - if (e) { return void console.error(e); } - if (data !== false) { - $previewContainer.show(); - APP.$previewButton.addClass('active'); - $codeMirror.removeClass('fullPage'); - } - }); - return; - } - APP.$previewButton.hide(); - $previewContainer.hide(); - APP.$previewButton.removeClass('active'); - $codeMirror.addClass('fullPage'); - if (typeof(APP.updateIndentSettings) === 'function') { - APP.updateIndentSettings(); - } - }; - - config.onInit = function (info) { - UserList = Cryptpad.createUserList(info, config.onLocal, Cryptget, Cryptpad); - - var titleCfg = { getHeadingText: CodeMirror.getHeadingText }; - Title = Cryptpad.createTitle(titleCfg, config.onLocal, Cryptpad); - - Metadata = Cryptpad.createMetadata(UserList, Title, null, Cryptpad); - - var configTb = { - displayed: ['title', 'useradmin', 'spinner', 'lag', 'state', 'share', 'userlist', 'newpad', 'limit', 'upgrade'], - userList: UserList.getToolbarConfig(), - share: { - secret: secret, - channel: info.channel - }, - title: Title.getTitleConfig(), - common: Cryptpad, - readOnly: readOnly, - ifrw: ifrw, - realtime: info.realtime, - network: info.network, - $container: $bar, - $contentContainer: $contentContainer - }; - toolbar = APP.toolbar = Toolbar.create(configTb); - - Title.setToolbar(toolbar); - CodeMirror.init(config.onLocal, Title, toolbar); - - var $rightside = toolbar.$rightside; - var $drawer = toolbar.$drawer; - - var editHash; - if (!readOnly) { - editHash = Cryptpad.getEditHashFromKeys(info.channel, secret.keys); - } - - /* add a history button */ - var histConfig = { - onLocal: config.onLocal, - onRemote: config.onRemote, - setHistory: setHistory, - applyVal: function (val) { - var remoteDoc = JSON.parse(val || '{}').content; - editor.setValue(remoteDoc || ''); - editor.save(); - }, - $toolbar: $bar - }; - var $hist = Cryptpad.createButton('history', true, {histConfig: histConfig}); - $drawer.append($hist); - - /* save as template */ - if (!Cryptpad.isTemplate(window.location.href)) { - var templateObj = { - rt: info.realtime, - Crypt: Cryptget, - getTitle: Title.getTitle - }; - var $templateButton = Cryptpad.createButton('template', true, templateObj); - $rightside.append($templateButton); - } - - /* add an export button */ - var $export = Cryptpad.createButton('export', true, {}, CodeMirror.exportText); - $drawer.append($export); - - if (!readOnly) { - /* add an import button */ - var $import = Cryptpad.createButton('import', true, {}, CodeMirror.importText); - $drawer.append($import); - } - - /* add a forget button */ - var forgetCb = function (err) { - if (err) { return; } - setEditable(false); - }; - var $forgetPad = Cryptpad.createButton('forget', true, {}, forgetCb); - $rightside.append($forgetPad); - - var fileDialogCfg = { - $body: $iframe.find('body'), - onSelect: function (href) { - var parsed = Cryptpad.parsePadUrl(href); - var hexFileName = Cryptpad.base64ToHex(parsed.hashData.channel); - var src = '/blob/' + hexFileName.slice(0,2) + '/' + hexFileName; - var mt = ''; - editor.replaceSelection(mt); - }, - data: APP - }; - APP.$mediaTagButton = $('