diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php index 49f9676ae6590e67ae11bb5a5047b02cbbd7af1f..c5584113b8c54129a333935d1b6e1b0ff25a7770 100644 --- a/inc/lang/en/lang.php +++ b/inc/lang/en/lang.php @@ -91,8 +91,8 @@ $lang['notsavedyet'] = 'Unsaved changes will be lost.\nReally continue?'; $lang['rssfailed'] = 'An error occured while fetching this feed: '; $lang['nothingfound']= 'Nothing was found.'; -$lang['mediaselect'] = 'Mediafiles'; -$lang['fileupload'] = 'Mediafile Upload'; +$lang['mediaselect'] = 'Media Files'; +$lang['fileupload'] = 'Media File Upload'; $lang['uploadsucc'] = 'Upload successful'; $lang['uploadfail'] = 'Upload failed. Maybe wrong permissions?'; $lang['uploadwrong'] = 'Upload denied. This file extension is forbidden!'; @@ -106,6 +106,8 @@ $lang['mediafiles'] = 'Available files in'; $lang['js']['keepopen'] = 'Keep window open on selection'; $lang['js']['hidedetails'] = 'Hide Details'; $lang['mediausage'] = 'Use the following syntax to reference this file:'; +$lang['mediaview'] = 'View original file'; +$lang['mediaupload'] = 'Upload a file to the current namespace here. To create subnamespaces, prepend them to your filename separated by colons.'; $lang['reference'] = 'References for'; $lang['ref_inuse'] = 'The file can\'t be deleted, because it\'s still used by the following pages:'; diff --git a/inc/media.php b/inc/media.php index f09aff2ebbd5a687bf87475f9a3436fdb44cd36a..7d2dbd5ff9e8c711c57ab9e479d685a12990e9f2 100644 --- a/inc/media.php +++ b/inc/media.php @@ -114,7 +114,7 @@ function media_metaform($id,$auth){ echo '<div class="metafield">'; echo '<label for="meta__'.$key.'">'; echo ($lang[$field[1]]) ? $lang[$field[1]] : $field[1]; - echo '</label>'; + echo ':</label>'; // put input field if($field[2] == 'text'){ @@ -268,7 +268,13 @@ function media_filelist($ns,$auth=null,$jump=''){ function media_fileactions($item,$auth){ global $lang; - // no actions if not writable + // view button + $link = ml($item['id'],'',true); + echo ' <a href="'.$link.'" target="_blank"><img src="'.DOKU_BASE.'lib/images/magnifier.png" '. + 'alt="'.$lang['mediaview'].'" title="'.$lang['mediaview'].'" class="btn" /></a>'; + + + // no further actions if not writable if(!$item['writable']) return; // delete button @@ -377,6 +383,7 @@ function media_printimgdetail($item){ $t = $item['meta']->getField(array('IPTC.Caption','EXIF.UserComment', 'EXIF.TIFFImageDescription', 'EXIF.TIFFUserComment')); + if(utf8_strlen($t) > 250) $t = utf8_substr($t,0,250).'...'; if($t) echo htmlspecialchars($t).'<br />'; $t = $item['meta']->getField(array('IPTC.Keywords','IPTC.Category')); @@ -396,10 +403,12 @@ function media_uploadform($ns, $auth){ if($auth < AUTH_UPLOAD) return; //fixme print info on missing permissions? ?> + <div class="upload"><?php echo $lang['mediaupload']?></div> <form action="<?php echo DOKU_BASE?>lib/exe/mediamanager.php" method="post" enctype="multipart/form-data" class="upload"> <input type="hidden" name="ns" value="<?php echo hsc($ns)?>" /> + <?php echo $lang['txt_upload']?>: <input type="file" name="upload" class="edit" id="upload__file" /><br /> diff --git a/lib/exe/css.php b/lib/exe/css.php index b63841a03cdb412eb9fea8b0079cf4f0a4beb1f9..cb85d1a35f09ae3f5fc5c79d93fe59220e9f7ae2 100644 --- a/lib/exe/css.php +++ b/lib/exe/css.php @@ -72,6 +72,7 @@ function css_out(){ header('Pragma: public'); if(css_cacheok($cache,array_keys($files))){ http_conditionalRequest(filemtime($cache)); + if($conf['allowdebug']) header("X-CacheUsed: $cache"); readfile($cache); return; } else { diff --git a/lib/exe/js.php b/lib/exe/js.php index 583faa5ad0c70caa93a3ef071d8d4c21e42d8a71..7ff60710ca712bdb7a9bcdbdd88be9b242cd91ff 100644 --- a/lib/exe/js.php +++ b/lib/exe/js.php @@ -35,7 +35,7 @@ function js_out(){ $write = (bool) $_REQUEST['write']; // writable? // The generated script depends on some dynamic options - $cache = getCacheName('scripts'.$edit.$write,'.js'); + $cache = getCacheName('scripts'.$edit.'x'.$write,'.js'); // Array of needed files $files = array( @@ -66,6 +66,7 @@ function js_out(){ header('Pragma: public'); if(js_cacheok($cache,array_merge($files,$plugins))){ http_conditionalRequest(filemtime($cache)); + if($conf['allowdebug']) header("X-CacheUsed: $cache"); readfile($cache); return; } else { diff --git a/lib/exe/mediamanager.php b/lib/exe/mediamanager.php index 23140ee3cc2bcc487261ff813f4d951e3b13e7d3..b381fabf69272a7752691ab2407f7565b7eea44a 100644 --- a/lib/exe/mediamanager.php +++ b/lib/exe/mediamanager.php @@ -1,4 +1,4 @@ -<? +<?php if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../../').'/'); define('DOKU_MEDIAMANAGER',1); require_once(DOKU_INC.'inc/init.php'); diff --git a/lib/images/magnifier.png b/lib/images/magnifier.png new file mode 100644 index 0000000000000000000000000000000000000000..cf3d97f75e9cde9c143980d89272fe61fc2d64ee Binary files /dev/null and b/lib/images/magnifier.png differ diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 876b84f9f3dcdb83585893e975d89dedfbf06de7..da030be28dad40d21d417a3947edf99d8bdc93e0 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -73,7 +73,8 @@ media = { kobox.type = 'checkbox'; kobox.id = 'media__keepopen'; if(DokuCookie.getValue('keepopen')){ - kobox.checked = true; + kobox.checked = true; + media.keepopen = true; } addEvent(kobox,'change',function(event){ return media.togglekeepopen(event,this); }); @@ -94,6 +95,7 @@ media = { hdbox.id = 'media__hide'; if(DokuCookie.getValue('hide')){ hdbox.checked = true; + media.hide = true; } addEvent(hdbox,'change',function(event){ return media.togglehide(event,this); }); diff --git a/lib/tpl/default/media.css b/lib/tpl/default/media.css index 805abc467c470181253dd00134e6feb457728919..4606cae45d7c160b1d74b6a4fe9dd5c86a21894b 100644 --- a/lib/tpl/default/media.css +++ b/lib/tpl/default/media.css @@ -4,7 +4,7 @@ #media__manager { height: 100%; - overflow: hide; + overflow: hidden; } #media__left { @@ -18,7 +18,7 @@ } #media__right { - width: 69.9%; + width: 69.8%; height: 100%; overflow: auto; @@ -26,6 +26,14 @@ right: 0; } +#media__manager h1 { + margin: 0; + padding: 0; + margin-bottom: 0.5em; +} + +/* --- Tree formatting --- */ + #media__tree img { float:left; padding: 0.5em 0.3em 0 0; @@ -42,6 +50,28 @@ list-style-image: none; } +/* --- options --- */ + +#media__opts { + padding-left: 1em; + margin-bottom: 0.5em; +} + +#media__opts input { + float: left; + position: absolute; +} + +#media__opts label { + display: block; + float: left; + margin-left: 30px; +} + +#media__opts br { + clear: left; +} + /* --- file list --- */ #media__content img.load { @@ -89,6 +119,11 @@ /* --- upload form --- */ +#media__content div.upload { + font-size: 80%; + padding: 0.5em 0 0.5em 0.5em; +} + #media__content form.upload { display: block; border-bottom: solid 1px __dark__; @@ -104,20 +139,24 @@ #media__content form.meta label { display: block; - width: 20%; + width: 25%; float: left; - text-align: right; font-weight: bold; - padding-right: 1em; + margin-left: 1em; + clear: left; } #media__content form.meta .edit { + font: 100% "Lucida Grande", Verdana, Lucida, Helvetica, Arial, sans-serif; float: left; - width: 75%; + width: 70%; + padding-right: 0; + padding-left: 0.2em; + margin: 2px; } #media__content form.meta textarea.edit { - height: 6em; + height: 8em; } #media__content form.meta div.metafield { diff --git a/lib/tpl/default/mediamanager.php b/lib/tpl/default/mediamanager.php index 0ae4f7c66b751cec07f41b9e4979f1f16dcb8ff8..2b032ac46a0dade609a8785a9d1622d4d41370bf 100644 --- a/lib/tpl/default/mediamanager.php +++ b/lib/tpl/default/mediamanager.php @@ -27,10 +27,10 @@ <?html_msgarea()?> <h1><?php echo hsc($lang['mediaselect'])?></h1> - <?php tpl_mediaTree() ?> - <?php /* keep the id! additional elements are inserted via JS here */?> <div id="media__opts"></div> + + <?php tpl_mediaTree() ?> </div> <div id="media__right">