From 1e119e093bb27a46241fd9d33fd38dce669d6f69 Mon Sep 17 00:00:00 2001 From: Tim van der Meij Date: Thu, 24 Apr 2014 21:23:25 +0200 Subject: [PATCH] Move DocumentOutlineView to its own file --- web/document_outline_view.js | 65 ++++++++++++++++++++++++++++++++++++ web/viewer.html | 1 + web/viewer.js | 51 ++-------------------------- 3 files changed, 69 insertions(+), 48 deletions(-) create mode 100644 web/document_outline_view.js 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..bdce51ae8 100644 --- a/web/viewer.html +++ b/web/viewer.html @@ -73,6 +73,7 @@ http://sourceforge.net/adobe/cmap/wiki/License/ + diff --git a/web/viewer.js b/web/viewer.js index 4a0fe55bb..0826e12ba 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 */ 'use strict'; @@ -1636,53 +1637,7 @@ 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); - } - } -}; +//#include document_outline_view.js var DocumentAttachmentsView = function documentAttachmentsView(attachments) { var attachmentsView = document.getElementById('attachmentsView');