From 0824bbd8b8ab510261d502cda95fbd08d748c0ff Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Thu, 12 Sep 2013 17:21:40 +0200 Subject: [PATCH 01/20] darker color for edit mode for better focus on document --- css/editor.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/css/editor.css b/css/editor.css index c852c2be..3f7eba81 100644 --- a/css/editor.css +++ b/css/editor.css @@ -29,7 +29,7 @@ html, body, #mainContainer { #container { text-align: center; - background-color: #FAFAFA; + background-color: #ddd; overflow: auto; position: absolute; From 58f1051f2d130ae9958a2c1dfd375326c5bb3edb Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Thu, 12 Sep 2013 17:36:31 +0200 Subject: [PATCH 02/20] improve document list style --- css/style.css | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/css/style.css b/css/style.css index cb292922..578c1b1a 100755 --- a/css/style.css +++ b/css/style.css @@ -9,8 +9,10 @@ display: inline-block; height: 200px; width: 200px; + background-color: #e8e8e8; margin: 1em; vertical-align: top; + border-radius: 5px; } .add-document a { display: inline-block; @@ -31,17 +33,26 @@ position: absolute; bottom: 5px; width: 100%; - color: white; - text-shadow: 0 0 10px #000; + font-weight: normal; text-align: center; } + .documentslist .document { display: inline-block; height: 200px; width: 200px; + background-color: #e8e8e8; margin: 1em; vertical-align: top; + border-radius: 5px; } +.documentslist .document:hover, +.documentslist .document:focus, +.documentslist .add-document:hover, +.documentslist .add-document:focus { + background-color: #ddd; +} + .documentslist .session-active { position: relative; margin-left: 128px; @@ -61,9 +72,15 @@ position: absolute; bottom: 5px; width: 100%; - color: white; - text-shadow: 0 0 10px #000; + font-weight: normal; + text-overflow: ellipsis; + overflow: hidden; text-align: center; + padding: 0 8px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + white-space: nowrap; } #odf-toolbar{ @@ -127,4 +144,4 @@ #members{ padding-top: 3em !important; -} \ No newline at end of file +} From 95eb059f5bbefd20c26fba1e4f473a9b4b774093 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Thu, 12 Sep 2013 19:10:09 +0200 Subject: [PATCH 03/20] add Documents app icon --- appinfo/app.php | 4 +- img/documents.png | Bin 328 -> 403 bytes img/documents.svg | 142 +++++----------------------------------------- 3 files changed, 17 insertions(+), 129 deletions(-) diff --git a/appinfo/app.php b/appinfo/app.php index 4ed6c854..ac9a54ec 100755 --- a/appinfo/app.php +++ b/appinfo/app.php @@ -30,7 +30,7 @@ OCP\App::addNavigationEntry(array( 'id' => 'documents_index', 'order' => 80, 'href' => OCP\Util::linkTo('documents', 'index.php'), - 'icon' => OCP\Util::imagePath('documents', 'documents.png'), + 'icon' => OCP\Util::imagePath('documents', 'documents.svg'), 'name' => 'Documents') ); @@ -42,4 +42,4 @@ OC::$CLASSPATH['OCA\Documents\Download_Simple'] = 'documents/lib/download/simple OC::$CLASSPATH['OCA\Documents\Download_Range'] = 'documents/lib/download/range.php'; //Listen to delete file signal -\OCP\Util::connectHook('OC_Filesystem', 'delete', "OCA\Documents\Storage", "onDelete"); \ No newline at end of file +\OCP\Util::connectHook('OC_Filesystem', 'delete', "OCA\Documents\Storage", "onDelete"); diff --git a/img/documents.png b/img/documents.png index 9c7ff2642f91b06a93376754d762f402e3f36581..cc70b4d3e7d60a7d785ffe6866fec4f7a4467267 100644 GIT binary patch delta 303 zcmV+~0nq-)0+R!fZGQm}NklxB9Fhv?mD6 zCVa^xP1~>&I=clVWh958)qMj16aW*_>JCT>Nl{g%*x!+wf|r5ZFrelJ%#(p!GIA2q zEwe*d? z>jFgX*8(Dwhj1BK29|*?L?3Jaes4X%<2BtFb=venv3$0V0 dVyaItgbm&t-@G2ZzlZ<;002ovPDHLkV1fh~WX}Kq diff --git a/img/documents.svg b/img/documents.svg index 8ebf861f..0b767a53 100644 --- a/img/documents.svg +++ b/img/documents.svg @@ -1,128 +1,16 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - + + + + + image/svg+xml + + + + + + + + + + From 38910bb6aed70ffab37632018d7641863686e186 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Thu, 12 Sep 2013 19:10:59 +0200 Subject: [PATCH 04/20] fix top bar in editor, move close to right, invite to left --- css/editor.css | 5 +++-- css/style.css | 8 ++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/css/editor.css b/css/editor.css index 3f7eba81..51ebd9e3 100644 --- a/css/editor.css +++ b/css/editor.css @@ -25,15 +25,16 @@ html, body, #mainContainer { #toolbar { overflow: hidden; + border-bottom: none; + padding: 6px 0; } #container { text-align: center; background-color: #ddd; overflow: auto; - position: absolute; - top: 30px; + top: 38px; bottom: 0; left: 0; right: 0; diff --git a/css/style.css b/css/style.css index 578c1b1a..d26a096e 100755 --- a/css/style.css +++ b/css/style.css @@ -91,11 +91,11 @@ } #odf-close{ - float:left; + float: right; } #odf-invite{ - float:right; + float: left; } #mainContainer #collaboration{ @@ -129,9 +129,9 @@ width: 100%; height: 100%; filter:alpha(opacity=30); - opacity: 0.3; + opacity: .3; z-index: 1000; - background: #000 url('%webroot%/core/img/loading-dark.gif') 50% 50% no-repeat; + background: #111 url('%webroot%/core/img/loading-dark.gif') 50% 50% no-repeat; } #documents-overlay-below{ left:0; From 653a7dd591116946ad71280900e4ca13ec0281f8 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Thu, 12 Sep 2013 19:19:55 +0200 Subject: [PATCH 05/20] less harsh shadow color in participants list --- css/editor.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/css/editor.css b/css/editor.css index 51ebd9e3..c44feac6 100644 --- a/css/editor.css +++ b/css/editor.css @@ -17,7 +17,7 @@ html, body, #mainContainer { #editor { border: none; - box-shadow: 0px 0px 14px black; + box-shadow: 0px 0px 14px #555; overflow: hidden; padding: 0px !important; z-index: 4; From a264bf0074698c6ea4e6c86eafa9e74cd3144c04 Mon Sep 17 00:00:00 2001 From: Victor Dubiniuk Date: Mon, 16 Sep 2013 17:44:38 +0300 Subject: [PATCH 06/20] Revert editor. Override in own styles --- css/editor.css | 8 +++----- css/style.css | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/css/editor.css b/css/editor.css index c44feac6..71fea4be 100644 --- a/css/editor.css +++ b/css/editor.css @@ -17,7 +17,7 @@ html, body, #mainContainer { #editor { border: none; - box-shadow: 0px 0px 14px #555; + box-shadow: 0px 0px 14px black; overflow: hidden; padding: 0px !important; z-index: 4; @@ -25,16 +25,14 @@ html, body, #mainContainer { #toolbar { overflow: hidden; - border-bottom: none; - padding: 6px 0; } #container { text-align: center; - background-color: #ddd; + background-color: #FAFAFA; overflow: auto; position: absolute; - top: 38px; + top: 30px; bottom: 0; left: 0; right: 0; diff --git a/css/style.css b/css/style.css index d26a096e..a7763c8a 100755 --- a/css/style.css +++ b/css/style.css @@ -142,6 +142,22 @@ z-index: 999; } +/* override WebODF styling here */ + #members{ padding-top: 3em !important; } + +#editor { + box-shadow: 0px 0px 14px #555 !important; +} + +#toolbar { + border-bottom: none !important; + padding: 6px 0 !important; +} + +#container { + background-color: #ddd !important; + top: 38px !important; +} \ No newline at end of file From d870247133ba93045bfcf95c0cc01f9d84c42489 Mon Sep 17 00:00:00 2001 From: Victor Dubiniuk Date: Thu, 12 Sep 2013 22:07:21 +0300 Subject: [PATCH 07/20] Show document title in the panel. Closes #17 --- css/style.css | 9 +++++++++ js/documents.js | 7 +++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/css/style.css b/css/style.css index a7763c8a..5b4000d2 100755 --- a/css/style.css +++ b/css/style.css @@ -90,6 +90,15 @@ z-index: 500; } +#document-title{ + position: relative; + top: 6px; + width:50%; + margin:0 auto -14px auto; + text-align: center; + font-weight: bold; +} + #odf-close{ float: right; } diff --git a/js/documents.js b/js/documents.js index f5f84959..c42a855f 100644 --- a/js/documents.js +++ b/js/documents.js @@ -44,6 +44,9 @@ var documentsMain = { ' ' + + '
' + + documentsMain.documentTitle + + '
' + ' ' + @@ -83,7 +86,7 @@ var documentsMain = { // load the document and get called back when it's live documentsMain.webodfEditorInstance.openSession(response.es_id, memberId, function() { - $('title').text(documentsMain.documentTitle); + $('title').text(documentsMain.mainTitle + '| ' + documentsMain.documentTitle); documentsMain.webodfEditorInstance.startEditing(); documentsMain.hideOverlay(); }); @@ -271,7 +274,7 @@ $(document).ready(function() { return; } documentsMain.isEditorMode = true; - documentsMain.documentTitle = documentsMain.mainTitle + '| ' + $(this).find('label').text(); + documentsMain.documentTitle = $(this).find('label').text(); documentsMain.showOverlay(); if ($(this).attr('data-esid')){ From efe0d7c869c9dba7f24993395b7aaba09016bb14 Mon Sep 17 00:00:00 2001 From: Victor Dubiniuk Date: Thu, 12 Sep 2013 23:02:56 +0300 Subject: [PATCH 08/20] Use svg by default. Closes #31 --- ajax/documentController.php | 3 ++- ajax/mimeicon.php | 3 --- js/documents.js | 30 ++---------------------------- 3 files changed, 4 insertions(+), 32 deletions(-) delete mode 100644 ajax/mimeicon.php diff --git a/ajax/documentController.php b/ajax/documentController.php index 4468b500..45fa69ab 100644 --- a/ajax/documentController.php +++ b/ajax/documentController.php @@ -38,7 +38,8 @@ class DocumentController extends Controller{ $documents = Storage::getDocuments(); $fileIds = array(); - foreach ($documents as $document) { + foreach ($documents as $key=>$document) { + $documents[$key]['icon'] = preg_replace('/\.png$/', '.svg', \OC_Helper::mimetypeIcon($document['mimetype'])); $fileIds[] = $document['fileid']; } diff --git a/ajax/mimeicon.php b/ajax/mimeicon.php deleted file mode 100644 index 8a354746..00000000 --- a/ajax/mimeicon.php +++ /dev/null @@ -1,3 +0,0 @@ - OC_Helper::mimetypeIcon($_GET['mime']))); diff --git a/js/documents.js b/js/documents.js index c42a855f..af5be88a 100644 --- a/js/documents.js +++ b/js/documents.js @@ -218,10 +218,8 @@ var documentsMain = { var a = docElem.find('a'); a.attr('href', OC.Router.generate('download',{file:document.path})); a.find('label').text(document.name); + a.css('background-image', 'url("'+document.icon+'")'); - getMimeIcon(document.mimetype).then(function(path){ - a.css('background-image', 'url("'+path+'")'); - }); $('.documentslist').append(docElem); docElem.show(); }); @@ -241,30 +239,6 @@ var documentsMain = { }; -/** - * TODO copy from files, move from files to core? load files.js? - * @param {type} mime - * @returns {getMimeIcon} - */ -function getMimeIcon(mime){ - var def = new $.Deferred(); - if(getMimeIcon.cache[mime]){ - def.resolve(getMimeIcon.cache[mime]); - }else{ - jQuery.getJSON( OC.filePath('documents','ajax','mimeicon.php'), {mime: mime}) - .done(function(data){ - getMimeIcon.cache[mime]=data.path; - def.resolve(getMimeIcon.cache[mime]); - }) - .error(function(jqXHR, textStatus, errorThrown){ - console.log(textStatus + ': ' + errorThrown); - console.log(jqXHR); - }); - } - return def; -} -getMimeIcon.cache={}; - $(document).ready(function() { "use strict"; @@ -330,4 +304,4 @@ $(document).ready(function() { //TODO when ending a session as the last user close session? OC.addScript('documents', 'webodf_bootstrap', documentsMain.onStartup); -}); \ No newline at end of file +}); From 1a92e7c1b451472e6519ae5307f7a11dbcaee6d7 Mon Sep 17 00:00:00 2001 From: Victor Dubiniuk Date: Fri, 13 Sep 2013 13:18:45 +0300 Subject: [PATCH 09/20] Create new document. Ref #34 --- ajax/documentController.php | 16 +++++++++++++++- appinfo/routes.php | 5 +++++ js/documents.js | 24 +++++++++++++++++++----- templates/documents.php | 4 ++-- 4 files changed, 41 insertions(+), 8 deletions(-) diff --git a/ajax/documentController.php b/ajax/documentController.php index 45fa69ab..56dd1b68 100644 --- a/ajax/documentController.php +++ b/ajax/documentController.php @@ -13,8 +13,19 @@ namespace OCA\Documents; class DocumentController extends Controller{ + const ODT_TEMPLATE = 'UEsDBBQAAAgAAC6aLENexjIMJwAAACcAAAAIAAAAbWltZXR5cGVhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnRleHRQSwMEFAAACAAALposQ9dwh9LYAgAA2AIAABgAAABUaHVtYm5haWxzL3RodW1ibmFpbC5wbmeJUE5HDQoaCgAAAA1JSERSAAAAxgAAAQAIAgAAAGc/nhcAAAKfSURBVHic7dKxCQAwDMCwDvn/5fQJQ6FIF3jw7O6BzrwO4DeWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYpYiZililiJmKWKWImYpYheoVwb+sqPDzwAAAABJRU5ErkJgglBLAwQUAAgICAAumixDAAAAAAAAAAAAAAAACwAAAGNvbnRlbnQueG1s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bj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPG9mZmljZTpkb2N1bWVudC1tZXRhIHhtbG5zOm9mZmljZT0idXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpvZmZpY2U6MS4wIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczptZXRhPSJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOm1ldGE6MS4wIiB4bWxuczptYXRoPSJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIiB4bWxuczpmb3JtPSJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOmZvcm06MS4wIiB4bWxuczpvb289Imh0dHA6Ly9vcGVub2ZmaWNlLm9yZy8yMDA0L29mZmljZSIgeG1sbnM6Z3JkZGw9Imh0dHA6Ly93d3cudzMub3JnLzIwMDMvZy9kYXRhLXZpZXcjIiBvZmZpY2U6dmVyc2lvbj0iMS4yIj48b2ZmaWNlOm1ldGE+PG1ldGE6aW5pdGlhbC1jcmVhdG9yPlZpY3RvciBEdWJpbml1azwvbWV0YTppbml0aWFsLWNyZWF0b3I+PG1ldGE6Y3JlYXRpb24tZGF0ZT4yMDEzLTA5LTEyVDIyOjE3OjAzPC9tZXRhOmNyZWF0aW9uLWRhdGU+PG1ldGE6ZG9jdW1lbnQtc3RhdGlzdGljIG1ldGE6dGFibGUtY291bnQ9IjAiIG1ldGE6aW1hZ2UtY291bnQ9IjAiIG1ldGE6b2JqZWN0LWNvdW50PSIwIiBtZXRhOnBhZ2UtY291bnQ9IjEiIG1ldGE6cGFyYWdyYXBoLWNvdW50PSIwIiBtZXRhOndvcmQtY291bnQ9IjAiIG1ldGE6Y2hhcmFjdGVyLWNvdW50PSIwIiBtZXRhOm5vbi13aGl0ZXNwYWNlLWNoYXJhY3Rlci1jb3VudD0iMCIvPjxtZXRhOmdlbmVyYXRvcj5MaWJyZU9mZmljZS8zLjYkTGludXhfWDg2XzY0IExpYnJlT2ZmaWNlX3Byb2pl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'; - /** + public static function create($args){ + $uid = self::preDispatch(); + $view = new \OC\Files\View('/' . $uid . '/files'); + $view->file_put_contents( + 'document.odt', + base64_decode(self::ODT_TEMPLATE) + ); + } + + +/** * Process partial/complete file download * @param array $args - array containing session id as anelement with a key es_id */ @@ -38,7 +49,10 @@ class DocumentController extends Controller{ $documents = Storage::getDocuments(); $fileIds = array(); + + //$previewAvailable = \OCP\Preview::show($file); foreach ($documents as $key=>$document) { + //\OCP\Preview::show($document['path']); $documents[$key]['icon'] = preg_replace('/\.png$/', '.svg', \OC_Helper::mimetypeIcon($document['mimetype'])); $fileIds[] = $document['fileid']; } diff --git a/appinfo/routes.php b/appinfo/routes.php index 46eaf083..6e2abe0e 100644 --- a/appinfo/routes.php +++ b/appinfo/routes.php @@ -12,6 +12,11 @@ /** * Document routes */ + +$this->create('documents_documents_create', 'ajax/documents/create') + ->post() + ->action('\OCA\Documents\DocumentController', 'create') +; $this->create('documents_genesis', 'ajax/genesis/{es_id}') ->post() ->action('\OCA\Documents\DocumentController', 'serve') diff --git a/js/documents.js b/js/documents.js index af5be88a..1d1a4457 100644 --- a/js/documents.js +++ b/js/documents.js @@ -113,6 +113,15 @@ var documentsMain = { documentsMain.initSession ); }, + + onCreate: function(event){ + event.preventDefault(); + $.post( + OC.Router.generate('documents_documents_create'), + {}, + documentsMain.show + ); + }, /** * FIXME * @@ -186,6 +195,12 @@ var documentsMain = { hideOverlay : function(){ $('#documents-overlay,#documents-overlay-below').fadeOut('slow'); }, + show: function(){ + jQuery.when(documentsMain.loadDocuments()) + .then(function(){ + documentsMain.renderDocuments(); + }); + }, loadDocuments: function () { var self = this; var def = new $.Deferred(); @@ -242,7 +257,7 @@ var documentsMain = { $(document).ready(function() { "use strict"; - $('.documentslist').on('click', 'li', function(event) { + $('.documentslist').on('click', 'li:not(.add-document)', function(event) { event.preventDefault(); if (documentsMain.isEditorMode){ return; @@ -265,6 +280,8 @@ $(document).ready(function() { $(this).remove(); }); + $('.add-document').on('click', '.add', documentsMain.onCreate); + $('#inivite-input').autocomplete({ minLength: 1, source: function(search, response) { @@ -296,10 +313,7 @@ $(document).ready(function() { } }); - jQuery.when(documentsMain.loadDocuments()) - .then(function(){ - documentsMain.renderDocuments(); - }); + documentsMain.show(); //TODO show "no docs, please upload" //TODO when ending a session as the last user close session? diff --git a/templates/documents.php b/templates/documents.php index b376477a..fdbc0d7d 100755 --- a/templates/documents.php +++ b/templates/documents.php @@ -11,9 +11,9 @@
  • - + From 8462bf2a8f4ec61b41d175e93dfe0cf31bfe68d1 Mon Sep 17 00:00:00 2001 From: Victor Dubiniuk Date: Fri, 13 Sep 2013 13:40:26 +0300 Subject: [PATCH 10/20] Add (i) if filename already exists. Ref #34 --- ajax/documentController.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/ajax/documentController.php b/ajax/documentController.php index 56dd1b68..810cfdb9 100644 --- a/ajax/documentController.php +++ b/ajax/documentController.php @@ -18,8 +18,16 @@ class DocumentController extends Controller{ public static function create($args){ $uid = self::preDispatch(); $view = new \OC\Files\View('/' . $uid . '/files'); + $name = '/New Document.odt'; + $fileNum = 0; + + while ($view->file_exists($name)){ + $fileNum += 1; + $name = preg_replace('/(\.odt|\(\d+\)\.odt)$/', ' (' .$fileNum . ').odt', $name); + }; + $view->file_put_contents( - 'document.odt', + $name, base64_decode(self::ODT_TEMPLATE) ); } From a825614bc7af832d8aea23e9e9bddf50077c7749 Mon Sep 17 00:00:00 2001 From: Victor Dubiniuk Date: Fri, 13 Sep 2013 13:59:55 +0300 Subject: [PATCH 11/20] Document title improvement. Closes #37 --- css/style.css | 11 +++++++---- js/documents.js | 4 ++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/css/style.css b/css/style.css index 5b4000d2..3768e95c 100755 --- a/css/style.css +++ b/css/style.css @@ -91,14 +91,17 @@ } #document-title{ - position: relative; + position: absolute; top: 6px; - width:50%; - margin:0 auto -14px auto; + left:50%; + margin:0; text-align: center; font-weight: bold; } - +#document-title div{ + position: relative; + margin-left:-50%; +} #odf-close{ float: right; } diff --git a/js/documents.js b/js/documents.js index 1d1a4457..7ae33873 100644 --- a/js/documents.js +++ b/js/documents.js @@ -44,9 +44,9 @@ var documentsMain = { ' ' + - '
    ' + + '
    ' + documentsMain.documentTitle + - '
    ' + + '
    ' + ' ' + From 5bb15c5c3c1ed77d86c4984e2d062231d9cb0a12 Mon Sep 17 00:00:00 2001 From: Victor Dubiniuk Date: Fri, 13 Sep 2013 14:25:53 +0300 Subject: [PATCH 12/20] Fix non-static notice in logs. Ref #32 --- lib/db.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/db.php b/lib/db.php index 8e5ed5ba..76a229cf 100644 --- a/lib/db.php +++ b/lib/db.php @@ -17,7 +17,7 @@ class Db { * @param Array $array data * @return String string of '?' placeholders matching the number of elements in array */ - public function buildPlaceholders($array){ + public static function buildPlaceholders($array){ $count = count($array); $placeholders = array_fill(0, $count, '?'); $stmt = implode(', ', $placeholders); From c7842925f966e49d743cfa409a528875fad0d17e Mon Sep 17 00:00:00 2001 From: Victor Dubiniuk Date: Fri, 13 Sep 2013 16:47:48 +0300 Subject: [PATCH 13/20] Initial upload. Ref #32 --- css/style.css | 14 +++++++++++++- index.php | 8 ++++++++ templates/documents.php | 26 +++++++++++++++++++++++--- 3 files changed, 44 insertions(+), 4 deletions(-) diff --git a/css/style.css b/css/style.css index 3768e95c..761aa16d 100755 --- a/css/style.css +++ b/css/style.css @@ -154,12 +154,24 @@ z-index: 999; } +#file_upload_start{ + position:relative; + left:0; top:0; width:200px; height:200px; + margin-bottom: -200px;padding:0; + cursor:pointer; overflow:hidden; + font-size:1em; + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter:alpha(opacity=0); opacity:0; + z-index:20; + } + + /* override WebODF styling here */ #members{ padding-top: 3em !important; } + #editor { box-shadow: 0px 0px 14px #555 !important; } @@ -172,4 +184,4 @@ #container { background-color: #ddd !important; top: 38px !important; -} \ No newline at end of file +} diff --git a/index.php b/index.php index 6e5f9fb2..1ec86709 100755 --- a/index.php +++ b/index.php @@ -33,6 +33,14 @@ namespace OCA\Documents; \OCP\Util::addStyle( 'documents', 'editor' ); \OCP\Util::addScript('documents', 'documents'); +\OCP\Util::addScript('files', 'file-upload'); +\OCP\Util::addScript('files', 'jquery.iframe-transport'); +\OCP\Util::addScript('files', 'jquery.fileupload'); +\OCP\Util::addScript('files', 'upload'); + $tmpl = new \OCP\Template('documents', 'documents', 'user'); +$maxUploadFilesize = \OCP\Util::maxUploadFilesize("/"); +$tmpl->assign('uploadMaxFilesize', $maxUploadFilesize); +$tmpl->assign('uploadMaxHumanFilesize', \OCP\Util::humanFileSize($maxUploadFilesize)); $tmpl->printPage(); diff --git a/templates/documents.php b/templates/documents.php index fdbc0d7d..eb0263bf 100755 --- a/templates/documents.php +++ b/templates/documents.php @@ -14,9 +14,29 @@ - - - +
    +
    + = 0):?> + + + + + + + + + +
    +