diff --git a/plugins/kolab_files/kolab_files.js b/plugins/kolab_files/kolab_files.js index 5455d3b4..d4ea8ede 100644 --- a/plugins/kolab_files/kolab_files.js +++ b/plugins/kolab_files/kolab_files.js @@ -567,6 +567,9 @@ kolab_files_frame_load = function(frame) if (rcmail.file_editor) rcmail.enable_command('files-edit', true); + + rcmail.enable_command('files-print', (rcmail.file_editor && rcmail.file_editor.printable) || + (rcmail.env.file_data && /^image\//i.test(rcmail.env.file_data.type))); }; @@ -695,6 +698,21 @@ rcube_webmail.prototype.files_save = function() file_api.file_save(this.env.file, content); }; +rcube_webmail.prototype.files_print = function() +{ + if (this.file_editor && this.file_editor.printable) + this.file_editor.print(); + else if (/^image\//i.test(this.env.file_data.type)) { + var frame = $('#fileframe').get(0), + win = frame ? frame.contentWindow : null; + + if (win) { + win.focus(); + win.print(); + } + } +}; + rcube_webmail.prototype.files_set_quota = function(p) { if (p.total) { diff --git a/plugins/kolab_files/lib/kolab_files_engine.php b/plugins/kolab_files/lib/kolab_files_engine.php index 022fd3ef..0401eeab 100644 --- a/plugins/kolab_files/lib/kolab_files_engine.php +++ b/plugins/kolab_files/lib/kolab_files_engine.php @@ -700,15 +700,14 @@ class kolab_files_engine $this->plugin->add_label('filedeleteconfirm', 'filedeleting', 'filedeletenotice'); - // this one is for styling purpose - $this->rc->output->set_env('extwin', true); - // register template objects for dialogs (and main interface) $this->rc->output->add_handlers(array( 'fileinfobox' => array($this, 'file_info_box'), 'filepreviewframe' => array($this, 'file_preview_frame'), )); + // this one is for styling purpose + $this->rc->output->set_env('extwin', true); $this->rc->output->set_env('file', $file); $this->rc->output->set_env('file_data', $this->file_data); $this->rc->output->set_pagetitle(rcube::Q($file)); diff --git a/plugins/kolab_files/localization/en_US.inc b/plugins/kolab_files/localization/en_US.inc index c1488561..5023002c 100644 --- a/plugins/kolab_files/localization/en_US.inc +++ b/plugins/kolab_files/localization/en_US.inc @@ -32,6 +32,7 @@ $labels['edit'] = 'Edit'; $labels['editfile'] = 'Edit file'; $labels['save'] = 'Save'; $labels['savefile'] = 'Save file'; +$labels['printfile'] = 'Print file'; $labels['fileedit'] = 'File properties'; $labels['collection_audio'] = 'Audio'; diff --git a/plugins/kolab_files/skins/larry/style.css b/plugins/kolab_files/skins/larry/style.css index 9f0b5e66..d13b53cc 100644 --- a/plugins/kolab_files/skins/larry/style.css +++ b/plugins/kolab_files/skins/larry/style.css @@ -50,6 +50,10 @@ background-position: center -213px; } +#filestoolbar a.button.print { + background: url(../../../../skins/larry/images/buttons.png) center -810px no-repeat; +} + #filestoolbar form { display: inline; } diff --git a/plugins/kolab_files/skins/larry/templates/filepreview.html b/plugins/kolab_files/skins/larry/templates/filepreview.html index 4657f2cc..bc35752a 100644 --- a/plugins/kolab_files/skins/larry/templates/filepreview.html +++ b/plugins/kolab_files/skins/larry/templates/filepreview.html @@ -17,6 +17,7 @@