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 @@