From a62b393d02fdfc49334b5ad4b1e847a711de741d Mon Sep 17 00:00:00 2001 From: Guillaume AMAT Date: Wed, 12 Feb 2014 00:54:35 +0100 Subject: [PATCH 1/9] Update page title when navigating through directories --- apps/files/js/filelist.js | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index a855d6cbe5..7691135e62 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -18,6 +18,15 @@ window.FileList={ $(this).attr('data-file',decodeURIComponent($(this).attr('data-file'))); }); }, + /** + * Sets a new page title + */ + setPageTitle: function(title){ + // Sets the page title with the " - ownCloud" suffix as in templates + window.document.title = title + ' - ownCloud'; + + return true; + }, /** * Returns the tr element for a given file name */ @@ -186,12 +195,22 @@ window.FileList={ changeDirectory: function(targetDir, changeUrl, force) { var $dir = $('#dir'), url, - currentDir = $dir.val() || '/'; + currentDir = $dir.val() || '/', + baseDir = targetDir.split('/').pop(), targetDir = targetDir || '/'; if (!force && currentDir === targetDir) { return; } + + if (baseDir !== '') { + FileList.setPageTitle(baseDir); + } + else { + FileList.setPageTitle(t('files', 'Files')); + } + FileList.setCurrentDir(targetDir, changeUrl); + $('#fileList').trigger( jQuery.Event('changeDirectory', { dir: targetDir, @@ -811,7 +830,8 @@ window.FileList={ }; $(document).ready(function() { - var isPublic = !!$('#isPublic').val(); + var baseDir, + isPublic = !!$('#isPublic').val(); // handle upload events var file_upload_start = $('#file_upload_start'); @@ -1095,6 +1115,14 @@ $(document).ready(function() { FileList.changeDirectory(parseCurrentDirFromUrl(), false, true); } } - + + + baseDir = parseCurrentDirFromUrl().split('/').pop(); + + if (baseDir !== '') { + FileList.setPageTitle(baseDir); + } + + FileList.createFileSummary(); }); From 01dee35ebe1f3ab0e8a7f986015a9fa43a80b061 Mon Sep 17 00:00:00 2001 From: Guillaume AMAT Date: Thu, 13 Feb 2014 10:47:03 +0100 Subject: [PATCH 2/9] Adds OC_Defaults values in javascript config --- core/js/config.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/core/js/config.php b/core/js/config.php index 517ea1615a..7ec0904ec3 100644 --- a/core/js/config.php +++ b/core/js/config.php @@ -16,6 +16,9 @@ header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Enable l10n support $l = OC_L10N::get('core'); +// Enable OC_Defaults support +$defaults = new OC_Defaults(); + // Get the config $apps_paths = array(); foreach(OC_App::getEnabledApps() as $app) { @@ -60,6 +63,20 @@ $array = array( 'session_lifetime' => \OCP\Config::getSystemValue('session_lifetime', 60 * 60 * 24), 'session_keepalive' => \OCP\Config::getSystemValue('session_keepalive', true) ) + ), + "oc_defaults" => json_encode( + array( + 'entity' => $defaults->getEntity(), + 'name' => $defaults->getName(), + 'title' => $defaults->getTitle(), + 'baseUrl' => $defaults->getBaseUrl(), + 'syncClientUrl' => $defaults->getSyncClientUrl(), + 'docBaseUrl' => $defaults->getDocBaseUrl(), + 'slogan' => $defaults->getSlogan(), + 'logoClaim' => $defaults->getLogoClaim(), + 'shortFooter' => $defaults->getShortFooter(), + 'longFooter' => $defaults->getLongFooter() + ) ) ); From 01dc7c5482e6b7486695fdba865a1c88ab05358d Mon Sep 17 00:00:00 2001 From: Guillaume AMAT Date: Thu, 13 Feb 2014 10:48:01 +0100 Subject: [PATCH 3/9] Gets the page title from oc_defaults in Files app --- apps/files/js/filelist.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 7691135e62..14f03121ff 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -23,7 +23,7 @@ window.FileList={ */ setPageTitle: function(title){ // Sets the page title with the " - ownCloud" suffix as in templates - window.document.title = title + ' - ownCloud'; + window.document.title = title + ' - ' + oc_defaults.title; return true; }, From 577559458dd7aa74e32ab62216a22bbc75009866 Mon Sep 17 00:00:00 2001 From: Guillaume AMAT Date: Wed, 19 Feb 2014 22:50:49 +0100 Subject: [PATCH 4/9] Uses OC.basename instead of custom code --- apps/files/js/filelist.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 14f03121ff..7d0818ef1e 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -196,7 +196,7 @@ window.FileList={ var $dir = $('#dir'), url, currentDir = $dir.val() || '/', - baseDir = targetDir.split('/').pop(), + baseDir = OC.basename(targetDir), targetDir = targetDir || '/'; if (!force && currentDir === targetDir) { return; @@ -1117,7 +1117,7 @@ $(document).ready(function() { } - baseDir = parseCurrentDirFromUrl().split('/').pop(); + baseDir = OC.basename(parseCurrentDirFromUrl()); if (baseDir !== '') { FileList.setPageTitle(baseDir); From 476444ab1a6f925b87ca6f6382953633fd060283 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 20 Feb 2014 14:56:28 +0100 Subject: [PATCH 5/9] Fixed title format --- apps/files/js/filelist.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 6bf134eed3..3fd3c406b2 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -22,6 +22,13 @@ window.FileList={ * Sets a new page title */ setPageTitle: function(title){ + if (title) { + title += ' - '; + } + else { + title = ''; + } + title += t('files', 'Files'); // Sets the page title with the " - ownCloud" suffix as in templates window.document.title = title + ' - ' + oc_defaults.title; @@ -206,7 +213,7 @@ window.FileList={ FileList.setPageTitle(baseDir); } else { - FileList.setPageTitle(t('files', 'Files')); + FileList.setPageTitle(); } FileList.setCurrentDir(targetDir, changeUrl); From 44441b56d63783a0be5c9b24f5b1ee9264509bef Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 20 Feb 2014 15:16:45 +0100 Subject: [PATCH 6/9] Fixed trashbin title --- apps/files/js/filelist.js | 36 +++++++++++++----------------- apps/files_trashbin/js/filelist.js | 32 +++++++++++++++++++++++++- 2 files changed, 46 insertions(+), 22 deletions(-) diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 3fd3c406b2..edcc5519b2 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -11,6 +11,7 @@ /* global OC, t, n, FileList, FileActions, Files */ /* global procesSelection, dragOptions, SVGSupport, replaceSVG */ window.FileList={ + appName: t('files', 'Files'), useUndo:true, postProcessList: function() { $('#fileList tr').each(function() { @@ -28,7 +29,7 @@ window.FileList={ else { title = ''; } - title += t('files', 'Files'); + title += FileList.appName; // Sets the page title with the " - ownCloud" suffix as in templates window.document.title = title + ' - ' + oc_defaults.title; @@ -202,22 +203,12 @@ window.FileList={ changeDirectory: function(targetDir, changeUrl, force) { var $dir = $('#dir'), url, - currentDir = $dir.val() || '/', - baseDir = OC.basename(targetDir), + currentDir = $dir.val() || '/'; targetDir = targetDir || '/'; if (!force && currentDir === targetDir) { return; } - - if (baseDir !== '') { - FileList.setPageTitle(baseDir); - } - else { - FileList.setPageTitle(); - } - FileList.setCurrentDir(targetDir, changeUrl); - $('#fileList').trigger( jQuery.Event('changeDirectory', { dir: targetDir, @@ -230,7 +221,16 @@ window.FileList={ return OC.linkTo('files', 'index.php')+"?dir="+ encodeURIComponent(dir).replace(/%2F/g, '/'); }, setCurrentDir: function(targetDir, changeUrl) { - var url; + var url, + baseDir = OC.basename(targetDir); + + if (baseDir !== '') { + FileList.setPageTitle(baseDir); + } + else { + FileList.setPageTitle(); + } + $('#dir').val(targetDir); if (changeUrl !== false) { if (window.history.pushState && changeUrl !== false) { @@ -1158,14 +1158,8 @@ $(document).ready(function() { FileList.changeDirectory(parseCurrentDirFromUrl(), false, true); } } - - - baseDir = OC.basename(parseCurrentDirFromUrl()); - - if (baseDir !== '') { - FileList.setPageTitle(baseDir); - } - + + FileList.setCurrentDir(parseCurrentDirFromUrl(), false); FileList.createFileSummary(); }); diff --git a/apps/files_trashbin/js/filelist.js b/apps/files_trashbin/js/filelist.js index f42abb6d02..a88459b0a9 100644 --- a/apps/files_trashbin/js/filelist.js +++ b/apps/files_trashbin/js/filelist.js @@ -1,3 +1,4 @@ +/* globals OC, FileList, t */ // override reload with own ajax call FileList.reload = function(){ FileList.showMask(); @@ -17,7 +18,36 @@ FileList.reload = function(){ FileList.reloadCallback(result); } }); -} +}; + +FileList.appName = t('files_trashbin', 'Deleted files'); + +FileList._deletedRegExp = new RegExp(/^(.+)\.d[0-9]+$/); + +/** + * Convert a file name in the format filename.d12345 to the real file name. + * This will use basename. + * The name will not be changed if it has no ".d12345" suffix. + * @param name file name + * @return converted file name + */ +FileList.getDeletedFileName = function(name) { + name = OC.basename(name); + var match = FileList._deletedRegExp.exec(name); + if (match && match.length > 1) { + name = match[1]; + } + return name; +}; +var oldSetCurrentDir = FileList.setCurrentDir; +FileList.setCurrentDir = function(targetDir) { + oldSetCurrentDir.apply(this, arguments); + + var baseDir = OC.basename(targetDir); + if (baseDir !== '') { + FileList.setPageTitle(FileList.getDeletedFileName(baseDir)); + } +}; FileList.linkTo = function(dir){ return OC.linkTo('files_trashbin', 'index.php')+"?dir="+ encodeURIComponent(dir).replace(/%2F/g, '/'); From 658758c3f7e0f18a37c00ce107c8d3b4917183e0 Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Thu, 20 Feb 2014 15:36:52 +0100 Subject: [PATCH 7/9] fix intendation --- apps/files/js/filelist.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index edcc5519b2..2dacabaa9d 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -32,7 +32,7 @@ window.FileList={ title += FileList.appName; // Sets the page title with the " - ownCloud" suffix as in templates window.document.title = title + ' - ' + oc_defaults.title; - + return true; }, /** @@ -874,7 +874,7 @@ window.FileList={ $(document).ready(function() { var baseDir, - isPublic = !!$('#isPublic').val(); + isPublic = !!$('#isPublic').val(); // handle upload events var file_upload_start = $('#file_upload_start'); @@ -1160,6 +1160,6 @@ $(document).ready(function() { } FileList.setCurrentDir(parseCurrentDirFromUrl(), false); - + FileList.createFileSummary(); }); From b22d82f941d29157d659ec29689c75a8b53a530c Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Fri, 21 Feb 2014 09:42:19 +0100 Subject: [PATCH 8/9] code style: else on same line --- apps/files/js/filelist.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 2dacabaa9d..35fbdeecd3 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -25,8 +25,7 @@ window.FileList={ setPageTitle: function(title){ if (title) { title += ' - '; - } - else { + } else { title = ''; } title += FileList.appName; From 80c61d480cfe0964707a9044738526a853c1211f Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Mon, 24 Feb 2014 09:45:02 +0100 Subject: [PATCH 9/9] Added oc_defaults stub in specHelper.js This is needed for JS Unit tests to run properly as they are expecting the new "oc_default" map to exist. --- core/js/tests/specHelper.js | 1 + 1 file changed, 1 insertion(+) diff --git a/core/js/tests/specHelper.js b/core/js/tests/specHelper.js index 1848d08354..b119324058 100644 --- a/core/js/tests/specHelper.js +++ b/core/js/tests/specHelper.js @@ -63,6 +63,7 @@ window.oc_config = { session_lifetime: 600 * 1000, session_keepalive: false }; +window.oc_defaults = {}; // global setup for all tests (function setupTests() {