Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/apps.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/reader
diff options
context:
space:
mode:
authorpriyanka-m <priyanka.menghani@gmail.com>2012-12-18 21:00:40 +0400
committerpriyanka-m <priyanka.menghani@gmail.com>2012-12-18 21:00:40 +0400
commitae3637650819e15edb84c703b01793493d49de36 (patch)
tree783e82cd94bd8b9e5f0bf8670e48ec46b72b4f23 /reader
parent1f684d335bc7393abecc2131f245b431defc4ae5 (diff)
Tagging works perfect, also the option to remove tags dynamically by users,added
Diffstat (limited to 'reader')
-rw-r--r--reader/ajax/remove_tags.php16
-rwxr-xr-xreader/css/reader.css7
-rwxr-xr-xreader/js/.goutputstream-GYESPW161
-rwxr-xr-xreader/js/integrate.js38
-rwxr-xr-xreader/lib/library_display.php27
5 files changed, 227 insertions, 22 deletions
diff --git a/reader/ajax/remove_tags.php b/reader/ajax/remove_tags.php
new file mode 100644
index 000000000..82ad3671e
--- /dev/null
+++ b/reader/ajax/remove_tags.php
@@ -0,0 +1,16 @@
+<?php
+ include ('apps/reader/lib/tag_utils.php');
+ $filepath = $_POST['filepath'];
+ $tag_toBeRemv = $_POST['tag'];
+ $tags = find_tags_for_ebook($filepath);
+
+ $arr = explode(',',$tags);
+ $arr2 = array();
+ foreach($arr as $a) {
+ if (strcmp($a,$tag_toBeRemv) != 0)
+ $arr2[] = $a;
+ }
+ $new_tags = implode(",",$arr2);
+ update_tag_for_ebook($new_tags,$filepath);
+
+?>
diff --git a/reader/css/reader.css b/reader/css/reader.css
index 4d05c5484..ec0bfecac 100755
--- a/reader/css/reader.css
+++ b/reader/css/reader.css
@@ -24,3 +24,10 @@ div#thumbs img { border:1px solid #EEE; -webkit-box-shadow: 4px 4px 4px 0px grey
#displaybox { margin-top:8px; margin-left:12px; font-size:14px; color:grey; width:200px; height:30px; }
#displaybox a { color:grey; }
input.start { margin-left:12px;}
+
+div#result { position:absolute; left:2px; top:35px;}
+.each_result { background-color: #EEE; display:inline-block; margin:5px; height:25px; border-radius:5px; }
+.each_result:hover { background-color: #DDD;}
+#each_tag,#close { padding: 5px; font-size:14px;}
+#each_tag { color:grey;}
+form#TagForm { position:absolute; top:100px; left:10px;}
diff --git a/reader/js/.goutputstream-GYESPW b/reader/js/.goutputstream-GYESPW
new file mode 100755
index 000000000..11b2e0248
--- /dev/null
+++ b/reader/js/.goutputstream-GYESPW
@@ -0,0 +1,161 @@
+$(document).ready(function() {
+ $('#fileList tr').each(function(){
+ // data-file attribute to contain unescaped filenames.
+ $(this).attr('data-file',decodeURIComponent($(this).attr('data-file')));
+ });
+
+ $('#file_action_panel').attr('activeAction', false);
+
+ $("#TagForm").submit(function(event) {
+ event.preventDefault();
+ var $form = $( this ),
+ tag = $form.find( 'input[name="tag"]' ).val(),
+ url = 'apps/reader/ajax/tags.php';
+ var path = $(this).parent().children('a.name').attr('dir');
+ $.post( url, {tag:tag,path:path},
+ function( data ) {
+ $("#result").append('<a href = "apps/reader/fetch_tags.php?tag='+data+'">'+data+'</a>');
+ }
+ );
+ });
+
+ $('#close').click(function(){
+ event.preventDefault();
+ var parent = $(this).parent();
+ var filepath = $(this).parent().parent().parent().children('a.name').attr('dir');
+ var url = 'apps/reader/ajax/remove_tags.php';
+ var tag = $(this).attr('value');
+ $.post(url, {tag:tag, filepath:filepath}, function(data) {alert(data)});
+ });
+});
+
+$(function() {
+ // See if url conatins the index 'reader'
+ if(location.href.indexOf("reader")!=-1) {
+ 'use strict';
+ // create thumbnails for pdfs inside current directory.
+ create_thumbnails();
+ create_thumbnails_for_directories();
+ // Render pdf view on every click of a thumbnail, now and in future.
+ $('td.filename a.name').live('click',function(event) {
+ event.preventDefault();
+ var filename=$(this).parent().parent().attr('data-file');
+ var tr=$('tr').filterAttr('data-file',filename);
+ var mime=$(this).parent().parent().data('mime');
+ var type=$(this).parent().parent().data('type');
+ // Check if clicked link is a pdf file or a directory, perform suitable function.
+ var action=getAction(mime,type);
+ if(action){
+ action(filename);
+ }
+ });
+ }
+});
+
+/* Function that returns suitable function definition to be executed on
+ * click of the file whose mime and type are passed. */
+function getAction(mime,type) {
+ var name;
+ if(mime == 'application/pdf') {
+ name = function (filename){
+ showPDFviewer($('#dir').val(),filename);
+ }
+ }
+ else {
+ name = function (filename){
+ window.location=OC.linkTo('reader', 'index.php') + '&dir='+
+ encodeURIComponent($('#dir').val()).replace(/%2F/g, '/')+'/'+
+ encodeURIComponent(filename) + '/';
+ }
+ }
+ return name;
+}
+
+function create_thumbnails() {
+ PDFJS.disableWorker = true;
+ $('td#thumbnail_container > img').each(function() {
+ // Get url and title of each pdf file from image tags.
+ var title = $(this).parent().parent().attr('data-file');
+ var location = $(this).attr('id');
+ var url = OC.linkTo('files', 'download.php')+'?file=' + location;
+ var thumbnail_exists = $(this).attr('value');
+ if (thumbnail_exists == "false") {
+ if (url.indexOf('pdf') != -1) {
+ render_thumbnail(url,location,title);
+ }
+ }
+ });
+}
+
+function create_thumbnails_for_directories() {
+ $('div#thumbs img').each(function(){
+ var thumb_exists = $(this).attr('value');
+ if (thumb_exists == "false") {
+ var location = $(this).attr('id');
+ var url = OC.linkTo('files', 'download.php')+'?file=' + location;
+ var title = location.replace(/\\/g,'/').replace( /.*\//, '' );
+ if (url.indexOf('pdf') != -1) {
+ render_thumbnail(url,location,title);
+ }
+ }
+ });
+}
+
+function canvasSaver(canvas,title,location) {
+ var canvas_data = canvas.toDataURL('image/png');
+ $.post("apps/reader/ajax/canvas_saver.php", {canv_data:canvas_data,title:title,location:location});
+}
+
+
+function render_thumbnail(url,location,title) {
+
+ PDFJS.getDocument(url).then(function(pdf) {
+ // Using promise to fetch the page
+ pdf.getPage(1).then(function(page) {
+ var scale = 0.2;
+ var viewport = page.getViewport(scale);
+
+ // Create canvas elements for each pdf's first page.
+ var canvas = document.createElement("canvas");
+
+ // Canvas elements should be of proper size, not too big, not too small.
+ if (viewport.height > 170 || viewport.width > 130) {
+ scale = 0.1;
+ }
+ else if (viewport.height < 129 || viewport.width < 86) {
+ scale = 0.3;
+ }
+
+ viewport = page.getViewport(scale);
+ canvas.height = viewport.height;
+ canvas.width = viewport.width;
+
+ var ctx = canvas.getContext('2d');
+ ctx.save();
+ ctx.fillStyle = 'rgb(255, 255, 255)';
+ ctx.fillRect(0, 0, canvas.width, canvas.height);
+ ctx.restore();
+
+ var view = page.view;
+ var scaleX = (canvas.width / page.width);
+ var scaleY = (canvas.height / page.height);
+ ctx.translate(-view.x * scaleX, -view.y * scaleY);
+
+ // Render PDF page into canvas context
+ var renderContext = {
+ canvasContext: ctx,
+ viewport: viewport
+ };
+
+ pageRendering = page.render(renderContext);
+ pageRendering.onData(function(){
+ canvasSaver(canvas,title,location);
+ var imageElement = document.getElementById(location);
+ imageElement.src = canvas.toDataURL();
+ imageElement.style.height = '100px';
+ imageElement.style.width = '100px';
+
+ });
+ });
+ });
+}
diff --git a/reader/js/integrate.js b/reader/js/integrate.js
index 438439b0e..141fe7b43 100755
--- a/reader/js/integrate.js
+++ b/reader/js/integrate.js
@@ -6,20 +6,9 @@ $(document).ready(function() {
$('#file_action_panel').attr('activeAction', false);
- $("#TagForm").submit(function(event) {
- event.preventDefault();
- var $form = $( this ),
- tag = $form.find( 'input[name="tag"]' ).val(),
- url = 'apps/reader/ajax/tags.php';
- var path = $(this).parent().children('a.name').attr('dir');
- $.post( url, {tag:tag,path:path},
- function( data ) {
- $("#result").append('<a href = "apps/reader/fetch_tags.php?tag='+data+'">'+data+'</a>');
- }
- );
- });
});
+
$(function() {
// See if url conatins the index 'reader'
if(location.href.indexOf("reader")!=-1) {
@@ -41,6 +30,31 @@ $(function() {
}
});
}
+
+ $('form#TagForm').submit(function(event) {
+ event.preventDefault();
+ var path = $(this).parent().children('a.name').attr('dir');
+ var result = $(this).parent().children('div#result');
+ var $form = $(this),
+ tag = $form.find( 'input[name="tag"]' ).val(),
+ url = $form.attr('action');
+ $.post( url, {tag:tag,path:path},
+ function(data) {
+ result.append('<div class = "each_result"><a id = "each_tag" "href = "apps/reader/fetch_tags.php?tag='+data+'">'+data+'</a><a id = "close" value = "'+data+'">x</a></div></div>');
+ }
+ );
+ });
+
+ $('a#close').click(function(){
+ event.preventDefault();
+ var elem = $(this).parent();
+ var filepath = $(this).parent().parent().parent().children('a.name').attr('dir');
+ var url = 'apps/reader/ajax/remove_tags.php';
+ var tag = $(this).attr('value');
+ elem.hide();
+ $.post(url, {tag:tag, filepath:filepath});
+ });
+
});
/* Function that returns suitable function definition to be executed on
diff --git a/reader/lib/library_display.php b/reader/lib/library_display.php
index f435a9391..6383211fd 100755
--- a/reader/lib/library_display.php
+++ b/reader/lib/library_display.php
@@ -13,19 +13,26 @@ function display_each_ebook($directory,$name) {
$each_row = find_tags_for_ebook(urldecode($directory).urldecode($name));
$tags = explode(",",$each_row);
if (count($tags) < 5) {
- echo '<form action="/" id="TagForm">
+ echo '<form action = "apps/reader/ajax/tags.php" id="TagForm">
<input type="text" name="tag" placeholder="Add Tag..." />
- <input type="submit" value="add tag" />
+ <input type="submit" value="Add Tag" />
</form>';
}
- echo '<div id="result">';
- foreach ($tags as $tag) {
- echo '<a href = "'.\OCP\Util::linkTo('reader', 'fetch_tags.php').'?tag='.$tag.'">'
- .ucwords($tag).
- '</a>';
- }
- echo '</div>';
- echo '</td>';
+
+ if (count($tags) >= 1) {
+ echo '<div id="result">';
+ foreach ($tags as $tag) {
+ if ($tag != '' ) {
+ echo '<div class = "each_result">';
+ echo '<a id = "each_tag" href = "'.\OCP\Util::linkTo('reader', 'fetch_tags.php').'?tag='.$tag.'">'
+ .ucwords($tag).
+ '</a>';
+ echo '<a id = "close" value = "'.$tag.'">x</a></div>';
+ }
+ }
+ echo '</div>';
+ }
+ echo '</td>';
}
function display_sub_dirs($current_dir,$sub_dirs) {