diff --git a/web/document_attachments_view.js b/web/document_attachments_view.js new file mode 100644 index 000000000..3637124f3 --- /dev/null +++ b/web/document_attachments_view.js @@ -0,0 +1,57 @@ +/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ +/* Copyright 2012 Mozilla Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/* globals PDFView, DownloadManager, getFileName */ + +'use strict'; + +var DocumentAttachmentsView = function documentAttachmentsView(attachments) { + var attachmentsView = document.getElementById('attachmentsView'); + while (attachmentsView.firstChild) { + attachmentsView.removeChild(attachmentsView.firstChild); + } + + if (!attachments) { + if (!attachmentsView.classList.contains('hidden')) { + PDFView.switchSidebarView('thumbs'); + } + return; + } + + function bindItemLink(domObj, item) { + domObj.href = '#'; + domObj.onclick = function documentAttachmentsViewOnclick(e) { + var downloadManager = new DownloadManager(); + downloadManager.downloadData(item.content, getFileName(item.filename), + ''); + return false; + }; + } + + var names = Object.keys(attachments).sort(function(a,b) { + return a.toLowerCase().localeCompare(b.toLowerCase()); + }); + for (var i = 0, ii = names.length; i < ii; i++) { + var item = attachments[names[i]]; + var div = document.createElement('div'); + div.className = 'attachmentsItem'; + var a = document.createElement('a'); + bindItemLink(a, item); + a.textContent = getFileName(item.filename); + div.appendChild(a); + attachmentsView.appendChild(div); + } +}; diff --git a/web/document_outline_view.js b/web/document_outline_view.js new file mode 100644 index 000000000..74dbe3fb4 --- /dev/null +++ b/web/document_outline_view.js @@ -0,0 +1,65 @@ +/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ +/* Copyright 2012 Mozilla Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/* globals PDFView */ + +'use strict'; + +var DocumentOutlineView = function documentOutlineView(outline) { + var outlineView = document.getElementById('outlineView'); + while (outlineView.firstChild) { + outlineView.removeChild(outlineView.firstChild); + } + + if (!outline) { + if (!outlineView.classList.contains('hidden')) { + PDFView.switchSidebarView('thumbs'); + } + return; + } + + function bindItemLink(domObj, item) { + domObj.href = PDFView.getDestinationHash(item.dest); + domObj.onclick = function documentOutlineViewOnclick(e) { + PDFView.navigateTo(item.dest); + return false; + }; + } + + var queue = [{parent: outlineView, items: outline}]; + while (queue.length > 0) { + var levelData = queue.shift(); + var i, n = levelData.items.length; + for (i = 0; i < n; i++) { + var item = levelData.items[i]; + var div = document.createElement('div'); + div.className = 'outlineItem'; + var a = document.createElement('a'); + bindItemLink(a, item); + a.textContent = item.title; + div.appendChild(a); + + if (item.items.length > 0) { + var itemsDiv = document.createElement('div'); + itemsDiv.className = 'outlineItems'; + div.appendChild(itemsDiv); + queue.push({parent: itemsDiv, items: item.items}); + } + + levelData.parent.appendChild(div); + } + } +}; diff --git a/web/viewer.html b/web/viewer.html index 5959ebac7..e94584878 100644 --- a/web/viewer.html +++ b/web/viewer.html @@ -73,6 +73,8 @@ http://sourceforge.net/adobe/cmap/wiki/License/ + + diff --git a/web/viewer.js b/web/viewer.js index 4a0fe55bb..c44ca8dd4 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -19,7 +19,8 @@ getFileName, scrollIntoView, getPDFFileNameFromURL, PDFHistory, Preferences, ViewHistory, PageView, ThumbnailView, URL, noContextMenuHandler, SecondaryToolbar, PasswordPrompt, - PresentationMode, HandTool, Promise, DocumentProperties */ + PresentationMode, HandTool, Promise, DocumentProperties, + DocumentOutlineView, DocumentAttachmentsView */ 'use strict'; @@ -1636,91 +1637,8 @@ var PDFView = { //#include page_view.js //#include thumbnail_view.js //#include text_layer_builder.js - -var DocumentOutlineView = function documentOutlineView(outline) { - var outlineView = document.getElementById('outlineView'); - while (outlineView.firstChild) { - outlineView.removeChild(outlineView.firstChild); - } - - if (!outline) { - if (!outlineView.classList.contains('hidden')) { - PDFView.switchSidebarView('thumbs'); - } - return; - } - - function bindItemLink(domObj, item) { - domObj.href = PDFView.getDestinationHash(item.dest); - domObj.onclick = function documentOutlineViewOnclick(e) { - PDFView.navigateTo(item.dest); - return false; - }; - } - - - var queue = [{parent: outlineView, items: outline}]; - while (queue.length > 0) { - var levelData = queue.shift(); - var i, n = levelData.items.length; - for (i = 0; i < n; i++) { - var item = levelData.items[i]; - var div = document.createElement('div'); - div.className = 'outlineItem'; - var a = document.createElement('a'); - bindItemLink(a, item); - a.textContent = item.title; - div.appendChild(a); - - if (item.items.length > 0) { - var itemsDiv = document.createElement('div'); - itemsDiv.className = 'outlineItems'; - div.appendChild(itemsDiv); - queue.push({parent: itemsDiv, items: item.items}); - } - - levelData.parent.appendChild(div); - } - } -}; - -var DocumentAttachmentsView = function documentAttachmentsView(attachments) { - var attachmentsView = document.getElementById('attachmentsView'); - while (attachmentsView.firstChild) { - attachmentsView.removeChild(attachmentsView.firstChild); - } - - if (!attachments) { - if (!attachmentsView.classList.contains('hidden')) { - PDFView.switchSidebarView('thumbs'); - } - return; - } - - function bindItemLink(domObj, item) { - domObj.href = '#'; - domObj.onclick = function documentAttachmentsViewOnclick(e) { - var downloadManager = new DownloadManager(); - downloadManager.downloadData(item.content, getFileName(item.filename), - ''); - return false; - }; - } - - var names = Object.keys(attachments).sort(function(a,b) { - return a.toLowerCase().localeCompare(b.toLowerCase()); - }); - for (var i = 0, ii = names.length; i < ii; i++) { - var item = attachments[names[i]]; - var div = document.createElement('div'); - div.className = 'attachmentsItem'; - var a = document.createElement('a'); - bindItemLink(a, item); - a.textContent = getFileName(item.filename); - div.appendChild(a); - attachmentsView.appendChild(div); - } -}; +//#include document_outline_view.js +//#include document_attachments_view.js //#if CHROME //(function rewriteUrlClosure() {