From ebcd30fadcdbefc7d177b37575b81d60f9f2fd2a Mon Sep 17 00:00:00 2001 From: bootstraponline Date: Fri, 18 May 2012 11:50:38 -0600 Subject: [PATCH 1/8] Add file view. --- lib/gollum.rb | 1 + lib/gollum/file_view.rb | 155 ++++++++++++++++++ lib/gollum/frontend/app.rb | 7 + .../frontend/public/gollum/css/_styles.css | 110 +++++++++++++ .../gollum/images/fileview/document.png | Bin 0 -> 177 bytes .../images/fileview/folder-horizontal.png | Bin 0 -> 271 bytes .../images/fileview/toggle-small-expand.png | Bin 0 -> 433 bytes .../gollum/images/fileview/toggle-small.png | Bin 0 -> 462 bytes .../frontend/templates/fileview.mustache | 29 ++++ lib/gollum/page.rb | 11 +- 10 files changed, 311 insertions(+), 2 deletions(-) create mode 100644 lib/gollum/file_view.rb create mode 100644 lib/gollum/frontend/public/gollum/css/_styles.css create mode 100644 lib/gollum/frontend/public/gollum/images/fileview/document.png create mode 100644 lib/gollum/frontend/public/gollum/images/fileview/folder-horizontal.png create mode 100644 lib/gollum/frontend/public/gollum/images/fileview/toggle-small-expand.png create mode 100644 lib/gollum/frontend/public/gollum/images/fileview/toggle-small.png create mode 100644 lib/gollum/frontend/templates/fileview.mustache diff --git a/lib/gollum.rb b/lib/gollum.rb index 5cc1e40f..c2dd3d32 100644 --- a/lib/gollum.rb +++ b/lib/gollum.rb @@ -15,6 +15,7 @@ require File.expand_path('../gollum/blob_entry', __FILE__) require File.expand_path('../gollum/wiki', __FILE__) require File.expand_path('../gollum/page', __FILE__) require File.expand_path('../gollum/file', __FILE__) +require File.expand_path('../gollum/file_view', __FILE__) require File.expand_path('../gollum/markup', __FILE__) require File.expand_path('../gollum/sanitization', __FILE__) require File.expand_path('../gollum/tex', __FILE__) diff --git a/lib/gollum/file_view.rb b/lib/gollum/file_view.rb new file mode 100644 index 00000000..4074334d --- /dev/null +++ b/lib/gollum/file_view.rb @@ -0,0 +1,155 @@ +module Gollum +=begin + FileView requires that: + - All files in root dir are processed first + - Then all the folders are sorted and processed +=end + class FileView + def initialize pages + @pages = pages + end + + def enclose_tree string + %Q(
    \n) + string + %Q(\n
) + end + + def new_page page + '' + %Q(
  • #{page.name2}
  • \n) + end + + def new_folder page + new_sub_folder ::File.dirname(page.path), page.name, page.name2 + end + + def new_sub_folder path, name, name2 + <<-HTML + +
  • + +
      +
    1. #{name2}
    2. + HTML + end + + def end_folder + <<-HTML + +
    +
  • + HTML + end + + def render_files + html = '' + count = @pages.size + folder_start = -1 + + # Process all pages until folders start + count.times do | index | + page = @pages[ index ] + path = page.path + + unless path.include? '/' + # Page processed (not contained in a folder) + html += new_page page + else + # Folders start at the next index + folder_start = index + break # Pages finished, move on to folders + end + end + + # If there are no folders, then we're done. + return enclose_tree(html) if folder_start <= -1 + + # Handle special case of only one folder. + if (count - folder_start == 1) + path = @pages[ folder_start ] + + html += <<-HTML +
  • + +
      +
    1. #{page.name2}
    2. +
    +
  • + HTML + + return enclose_tree html + end + + sorted_folders = [] + (folder_start).upto count - 1 do | index | + sorted_folders += [[ @pages[ index ].path, index ]] + end + + # http://stackoverflow.com/questions/3482814/sorting-list-of-string-paths-in-vb-net + sorted_folders.sort! do |first,second| + a = first[0] + b = second[0] + + # use :: operator because gollum defines its own conflicting File class + dir_compare = ::File.dirname(a) <=> ::File.dirname(b) + + # Sort based on directory name unless they're equal (0) in + # which case sort based on file name. + if dir_compare == 0 + ::File.basename(a) <=> ::File.basename(b) + else + dir_compare + end + end + + # Process first folder + page = @pages[ sorted_folders[ 0 ][1] ] + html += new_folder page + + last_folder = ::File.dirname page.path # define last_folder + + # keep track of folder depth, 0 = at root. + depth = 0 + + # process rest of folders + 1.upto(sorted_folders.size - 1) do | index | + page = @pages[ sorted_folders[ index ][1] ] + path = page.path + folder = ::File.dirname path + + if last_folder == folder + # same folder + html += new_page page + elsif folder.include?('/') + # check if we're going up or down a depth level + if last_folder.scan('/').size > folder.scan('/').size + # end tag for 1 subfolder & 1 parent folder + # so emit 2 end tags + 2.times { html += end_folder; } + depth -= 1 + else + depth += 1 + end + + # subfolder + html += new_sub_folder ::File.dirname(page.path).split('/').last, page.name, page.name2 + else + # depth+1 because we need an additional end_folder + (depth+1).times { html += end_folder; } + depth = 0 + # New root folder + html += new_folder page + end + + last_folder = folder + end + + # Process last folder's ending tags. + (depth+1).times { + depth.times { html += end_folder; } + depth = 0 + } + + # return the completed html + enclose_tree html + end # end render_files + end # end FileView class +end # end Gollum module diff --git a/lib/gollum/frontend/app.rb b/lib/gollum/frontend/app.rb index c597d4ba..9549e335 100644 --- a/lib/gollum/frontend/app.rb +++ b/lib/gollum/frontend/app.rb @@ -200,6 +200,13 @@ module Precious mustache :pages end + get '/fileview' do + wiki = Gollum::Wiki.new(settings.gollum_path, settings.wiki_options) + @results = Gollum::FileView.new(wiki.pages).render_files + @ref = wiki.ref + mustache :fileview + end + get '/*' do show_page_or_file(params[:splat].first) end diff --git a/lib/gollum/frontend/public/gollum/css/_styles.css b/lib/gollum/frontend/public/gollum/css/_styles.css new file mode 100644 index 00000000..d70f29ed --- /dev/null +++ b/lib/gollum/frontend/public/gollum/css/_styles.css @@ -0,0 +1,110 @@ +/* Just some base styles not needed for example to function */ +*, html { font-family: Verdana, Arial, Helvetica, sans-serif; } + + +#results a:hover { + background-color: #4c4c4c; +} + +#home_button { + position: absolute; + top: 10px; + left: 50%; +} + +#home_button .minibutton { +/* controls size of home btn */ +font-size: 1em; +text-align: center; +} + +#results { + position: absolute; + top: 60px; + left: 10px; +} + + +body, form, ul, li, p, h1, h2, h3, h4, h5 +{ + margin: 0; + padding: 0; +} +body { background-color: #606061; color: #ffffff; margin: 0; } +img { border: none; } +p +{ + font-size: 1em; + margin: 0 0 1em 0; +} + +html { font-size: 100%; /* IE hack */ } +body { font-size: 1em; /* Sets base font size to 16px */ } +table { font-size: 100%; /* IE hack */ } +input, select, textarea, th, td { font-size: 1em; } + +/* CSS Tree menu styles */ +ol.tree +{ + padding: 0 0 0 30px; + width: 300px; +} + li + { + position: relative; + margin-left: -15px; + list-style: none; + } + li.file + { + margin-left: -1px !important; + height: 1.5em; + } + li.file a + { + background: url(/images/fileview/document.png) 0 0 no-repeat; + color: #fff; + padding-left: 21px; + text-decoration: none; + display: block; + } + li.file a[href *= '.pdf'] { background: url(/images/fileview/document.png) 0 0 no-repeat; } + li.file a[href *= '.html'] { background: url(/images/fileview/document.png) 0 0 no-repeat; } + li.file a[href $= '.css'] { background: url(/images/fileview/document.png) 0 0 no-repeat; } + li.file a[href $= '.js'] { background: url(/images/fileview/document.png) 0 0 no-repeat; } + li input + { + position: absolute; + left: 0; + margin-left: 0; + opacity: 0; + z-index: 2; + cursor: pointer; + height: 1em; + width: 1em; + top: 0; + } + li input + ol + { + background: url(/images/fileview/toggle-small-expand.png) 40px 0 no-repeat; + margin: -1.188em 0 0 -44px; /* 15px */ + height: 1.5em; + } + li input + ol > li { display: none; margin-left: -14px !important; padding-left: 1px; } + li label + { + background: url(/images/fileview/folder-horizontal.png) 15px 1px no-repeat; + cursor: pointer; + display: block; + padding-left: 37px; + } + + li input:checked + ol + { + background: url(/images/fileview/toggle-small.png) 40px 5px no-repeat; + margin: -1.5em 0 0 -44px; /* 20px */ + padding: 1.563em 0 0 80px; + height: auto; + } + li input:checked + ol > li { display: block; margin: 0 0 0.125em; /* 2px */} + li input:checked + ol > li:last-child { margin: 0 0 0.063em; /* 1px */ } diff --git a/lib/gollum/frontend/public/gollum/images/fileview/document.png b/lib/gollum/frontend/public/gollum/images/fileview/document.png new file mode 100644 index 0000000000000000000000000000000000000000..f125928c64c724189667e3f14400874eb2bf6b33 GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^d_XM3!3HF=W8NDADaPU;cPEB*=VV@j#5`RbLo80e zoe;?75Fp}`o_Fno*g>Z^ol{h{9kH{it}rvSQ*nLrv&?S!xxJSI4)QA$-*K28bXv!O zHTK&3owlCKh36g$kxSy)64t$*LBY`^M`VxWK8I`T?Jh0dlX5%hW6kPc-TN~p9Lw;Q Z3hx(`S8};?>NL<=22WQ%mvv4FO#qS1K~?|& literal 0 HcmV?d00001 diff --git a/lib/gollum/frontend/public/gollum/images/fileview/folder-horizontal.png b/lib/gollum/frontend/public/gollum/images/fileview/folder-horizontal.png new file mode 100644 index 0000000000000000000000000000000000000000..58e5cf7a4bde4e7396ec4acb7f8fb5a5f062a667 GIT binary patch literal 271 zcmV+q0r38bP)Px#$w@>(R5;76l0OcDFc`((tKy$kL*n8ENW6oCE2DZD2N&;RbY#NG#5-^aq7Dv* zMEG2=p(GHfysd4%U*4}RgIEL=87u5oQy$PD3}O-ACCdl5r_5d{f>f}m8und|^rEg& zUCMI`9i=l+zr1m|%Q4BYZKLN9q0#925U(kum<*U3pj5E2(HatG1C$8XHlQAHQbny) z;8{ST<%E&yLd$smf3!5{Uo8##ShgADZ8YeeVQ=-D^ZNk+<-4Rqgl!=X5&pCQ;0v)@ VOTQYTASD0*002ovPDHLkV1hCyZMFaa literal 0 HcmV?d00001 diff --git a/lib/gollum/frontend/public/gollum/images/fileview/toggle-small-expand.png b/lib/gollum/frontend/public/gollum/images/fileview/toggle-small-expand.png new file mode 100644 index 0000000000000000000000000000000000000000..969f5e8a1d3d7fe2b1b0da046c96410ca05d7494 GIT binary patch literal 433 zcmV;i0Z#sjP)Px#24YJ`L;(K){{a7>y{D4^00CJ^L_t(I%Z-!2N^C(4hrb95dY9W+h~S?UTYJI6 zLhuFDC$JD~EqnkQU%^MPwowp47O}MwL9q}7K?_|J@o+6Zn;boR++A*9n9OAIOD6dR zYN9eo>h`D`BcjwNfJtB+D1ZmxE+XDakn(L8vO1*hs#of}Kk}%at82fqsW{K7x9QMU zH`O_HQQc9CTzl$pugJIRhq~S8|4sEI18j8FBh$9(tah!+{i)hfTi*rCKey{e?E|o= z{!_Px@@^7n0sH^cO5hr}1eQvGao`VdmgiPx$h)G02R5;6hle+N7`vAz-6m;RD$C z3KH@F);0-U1t8`MPQA*tI_-I!9! z_vgS6FbGt@Z(u*AbdpK3?+s?Pp)RXC>OZgLK>eyt-+D~}ZmW9%=%};m3w2ywQmgn@ z)b6_?@2RKi;ywBIsv8mD{f&CWvn|2uYxRvfqc#iurh25dt_l`8cWMz&iWG4 zU1)@E2xtMTwO0Kv_|A*_F7O?g$OMBx5AY@aAFEwJqX0copQ&9br9wQmQiM5=pYpFKyzs8vp + + + + + File View + + + +
    + +
    + +{{#has_results}} +
    + {{{results}}} +
    +{{/has_results}} + +{{#no_results}} +

    + There are no pages in {{ref}}. +

    +{{/no_results}} + + diff --git a/lib/gollum/page.rb b/lib/gollum/page.rb index 6894ca2b..04b71974 100644 --- a/lib/gollum/page.rb +++ b/lib/gollum/page.rb @@ -116,14 +116,21 @@ module Gollum self.class.strip_filename(filename) end - # Public: The canonical page name without extension, and dashes converted - # to spaces. + # Public: The canonical page name without extension. # # Returns the String name. def name self.class.canonicalize_filename(filename) end + # Public: The canonical page name without extension, and dashes + # really converted to spaces. + # + # Returns the String name. + def name2 + self.class.canonicalize_filename(filename).gsub('-', ' ') + end + # Public: The title will be constructed from the # filename by stripping the extension and replacing any dashes with # spaces. From cd1738bdf67fc98613e017741368b811981e3abb Mon Sep 17 00:00:00 2001 From: bootstraponline Date: Fri, 18 May 2012 12:00:43 -0600 Subject: [PATCH 2/8] Fix file names. --- lib/gollum/frontend/app.rb | 6 +++++- .../{fileview.mustache => file_view.mustache} | 0 lib/gollum/frontend/views/file_view.rb | 19 +++++++++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) rename lib/gollum/frontend/templates/{fileview.mustache => file_view.mustache} (100%) create mode 100644 lib/gollum/frontend/views/file_view.rb diff --git a/lib/gollum/frontend/app.rb b/lib/gollum/frontend/app.rb index 9549e335..56041ffc 100644 --- a/lib/gollum/frontend/app.rb +++ b/lib/gollum/frontend/app.rb @@ -203,8 +203,12 @@ module Precious get '/fileview' do wiki = Gollum::Wiki.new(settings.gollum_path, settings.wiki_options) @results = Gollum::FileView.new(wiki.pages).render_files + File.open('/tmp/log.txt', 'w') {|f| + f.puts "log!" + f.puts @results + } @ref = wiki.ref - mustache :fileview + mustache :file_view end get '/*' do diff --git a/lib/gollum/frontend/templates/fileview.mustache b/lib/gollum/frontend/templates/file_view.mustache similarity index 100% rename from lib/gollum/frontend/templates/fileview.mustache rename to lib/gollum/frontend/templates/file_view.mustache diff --git a/lib/gollum/frontend/views/file_view.rb b/lib/gollum/frontend/views/file_view.rb new file mode 100644 index 00000000..383fcad2 --- /dev/null +++ b/lib/gollum/frontend/views/file_view.rb @@ -0,0 +1,19 @@ +module Precious + module Views + class FileView < Layout + attr_reader :results, :ref + + def title + "All pages in #{@ref}" + end + + def has_results + !@results.empty? + end + + def no_results + @results.empty? + end + end + end +end From e36b96fca667abcc1d8844dded83f64739dc6904 Mon Sep 17 00:00:00 2001 From: bootstraponline Date: Fri, 18 May 2012 12:01:43 -0600 Subject: [PATCH 3/8] Remove comments. --- lib/gollum/file_view.rb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/gollum/file_view.rb b/lib/gollum/file_view.rb index 4074334d..f0e3cf3c 100644 --- a/lib/gollum/file_view.rb +++ b/lib/gollum/file_view.rb @@ -14,7 +14,7 @@ module Gollum end def new_page page - '' + %Q(
  • #{page.name2}
  • \n) + %Q(
  • #{page.name2}
  • \n) end def new_folder page @@ -23,7 +23,6 @@ module Gollum def new_sub_folder path, name, name2 <<-HTML -
    1. @@ -33,7 +32,6 @@ module Gollum def end_folder <<-HTML -
  • HTML From f5de6a809dcb60c5f46791ed54cb58aa5671677f Mon Sep 17 00:00:00 2001 From: bootstraponline Date: Fri, 18 May 2012 12:09:42 -0600 Subject: [PATCH 4/8] Remove name2 now that name is fixed. --- lib/gollum/file_view.rb | 15 ++++++++------- lib/gollum/page.rb | 11 ++--------- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/lib/gollum/file_view.rb b/lib/gollum/file_view.rb index f0e3cf3c..a3072634 100644 --- a/lib/gollum/file_view.rb +++ b/lib/gollum/file_view.rb @@ -14,19 +14,20 @@ module Gollum end def new_page page - %Q(
  • #{page.name2}
  • \n) + name = page.name + %Q(
  • #{name}
  • \n) end def new_folder page - new_sub_folder ::File.dirname(page.path), page.name, page.name2 + new_sub_folder ::File.dirname(page.path), page.name end - def new_sub_folder path, name, name2 + def new_sub_folder path, name <<-HTML
    1. -
    2. #{name2}
    3. +
    4. #{name}
    5. HTML end @@ -63,12 +64,12 @@ module Gollum # Handle special case of only one folder. if (count - folder_start == 1) path = @pages[ folder_start ] - + name = page.name html += <<-HTML
      1. -
      2. #{page.name2}
      3. +
      4. #{name}
    6. HTML @@ -128,7 +129,7 @@ module Gollum end # subfolder - html += new_sub_folder ::File.dirname(page.path).split('/').last, page.name, page.name2 + html += new_sub_folder ::File.dirname(page.path).split('/').last, page.name else # depth+1 because we need an additional end_folder (depth+1).times { html += end_folder; } diff --git a/lib/gollum/page.rb b/lib/gollum/page.rb index 04b71974..6894ca2b 100644 --- a/lib/gollum/page.rb +++ b/lib/gollum/page.rb @@ -116,21 +116,14 @@ module Gollum self.class.strip_filename(filename) end - # Public: The canonical page name without extension. + # Public: The canonical page name without extension, and dashes converted + # to spaces. # # Returns the String name. def name self.class.canonicalize_filename(filename) end - # Public: The canonical page name without extension, and dashes - # really converted to spaces. - # - # Returns the String name. - def name2 - self.class.canonicalize_filename(filename).gsub('-', ' ') - end - # Public: The title will be constructed from the # filename by stripping the extension and replacing any dashes with # spaces. From f8c6cdb207eadde502427bb3b862107be0f42a0d Mon Sep 17 00:00:00 2001 From: bootstraponline Date: Fri, 18 May 2012 12:11:55 -0600 Subject: [PATCH 5/8] Add license for css tree menu. --- .../css_tree_menu_thecssninja/license.txt | 50 +++++++++++++++++++ licenses/licenses.txt | 18 +++++++ 2 files changed, 68 insertions(+) create mode 100644 licenses/css_tree_menu_thecssninja/license.txt create mode 100644 licenses/licenses.txt diff --git a/licenses/css_tree_menu_thecssninja/license.txt b/licenses/css_tree_menu_thecssninja/license.txt new file mode 100644 index 00000000..55a2604a --- /dev/null +++ b/licenses/css_tree_menu_thecssninja/license.txt @@ -0,0 +1,50 @@ +The MIT License + +Copyright (c) 2010 Ryan Seddon + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +============================================================================= + +BSD License + +Copyright (c) 2010, Ryan Seddon +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. Neither the name of the organization nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY COPYRIGHT HOLDER "AS IS" AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDER BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/licenses/licenses.txt b/licenses/licenses.txt new file mode 100644 index 00000000..e7cd8592 --- /dev/null +++ b/licenses/licenses.txt @@ -0,0 +1,18 @@ +The following PNGs are based on Ubuntu 11.10 SVG files located in /usr/share/icons/unity-icon-theme/places/svg/ +- group-folders.svg +- group-files.svg +- group-downloads.svg + + lib/gollum/frontend/public/css/document.png + lib/gollum/frontend/public/css/folder-horizontal.png + lib/gollum/frontend/public/css/toggle-small-expand.png + lib/gollum/frontend/public/css/toggle-small.png + +--- + +The css-tree-menu code is used under the MIT license. + +http://www.thecssninja.com/css/css-tree-menu +http://www.thecssninja.com/demo/license.txt + + lib/gollum/frontend/public/css/_styles.css From 6c137e39c95896358d511c9932997440e05140c4 Mon Sep 17 00:00:00 2001 From: bootstraponline Date: Fri, 18 May 2012 13:05:08 -0600 Subject: [PATCH 6/8] Add file view button. --- lib/gollum/frontend/templates/page.mustache | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/gollum/frontend/templates/page.mustache b/lib/gollum/frontend/templates/page.mustache index d60ae5d6..6a2b708b 100644 --- a/lib/gollum/frontend/templates/page.mustache +++ b/lib/gollum/frontend/templates/page.mustache @@ -7,6 +7,8 @@
    7. All Pages
    8. +
    9. File View
    10. New Page
    11. {{#editable}} From 067ad72f347f7750a6355e6a6f8e8ecc598b14e6 Mon Sep 17 00:00:00 2001 From: bootstraponline Date: Fri, 18 May 2012 13:12:14 -0600 Subject: [PATCH 7/8] Update icon license. --- licenses/licenses.txt | 5 + licenses/unity_asset_pool/COPYRIGHT | 286 ++++++++++++++++++++++++++++ 2 files changed, 291 insertions(+) create mode 100644 licenses/unity_asset_pool/COPYRIGHT diff --git a/licenses/licenses.txt b/licenses/licenses.txt index e7cd8592..1253cc18 100644 --- a/licenses/licenses.txt +++ b/licenses/licenses.txt @@ -8,6 +8,11 @@ The following PNGs are based on Ubuntu 11.10 SVG files located in /usr/share/ico lib/gollum/frontend/public/css/toggle-small-expand.png lib/gollum/frontend/public/css/toggle-small.png +Creative Commons - Attribution Share Alike +https://launchpad.net/unity-asset-pool +http://packages.ubuntu.com/oneiric/all/unity-asset-pool/filelist +https://bazaar.launchpad.net/~unity-team/unity-asset-pool/trunk/view/head:/COPYRIGHT + --- The css-tree-menu code is used under the MIT license. diff --git a/licenses/unity_asset_pool/COPYRIGHT b/licenses/unity_asset_pool/COPYRIGHT new file mode 100644 index 00000000..96c0ac1b --- /dev/null +++ b/licenses/unity_asset_pool/COPYRIGHT @@ -0,0 +1,286 @@ +This package was debianized by Kenneth Wimer on +Fri, 12 Dec 2010 9:08:32 +0200. + +Upstream Author: + Michael Forrest + Otto Greenslade + +Copyright: + +(c) Canonical Ltd 2004- 2009 + +Unless otherwise indicated, artwork is available under the Creative +Commons Attribution Share-alike license v3.0 or any later version. To +view a copy of this license, visit +http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to +Creative Commons, 171 Second Street, Suite 300, San Francisco, +California, 94105, USA. See below for the full text of the license. + +Some Rights Reserved: + +The rights in the trademarks, logos, service marks of Canonical Ltd, +as well as the look and feel of Ubuntu, are not licensed under the +Creative Commons license and are subject to the Canonical Trademark +Policy at http://www.ubuntu.com/ubuntu/TrademarkPolicy + +License: + +CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE +LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN +ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS +INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES +REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR +DAMAGES RESULTING FROM ITS USE. + +License + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS +CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS +PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE +WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW +IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND +AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. THE LICENSOR GRANTS YOU +THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH +TERMS AND CONDITIONS. + +1. Definitions + + 1. "Collective Work" means a work, such as a periodical issue, + anthology or encyclopedia, in which the Work in its entirety in + unmodified form, along with a number of other contributions, + constituting separate and independent works in themselves, are + assembled into a collective whole. A work that constitutes a + Collective Work will not be considered a Derivative Work + (as defined below) for the purposes of this License. + 2. "Derivative Work" means a work based upon the Work or upon the + Work and other pre-existing works, such as a translation, musical + arrangement, dramatization, fictionalization, motion picture + version, sound recording, art reproduction, abridgment, + condensation, or any other form in which the Work may be recast, + transformed, or adapted, except that a work that constitutes a + Collective Work will not be considered a Derivative Work for the + purpose of this License. For the avoidance of doubt, where the Work + is a musical composition or sound recording, the synchronization of + the Work in timed-relation with a moving image ("synching") will be + considered a Derivative Work for the purpose of this License. + 3. "Licensor" means the individual or entity that offers the Work + under the terms of this License. + 4. "Original Author" means the individual or entity who created the + Work. + 5. "Work" means the copyrightable work of authorship offered under + the terms of this License. + 6. "You" means an individual or entity exercising rights under this + License who has not previously violated the terms of this License + with respect to the Work, or who has received express permission + from the Licensor to exercise rights under this License despite a + previous violation. + 7. "License Elements" means the following high-level license + attributes as selected by Licensor and indicated in the title of + this License: Attribution, ShareAlike. + +2. Fair Use Rights. Nothing in this license is intended to reduce, +limit, or restrict any rights arising from fair use, first sale or +other limitations on the exclusive rights of the copyright owner under +copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, +Licensor hereby grants You a worldwide, royalty-free, non-exclusive, +perpetual (for the duration of the applicable copyright) license to +exercise the rights in the Work as stated below: + + 1. to reproduce the Work, to incorporate the Work into one or more + Collective Works, and to reproduce the Work as incorporated in the + Collective Works; + 2. to create and reproduce Derivative Works; + 3. to distribute copies or phonorecords of, display publicly, + perform publicly, and perform publicly by means of a digital audio + transmission the Work including as incorporated in Collective Works; + 4. to distribute copies or phonorecords of, display publicly, + perform publicly, and perform publicly by means of a digital audio + transmission Derivative Works. + 5. + + For the avoidance of doubt, where the work is a musical + composition: + 1. Performance Royalties Under Blanket Licenses. Licensor + waives the exclusive right to collect, whether individually + or via a performance rights society (e.g. ASCAP, BMI, SESAC), + royalties for the public performance or public digital + performance (e.g. webcast) of the Work. + 2. Mechanical Rights and Statutory Royalties. Licensor waives + the exclusive right to collect, whether individually or via a + music rights society or designated agent (e.g. Harry Fox + Agency), royalties for any phonorecord You create from the + Work ("cover version") and distribute, subject to the + compulsory license created by 17 USC Section 115 of the US + Copyright Act (or the equivalent in other jurisdictions). + 6. Webcasting Rights and Statutory Royalties. For the avoidance of + doubt, where the Work is a sound recording, Licensor waives the + exclusive right to collect, whether individually or via a + performance-rights society (e.g. SoundExchange), royalties for the + public digital performance (e.g. webcast) of the Work, subject to + the compulsory license created by 17 USC Section 114 of the US + Copyright Act (or the equivalent in other jurisdictions). + +The above rights may be exercised in all media and formats whether now +known or hereafter devised. The above rights include the right to make +such modifications as are technically necessary to exercise the rights +in other media and formats. All rights not expressly granted by +Licensor are hereby reserved. + +4. Restrictions.The license granted in Section 3 above is expressly +made subject to and limited by the following restrictions: + + 1. You may distribute, publicly display, publicly perform, or + publicly digitally perform the Work only under the terms of this + License, and You must include a copy of, or the Uniform Resource + Identifier for, this License with every copy or phonorecord of the + Work You distribute, publicly display, publicly perform, or publicly + digitally perform. You may not offer or impose any terms on the Work + that alter or restrict the terms of this License or the recipients' + exercise of the rights granted hereunder. You may not sublicense the + Work. You must keep intact all notices that refer to this License + and to the disclaimer of warranties. You may not distribute, + publicly display, publicly perform, or publicly digitally perform + the Work with any technological measures that control access or use + of the Work in a manner inconsistent with the terms of this License + Agreement. The above applies to the Work as incorporated in a + Collective Work, but this does not require the Collective Work apart + from the Work itself to be made subject to the terms of this + License. If You create a Collective Work, upon notice from any + Licensor You must, to the extent practicable, remove from the + Collective Work any credit as required by clause 4(c), as requested. + If You create a Derivative Work, upon notice from any Licensor You + must, to the extent practicable, remove from the Derivative Work + any credit as required by clause 4(c), as requested. + 2. You may distribute, publicly display, publicly perform, or + publicly digitally perform a Derivative Work only under the terms + of this License, a later version of this License with the same + License Elements as this License, or a Creative Commons iCommons + license that contains the same License Elements as this License + (e.g. Attribution-ShareAlike 2.5 Japan). You must include a copy of, + or the Uniform Resource Identifier for, this License or other + license specified in the previous sentence with every copy or + phonorecord of each Derivative Work You distribute, publicly + display, publicly perform, or publicly digitally perform. You may + not offer or impose any terms on the Derivative Works that alter or + restrict the terms of this License or the recipients' exercise of + the rights granted hereunder, and You must keep intact all notices + that refer to this License and to the disclaimer of warranties. + You may not distribute, publicly display, publicly perform, or + publicly digitally perform the Derivative Work with any + technological measures that control access or use of the Work in a + manner inconsistent with the terms of this License Agreement. + The above applies to the Derivative Work as incorporated in a + Collective Work, but this does not require the Collective Work + apart from the Derivative Work itself to be made subject to the + terms of this License. + 3. If you distribute, publicly display, publicly perform, or + publicly digitally perform the Work or any Derivative Works or + Collective Works, You must keep intact all copyright notices for + the Work and provide, reasonable to the medium or means You are + utilizing: (i) the name of the Original Author (or pseudonym, if + applicable) if supplied, and/or (ii) if the Original Author and/or + Licensor designate another party or parties (e.g. a sponsor + institute, publishing entity, journal) for attribution in Licensor's + copyright notice, terms of service or by other reasonable means, the + name of such party or parties; the title of the Work if supplied; to + the extent reasonably practicable, the Uniform Resource Identifier, + if any, that Licensor specifies to be associated with the Work, + unless such URI does not refer to the copyright notice or licensing + information for the Work; and in the case of a Derivative Work, a + credit identifying the use of the Work in the Derivative Work (e.g., + "French translation of the Work by Original Author," or "Screenplay + based on original Work by Original Author"). Such credit may be + implemented in any reasonable manner; provided, however, that in the + case of a Derivative Work or Collective Work, at a minimum such + credit will appear where any other comparable authorship credit + appears and in a manner at least as prominent as such other + comparable authorship credit. + +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS +THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND +CONCERNING THE MATERIALS, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, +INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, +FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF +LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF +ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW +THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY +TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE +LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR +ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES +ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR +HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + + 1. This License and the rights granted hereunder will terminate + automatically upon any breach by You of the terms of this License. + Individuals or entities who have received Derivative Works or + Collective Works from You under this License, however, will not have + their licenses terminated provided such individuals or entities + remain in full compliance with those licenses. Sections 1, 2, 5, 6, + 7, and 8 will survive any termination of this License. + 2. Subject to the above terms and conditions, the license granted + here is perpetual (for the duration of the applicable copyright in + the Work). Notwithstanding the above, Licensor reserves the right to + release the Work under different license terms or to stop + distributing the Work at any time; provided, however that any such + election will not serve to withdraw this License (or any other + license that has been, or is required to be, granted under the terms + of this License), and this License will continue in full force and + effect unless terminated as stated above. + +8. Miscellaneous + + 1. Each time You distribute or publicly digitally perform the Work + or a Collective Work, the Licensor offers to the recipient a license + to the Work on the same terms and conditions as the license granted + to You under this License. + 2. Each time You distribute or publicly digitally perform a + Derivative Work, Licensor offers to the recipient a license to the + original Work on the same terms and conditions as the license + granted to You under this License. + 3. If any provision of this License is invalid or unenforceable under + applicable law, it shall not affect the validity or enforceability of + the remainder of the terms of this License, and without further + action by the parties to this agreement, such provision shall be + reformed to the minimum extent necessary to make such provision + valid and enforceable. + 4. No term or provision of this License shall be deemed waived and + no breach consented to unless such waiver or consent shall be in + writing and signed by the party to be charged with such waiver or + consent. + 5. This License constitutes the entire agreement between the parties + with respect to the Work licensed here. There are no understandings, + agreements or representations with respect to the Work not specified + here. Licensor shall not be bound by any additional provisions that + may appear in any communication from You. This License may not be + modified without the mutual written agreement of the Licensor and + You. + +Creative Commons is not a party to this License, and makes no warranty +whatsoever in connection with the Work. Creative Commons will not be +liable to You or any party on any legal theory for any damages +whatsoever, including without limitation any general, special, +incidental or consequential damages arising in connection to this +license. Notwithstanding the foregoing two (2) sentences, if Creative +Commons has expressly identified itself as the Licensor hereunder, +it shall have all rights and obligations of Licensor. + +Except for the limited purpose of indicating to the public that the +Work is licensed under the CCPL, neither party will use the trademark +"Creative Commons" or any related trademark or logo of Creative Commons +without the prior written consent of Creative Commons. Any permitted +use will be in compliance with Creative Commons' then-current trademark +usage guidelines, as may be published on its website or otherwise made +available upon request from time to time. + +Creative Commons may be contacted at http://creativecommons.org/ + From 541b2fabb4cfb47d2a9d7a7442233290a858c262 Mon Sep 17 00:00:00 2001 From: bootstraponline Date: Fri, 18 May 2012 15:00:23 -0600 Subject: [PATCH 8/8] Add new page button to file view action panel. --- lib/gollum/frontend/templates/file_view.mustache | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/gollum/frontend/templates/file_view.mustache b/lib/gollum/frontend/templates/file_view.mustache index 4b62888c..9b38b1c4 100644 --- a/lib/gollum/frontend/templates/file_view.mustache +++ b/lib/gollum/frontend/templates/file_view.mustache @@ -9,8 +9,12 @@