MDL-29872 Dropbox repository: add message handler to filepicker header and add messag...
authorRossiani Wijaya <rwijaya@moodle.com>
Fri, 31 Aug 2012 07:23:59 +0000 (15:23 +0800)
committerRossiani Wijaya <rwijaya@moodle.com>
Fri, 7 Sep 2012 07:44:08 +0000 (15:44 +0800)
When user clicked on logout button from dropbox repository, it will also logging them out from dropbox site through a popup window

files/renderer.php
repository/dropbox/lang/en/repository_dropbox.php
repository/dropbox/lib.php
repository/filepicker.js

index cfa14e0..b0eed2a 100644 (file)
@@ -526,6 +526,7 @@ class core_files_renderer extends plugin_renderer_base {
                     <div class="{!}fp-tb-logout"><img src="'.$this->pix_url('a/logout').'" /><a href="#"></a></div>
                     <div class="{!}fp-tb-manage"><a href="#"><img src="'.$this->pix_url('a/setting').'" /> '.get_string('manageurl', 'repository').'</a></div>
                     <div class="{!}fp-tb-help"><a href="#"><img src="'.$this->pix_url('a/help').'" /> '.get_string('help').'</a></div>
+                    <div class="{!}fp-tb-message"></div>
                 </div>
                 <div class="{!}fp-viewbar">
                     <a class="{!}fp-vb-icons" href="#"></a>
index abf16c1..6f0728d 100644 (file)
@@ -33,3 +33,4 @@ $string['instruction'] = 'You can get your API Key and secret from <a href="http
 $string['cachelimit'] = 'Cache limit';
 $string['cachelimit_info'] = 'Enter the maximum size of files (in bytes) to be cached on server for Dropbox aliases/shortcuts. Cached files will be served when the source is no longer available. Empty value or zero mean caching of all files regardless of size.';
 $string['dropbox:view'] = 'View a Dropbox folder';
+$string['logoutdesc'] = '(Logout when you finish using Dropbox)';
index a0af82f..768580e 100644 (file)
@@ -179,6 +179,8 @@ class repository_dropbox extends repository {
         $list['manage'] = 'https://www.dropbox.com/home';
         $list['dynload'] = true;
         $list['nosearch'] = true;
+        $list['logouturl'] = 'https://www.dropbox.com/logout';
+        $list['message'] = get_string('logoutdesc', 'repository_dropbox');
         // process breadcrumb trail
         $list['path'] = array(
             array('name'=>get_string('dropbox', 'repository_dropbox'), 'path'=>'/')
index d277574..9654045 100644 (file)
@@ -1386,6 +1386,8 @@ M.core_filepicker.init = function(Y, options) {
             this.active_repo.norefresh = (data.login || data.norefresh); // this is either login form or 'norefresh' attribute set
             this.active_repo.nologin = (data.login || data.nologin); // this is either login form or 'nologin' attribute is set
             this.active_repo.logouttext = data.logouttext?data.logouttext:null;
+            this.active_repo.logouturl = (data.logouturl || '');
+            this.active_repo.message = (data.message || '');
             this.active_repo.help = data.help?data.help:null;
             this.active_repo.manage = data.manage?data.manage:null;
             this.print_header();
@@ -1698,6 +1700,9 @@ M.core_filepicker.init = function(Y, options) {
                         callback: this.display_response
                     }, true);
                 }
+                if (this.active_repo.logouturl) {
+                    window.open(this.active_repo.logouturl, 'repo_auth', 'location=0,status=0,width=500,height=300,scrollbars=yes');
+                }
             }, this);
             toolbar.one('.fp-tb-refresh').one('a,button').on('click', function(e) {
                 e.preventDefault();
@@ -1720,7 +1725,7 @@ M.core_filepicker.init = function(Y, options) {
                             callback: this.display_response
                         }, true);
                     }
-                }, this);
+            }, this);
 
             // it does not matter what kind of element is .fp-tb-manage, we create a dummy <a>
             // element and use it to open url on click event
@@ -1817,6 +1822,12 @@ M.core_filepicker.init = function(Y, options) {
             // help url
             enable_tb_control(toolbar.one('.fp-tb-help'), r.help);
             Y.one('#fp-tb-help-'+client_id+'-link').set('href', r.help);
+
+            // message
+            if (toolbar.one('.fp-tb-message')) {
+                enable_tb_control(toolbar.one('.fp-tb-message'), r.message);
+                toolbar.one('.fp-tb-message').setContent(r.message);
+            }
         },
         print_path: function() {
             if (!this.pathbar) {