summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--inc/actions.php2
-rw-r--r--inc/media.php401
-rw-r--r--inc/template.php89
-rw-r--r--lib/exe/mediamanager.php14
-rw-r--r--lib/tpl/default/style.ini1
5 files changed, 470 insertions, 37 deletions
diff --git a/inc/actions.php b/inc/actions.php
index ecf09036f..1a0ae4028 100644
--- a/inc/actions.php
+++ b/inc/actions.php
@@ -227,7 +227,7 @@ function act_clean($act){
'preview','search','show','check','index','revisions',
'diff','recent','backlink','admin','subscribe','revert',
'unsubscribe','profile','resendpwd','recover',
- 'draftdel','subscribens','unsubscribens','sitemap')) && substr($act,0,7) != 'export_' ) {
+ 'draftdel','subscribens','unsubscribens','sitemap','media')) && substr($act,0,7) != 'export_' ) {
msg('Command unknown: '.htmlspecialchars($act),-1);
return 'show';
}
diff --git a/inc/media.php b/inc/media.php
index be55f8044..d98e225b9 100644
--- a/inc/media.php
+++ b/inc/media.php
@@ -74,8 +74,9 @@ function media_metasave($id,$auth,$data){
* Display the form to edit image meta data
*
* @author Andreas Gohr <andi@splitbrain.org>
+ * @author Kate Arzamastseva <pshns@ukr.net>
*/
-function media_metaform($id,$auth){
+function media_metaform($id,$auth,$fullscreen = false){
if($auth < AUTH_UPLOAD) return false;
global $lang, $config_cascade;
@@ -96,8 +97,13 @@ function media_metaform($id,$auth){
$src = mediaFN($id);
// output
- echo '<h1>'.hsc(noNS($id)).'</h1>'.NL;
- echo '<form action="'.DOKU_BASE.'lib/exe/mediamanager.php" accept-charset="utf-8" method="post" class="meta">'.NL;
+ if (!$fullscreen) {
+ echo '<h1>'.hsc(noNS($id)).'</h1>'.NL;
+ echo '<form action="'.DOKU_BASE.'lib/exe/mediamanager.php" accept-charset="utf-8" method="post" class="meta">'.NL;
+ } else {
+ echo '<form action="'.media_managerURL(array('tab_details' => 'view')).
+ '" accept-charset="utf-8" method="post" class="meta">'.NL;
+ }
formSecurityToken();
foreach($fields as $key => $field){
// get current value
@@ -132,8 +138,11 @@ function media_metaform($id,$auth){
}
echo '<div class="buttons">'.NL;
echo '<input type="hidden" name="img" value="'.hsc($id).'" />'.NL;
- echo '<input name="do[save]" type="submit" value="'.$lang['btn_save'].
+ if (!$fullscreen) $do = 'do';
+ else $do = 'mediado';
+ echo '<input name="'.$do.'[save]" type="submit" value="'.$lang['btn_save'].
'" title="'.$lang['btn_save'].' [S]" accesskey="s" class="button" />'.NL;
+ if (!$fullscreen)
echo '<input name="do[cancel]" type="submit" value="'.$lang['btn_cancel'].
'" title="'.$lang['btn_cancel'].' [C]" accesskey="c" class="button" />'.NL;
echo '</div>'.NL;
@@ -476,7 +485,7 @@ function media_notify($id,$file,$mime){
/**
* List all files in a given Media namespace
*/
-function media_filelist($ns,$auth=null,$jump=''){
+function media_filelist($ns,$auth=null,$jump='',$fullscreenview=false){
global $conf;
global $lang;
$ns = cleanID($ns);
@@ -484,13 +493,13 @@ function media_filelist($ns,$auth=null,$jump=''){
// check auth our self if not given (needed for ajax calls)
if(is_null($auth)) $auth = auth_quickaclcheck("$ns:*");
- echo '<h1 id="media__ns">:'.hsc($ns).'</h1>'.NL;
+ if (!$fullscreenview) echo '<h1 id="media__ns">:'.hsc($ns).'</h1>'.NL;
if($auth < AUTH_READ){
// FIXME: print permission warning here instead?
echo '<div class="nothing">'.$lang['nothingfound'].'</div>'.NL;
}else{
- media_uploadform($ns, $auth);
+ if (!$fullscreenview) media_uploadform($ns, $auth);
$dir = utf8_encodeFN(str_replace(':','/',$ns));
$data = array();
@@ -500,10 +509,248 @@ function media_filelist($ns,$auth=null,$jump=''){
if(!count($data)){
echo '<div class="nothing">'.$lang['nothingfound'].'</div>'.NL;
}else foreach($data as $item){
- media_printfile($item,$auth,$jump);
+ if (!$fullscreenview) media_printfile($item,$auth,$jump);
+ else if ($fullscreenview == 'thumbs') media_printfile_thumbs($item,$auth,$jump);
+ }
+ }
+ if (!$fullscreenview) media_searchform($ns);
+}
+
+/**
+ * Prints tabs for files list actions
+ *
+ * @author Kate Arzamastseva <pshns@ukr.net>
+ * @param string $selected - opened tab
+ */
+function media_tabs_files($selected=false){
+ global $lang;
+
+ echo '<div class="mediamanager-tabs" id="id-mediamanager-tabs">';
+ $tab = '<a href="'.media_managerURL(array('tab_files' => 'files')).
+ '" rel=".mediamanager-tab-files"';
+ if (!empty($selected) && $selected == 'files') $class = 'files selected';
+ else $class = 'files';
+ $tab .= ' class="'.$class.'" >Files</a>';
+ echo $tab;
+
+ $tab = '<a href="'.media_managerURL(array('tab_files' => 'upload')).
+ '" rel=".mediamanager-tab-upload"';
+ if (!empty($selected) && $selected == 'upload') $class = 'upload selected';
+ else $class = 'upload';
+ $tab .= ' class="'.$class.'" >Upload</a>';
+ echo $tab;
+
+ $tab = '<a href="'.media_managerURL(array('tab_files' => 'search')).
+ '" rel=".mediamanager-tab-search"';
+ if (!empty($selected) && $selected == 'search') $class = 'search selected';
+ else $class = 'search';
+ $tab .= ' class="'.$class.'" >Search</a>';
+ echo $tab;
+
+ echo '<div class="mediamanager-clear">&nbsp;</div>';
+ echo '</div>';
+}
+
+/**
+ * Prints tabs for files details actions
+ *
+ * @author Kate Arzamastseva <pshns@ukr.net>
+ * @param string $selected - opened tab
+ */
+function media_tabs_details($selected=false){
+ global $lang;
+
+ echo '<div class="mediamanager-tabs" id="id-mediamanager-tabs-detail">';
+ $tab = '<a href="'.media_managerURL(array('tab_details' => 'view')).
+ '" rel=".mediamanager-tab-view"';
+ if (!empty($selected) && $selected == 'view') $class = 'view selected';
+ else $class = 'view';
+ $tab .= ' class="'.$class.'" >View</a>';
+ echo $tab;
+
+ $tab = '<a href="'.media_managerURL(array('tab_details' => 'edit')).
+ '" rel=".mediamanager-tab-edit"';
+ if (!empty($selected) && $selected == 'edit') $class = 'edit selected';
+ else $class = 'edit';
+ $tab .= ' class="'.$class.'" >Edit</a>';
+ echo $tab;
+
+ $tab = '<a href="'.media_managerURL(array('tab_details' => 'history')).
+ '" rel=".mediamanager-tab-history"';
+ if (!empty($selected) && $selected == 'history') $class = 'history selected';
+ else $class = 'history';
+ $tab .= ' class="'.$class.'" >History</a>';
+ echo $tab;
+
+ echo '<div class="mediamanager-clear">&nbsp;</div>';
+ echo '</div>';
+}
+
+/**
+ * Prints options for the tab that displays a list of all files
+ *
+ * @author Kate Arzamastseva <pshns@ukr.net>
+ */
+function media_tab_files_options(){
+ global $lang;
+
+ echo '<div class="background-container">';
+ echo '<div id="id-mediamanager-tabs-files" style="display: inline;">';
+ echo '<a href="'.media_managerURL(array('view' => 'thumbs')).'"
+ rel=".mediamanager-files-thumbnails-tab" class="mediamanager-link-thumbnails">
+ Thumbs</a>';
+ echo '<a href="'.media_managerURL(array('view' => 'list')).'"
+ rel=".mediamanager-files-list-tab" class="mediamanager-link-list"
+ title="View as list">List</a>';
+
+ echo '</div>';
+ echo '<div class="mediamanager-block-sort">Sort';
+ //select
+ echo '</div>';
+ echo '<div class="mediamanager-clear">&nbsp;</div>';
+ echo '</div>';
+}
+
+/**
+ * Prints tab that displays a list of all files
+ *
+ * @author Kate Arzamastseva <pshns@ukr.net>
+ */
+function media_tab_files($ns,$auth=null,$jump='') {
+ global $lang;
+ if(is_null($auth)) $auth = auth_quickaclcheck("$ns:*");
+
+ echo '<div class="mediamanager-tab-files">';
+ media_tab_files_options();
+ echo '<div class="scroll-container">';
+
+ $view = $_REQUEST['view'];
+ if($auth < AUTH_READ){
+ echo '<div class="nothing">'.$lang['nothingfound'].'</div>'.NL;
+ }else{
+ if ($view == 'list') {
+ echo '<div class="mediamanager-files-list-tab">';
+ echo '</div>';
+ } else {
+ echo '<div class="mediamanager-files-thumbnails-tab">';
+ media_filelist($ns,$auth,$jump,'thumbs');
+ echo '</div>';
}
}
- media_searchform($ns);
+ echo '</div>';
+ echo '</div>';
+}
+
+/**
+ * Prints tab that displays uploading form
+ *
+ * @author Kate Arzamastseva <pshns@ukr.net>
+ */
+function media_tab_upload($ns,$auth=null,$jump='') {
+ global $lang;
+ if(is_null($auth)) $auth = auth_quickaclcheck("$ns:*");
+
+ echo '<div class="mediamanager-tab-upload"">';
+ echo '<div class="background-container">';
+ echo $lang['mediaupload'];
+ echo '</div>';
+
+ echo '<div class="scroll-container">';
+ media_uploadform($ns, $auth, true);
+ echo '</div>';
+ echo '</div>';
+}
+
+/**
+ * Prints tab that displays search form
+ *
+ * @author Kate Arzamastseva <pshns@ukr.net>
+ */
+function media_tab_search($ns,$auth=null) {
+ global $lang;
+
+ $do = $_REQUEST['mediado'];
+ $query = $_REQUEST['q'];
+ if (!$query) $query = '';
+
+ echo '<div class="mediamanager-tab-search">';
+ echo '<div class="background-container">';
+ echo 'Search';
+ echo'</div>';
+
+ echo '<div class="scroll-container">';
+ media_searchform($ns, $query, true);
+
+ if($do == 'searchlist'){
+ media_searchlist($query,$ns,$auth,true);
+ }
+ echo '</div>';
+ echo '</div>';
+}
+
+/**
+ * Prints tab that displays mediafile details
+ *
+ * @author Kate Arzamastseva <pshns@ukr.net>
+ */
+function media_tab_view($image, $ns, $auth=null) {
+ global $lang, $conf;
+ if(is_null($auth)) $auth = auth_quickaclcheck("$ns:*");
+
+ echo '<div class="mediamanager-tab-detail-view">';
+ echo '<div class="background-container">';
+ echo 'Preview of image';
+ echo '</div>';
+
+ echo '<div class="scroll-container">';
+ if($auth < AUTH_READ) return false;
+
+ $info = new JpegMeta(mediaFN($image));
+ $w = (int) $info->getField('File.Width');
+ $src = ml($image);
+ echo '<img src="'.$src.'" alt="" width="99%" style="max-width: '.$w.'px;" />';
+ echo '</div>';
+ echo '</div>';
+}
+
+/**
+ * Prints tab that displays form for editing mediafile metadata
+ *
+ * @author Kate Arzamastseva <pshns@ukr.net>
+ */
+function media_tab_edit($image, $ns, $auth=null) {
+ global $lang;
+ if(is_null($auth)) $auth = auth_quickaclcheck("$ns:*");
+
+ echo '<div class="mediamanager-tab-detail-edit">';
+ echo '<div class="background-container">';
+ echo 'Edit';
+ echo '</div>';
+
+ echo '<div class="scroll-container">';
+ media_metaform($image,$auth,true);
+ echo '</div>';
+ echo '</div>';
+}
+
+/**
+ * Prints tab that displays mediafile revisions
+ *
+ * @author Kate Arzamastseva <pshns@ukr.net>
+ */
+function media_tab_history($image, $ns, $auth=null) {
+ global $lang;
+ if(is_null($auth)) $auth = auth_quickaclcheck("$ns:*");
+
+ echo '<div class="mediamanager-tab-detail-history">';
+ echo '<div class="background-container">';
+ echo 'History';
+ echo '</div>';
+
+ echo '<div class="scroll-container">';
+
+ echo '</div>';
+ echo '</div>';
}
/**
@@ -511,9 +758,10 @@ function media_filelist($ns,$auth=null,$jump=''){
*
* @author Tobias Sarnowski <sarnowski@cosmocode.de>
* @author Andreas Gohr <gohr@cosmocode.de>
+ * @author Kate Arzamastseva <pshns@ukr.net>
* @triggers MEDIA_SEARCH
*/
-function media_searchlist($query,$ns,$auth=null){
+function media_searchlist($query,$ns,$auth=null,$fullscreen=false){
global $conf;
global $lang;
$ns = cleanID($ns);
@@ -538,13 +786,16 @@ function media_searchlist($query,$ns,$auth=null){
unset($evt);
}
- echo '<h1 id="media__ns">'.sprintf($lang['searchmedia_in'],hsc($ns).':*').'</h1>'.NL;
- media_searchform($ns,$query);
+ if (!$fullscreen) {
+ echo '<h1 id="media__ns">'.sprintf($lang['searchmedia_in'],hsc($ns).':*').'</h1>'.NL;
+ media_searchform($ns,$query);
+ }
if(!count($evdata['data'])){
echo '<div class="nothing">'.$lang['nothingfound'].'</div>'.NL;
}else foreach($evdata['data'] as $item){
- media_printfile($item,$item['perm'],'',true);
+ if (!$fullscreen) media_printfile($item,$item['perm'],'',true);
+ else media_printfile_thumbs($item,$item['perm'],'',true);
}
}
@@ -552,7 +803,7 @@ function media_searchlist($query,$ns,$auth=null){
* Print action links for a file depending on filetype
* and available permissions
*/
-function media_fileactions($item,$auth){
+function media_fileactions($item,$auth,$fullscreen=false){
global $lang;
// view button
@@ -565,15 +816,20 @@ function media_fileactions($item,$auth){
// delete button
if($auth >= AUTH_DELETE){
- echo ' <a href="'.DOKU_BASE.'lib/exe/mediamanager.php?delete='.rawurlencode($item['id']).
- '&amp;sectok='.getSecurityToken().'" class="btn_media_delete" title="'.$item['id'].'">'.
+ if (!$fullscreen) $link = DOKU_BASE.'lib/exe/mediamanager.php?delete='.rawurlencode($item['id']).
+ '&amp;sectok='.getSecurityToken();
+ else $link = media_managerURL(array('delete' => $item['id'],
+ 'sectok' => getSecurityToken()));
+ echo ' <a href="'.$link.'" class="btn_media_delete" title="'.$item['id'].'">'.
'<img src="'.DOKU_BASE.'lib/images/trash.png" alt="'.$lang['btn_delete'].'" '.
'title="'.$lang['btn_delete'].'" class="btn" /></a>';
}
// edit button
if($auth >= AUTH_UPLOAD && $item['isimg'] && $item['meta']->getField('File.Mime') == 'image/jpeg'){
- echo ' <a href="'.DOKU_BASE.'lib/exe/mediamanager.php?edit='.rawurlencode($item['id']).'">'.
+ if (!$fullscreen) $link = DOKU_BASE.'lib/exe/mediamanager.php?edit='.rawurlencode($item['id']);
+ else $link = media_managerURL(array('edit' => $item['id']));
+ echo ' <a href="'.$link.'">'.
'<img src="'.DOKU_BASE.'lib/images/pencil.png" alt="'.$lang['metaedit'].'" '.
'title="'.$lang['metaedit'].'" class="btn" /></a>';
}
@@ -638,14 +894,49 @@ function media_printfile($item,$auth,$jump,$display_namespace=false){
}
/**
+ * Formats and prints one file in the list in the thumbnails view
+ *
+ * @author Kate Arzamastseva <pshns@ukr.net>
+ */
+function media_printfile_thumbs($item,$auth,$jump){
+ global $lang;
+ global $conf;
+
+ // Prepare filename
+ $file = utf8_decodeFN($item['file']);
+
+ // Prepare info
+ $info = '';
+ if($item['isimg']){
+ $info .= (int) $item['meta']->getField('File.Width');
+ $info .= '&#215;';
+ $info .= (int) $item['meta']->getField('File.Height');
+ $info .= '<br/>';
+ }
+ $info .= '<i>'.dformat($item['mtime']).'</i><br/>';
+ $info .= filesize_h($item['size']);
+
+ // output
+ echo '<div class="float-image" >';
+ if($item['isimg']) media_printimgdetail($item, true);
+ echo '<br/><a href="'.media_managerURL(array('image' => hsc($item['id']))).'" name=
+ "h_:'.$item['id'].'" >'.hsc($file).'</a><br/>';
+ echo '<span>'.$info.'</span><br/>';
+ media_fileactions($item,$auth,true);
+ echo '</div>'.NL;
+}
+
+/**
* Prints a thumbnail and metainfos
*/
-function media_printimgdetail($item){
+function media_printimgdetail($item, $fullscreen=false){
// prepare thumbnail
+ if (!$fullscreen) $size = 120;
+ else $size = 90;
$w = (int) $item['meta']->getField('File.Width');
$h = (int) $item['meta']->getField('File.Height');
- if($w>120 || $h>120){
- $ratio = $item['meta']->getResizeRatio(120);
+ if($w>$size || $h>$size){
+ $ratio = $item['meta']->getResizeRatio($size);
$w = floor($w * $ratio);
$h = floor($h * $ratio);
}
@@ -658,6 +949,13 @@ function media_printimgdetail($item){
$att = buildAttributes($p);
// output
+ if ($fullscreen) {
+ echo '<a name="d_:'.$item['id'].'" >';
+ echo '<img src="'.$src.'" '.$att.' />';
+ echo '</a>';
+ return 1;
+ }
+
echo '<div class="detail">';
echo '<div class="thumb">';
echo '<a name="d_:'.$item['id'].'" class="select">';
@@ -685,20 +983,58 @@ function media_printimgdetail($item){
}
/**
+ * Build link based on the current, adding/rewriting
+ * parameters
+ *
+ * @author Kate Arzamastseva <pshns@ukr.net>
+ * @param array $params
+ * @param string $amp - separator
+ * @return string - link
+ */
+function media_managerURL($params=false, $amp='&') {
+ global $conf;
+ global $ID;
+
+ $url = $_SERVER['REQUEST_URI'];
+
+ $urlArray = explode('?', $url, 2);
+ $gets = @$urlArray[1];
+ parse_str($gets, $gets);
+
+ if ($gets['edit']) $gets['image'] = $gets['edit'];
+ unset($gets['edit']);
+ unset($gets['sectok']);
+ unset($gets['delete']);
+
+ if ($params) {
+ foreach ($params as $k => $v) {
+ $gets[$k] = $v;
+ }
+ }
+ unset($gets['id']);
+
+ return wl($ID,$gets,false,$amp);
+}
+
+/**
* Print the media upload form if permissions are correct
*
* @author Andreas Gohr <andi@splitbrain.org>
+ * @author Kate Arzamastseva <pshns@ukr.net>
*/
-function media_uploadform($ns, $auth){
+function media_uploadform($ns, $auth, $fullscreen = false){
global $lang;
if($auth < AUTH_UPLOAD) return; //fixme print info on missing permissions?
// The default HTML upload form
- $form = new Doku_Form(array('id' => 'dw__upload',
- 'action' => DOKU_BASE.'lib/exe/mediamanager.php',
- 'enctype' => 'multipart/form-data'));
- $form->addElement('<div class="upload">' . $lang['mediaupload'] . '</div>');
+ $params = array('id' => 'dw__upload',
+ 'enctype' => 'multipart/form-data');
+ if (!$fullscreen) $params['action'] = DOKU_BASE.'lib/exe/mediamanager.php';
+ else $params['action'] = media_managerURL(array('tab_files' => 'files'));
+
+ $form = new Doku_Form($params);
+ if (!$fullscreen) $form->addElement('<div class="upload">' . $lang['mediaupload'] . '</div>');
$form->addElement(formSecurityToken());
$form->addHidden('ns', hsc($ns));
$form->addElement(form_makeOpenTag('p'));
@@ -757,16 +1093,21 @@ function media_uploadform($ns, $auth){
* Print the search field form
*
* @author Tobias Sarnowski <sarnowski@cosmocode.de>
+ * @author Kate Arzamastseva <pshns@ukr.net>
*/
-function media_searchform($ns,$query=''){
+function media_searchform($ns,$query='',$fullscreen=false){
global $lang;
// The default HTML search form
- $form = new Doku_Form(array('id' => 'dw__mediasearch', 'action' => DOKU_BASE.'lib/exe/mediamanager.php'));
- $form->addElement('<div class="upload">' . $lang['mediasearch'] . '</div>');
+ $params = array('id' => 'dw__mediasearch');
+ if (!$fullscreen) $params['action'] = DOKU_BASE.'lib/exe/mediamanager.php';
+ else $params['action'] = media_managerURL();
+ $form = new Doku_Form($params);
+ if (!$fullscreen) $form->addElement('<div class="upload">' . $lang['mediasearch'] . '</div>');
$form->addElement(formSecurityToken());
$form->addHidden('ns', $ns);
- $form->addHidden('do', 'searchlist');
+ if (!$fullscreen) $form->addHidden('do', 'searchlist');
+ else $form->addHidden('mediado', 'searchlist');
$form->addElement(form_makeOpenTag('p'));
$form->addElement(form_makeTextField('q', $query,$lang['searchmedia'],'','',array('title'=>sprintf($lang['searchmedia_in'],hsc($ns).':*'))));
$form->addElement(form_makeButton('submit', '', $lang['btn_search']));
@@ -820,7 +1161,9 @@ function media_nstree_item($item){
if(!$item['label']) $item['label'] = $label;
$ret = '';
+ if (!($_REQUEST['do'] == 'media'))
$ret .= '<a href="'.DOKU_BASE.'lib/exe/mediamanager.php?ns='.idfilter($item['id']).'" class="idx_dir">';
+ else $ret .= '<a href="'.media_managerURL(array('ns' => idfilter($item['id']))).'" class="idx_dir">';
$ret .= $item['label'];
$ret .= '</a>';
return $ret;
diff --git a/inc/template.php b/inc/template.php
index d2d66220c..4bbb501fc 100644
--- a/inc/template.php
+++ b/inc/template.php
@@ -123,6 +123,9 @@ function tpl_content_core(){
case 'subscribe':
tpl_subscribe();
break;
+ case 'media':
+ tpl_media();
+ break;
default:
$evt = new Doku_Event('TPL_ACT_UNKNOWN',$ACT);
if ($evt->advise_before())
@@ -1124,16 +1127,66 @@ function tpl_mediaContent($fromajax=false){
}
/**
+ * Prints the central column in full-screen media manager
+ * Depending on the opened tab this may be a list of
+ * files in a namespace, upload form or search form
+ *
+ * @author Kate Arzamastseva <pshns@ukr.net>
+ */
+function tpl_fileList(){
+ global $AUTH;
+ global $NS;
+ global $JUMPTO;
+
+ $opened_tab = $_REQUEST['tab_files'];
+ if (!$opened_tab) $opened_tab = 'files';
+
+ media_tabs_files($opened_tab);
+ if ($opened_tab == 'files') media_tab_files($NS,$AUTH,$JUMPTO);
+ if ($opened_tab == 'upload') media_tab_upload($NS,$AUTH,$JUMPTO);
+ if ($opened_tab == 'search') media_tab_search($NS,$AUTH);
+
+}
+
+/**
+ * Prints the third column in full-screen media manager
+ * Depending on the opened tab this may be details of the
+ * selected file, the meta editing dialog or
+ * list of file revisions
+ *
+ * @author Kate Arzamastseva <pshns@ukr.net>
+ */
+function tpl_fileDetails(){
+ global $AUTH;
+ global $NS;
+ global $IMG;
+
+ $opened_tab = $_REQUEST['tab_details'];
+ if (!$opened_tab) $opened_tab = 'view';
+ if ($_REQUEST['edit']) $opened_tab = 'edit';
+ media_tabs_details($opened_tab);
+
+ $image = $_REQUEST['image'];
+ if (!$image && !$IMG) return false;
+ if ($opened_tab == 'view') media_tab_view($image, $NS, $AUTH);
+ if ($opened_tab == 'edit') {
+ if ($IMG) media_tab_edit($IMG, $NS, $AUTH);
+ else if ($image) media_tab_edit($image, $NS, $AUTH);
+ }
+ if ($opened_tab == 'history') media_tab_history($image,$NS,$AUTH);
+}
+
+/**
* prints the namespace tree in the mediamanger popup
*
* Only allowed in mediamanager.php
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
-function tpl_mediaTree(){
+function tpl_mediaTree($fullscreen = false){
global $NS;
-
- ptln('<div id="media__tree">');
+ if ($fullscreen) ptln('<div id="media-menu">');
+ else ptln('<div id="media__tree">');
media_nstree($NS);
ptln('</div>');
}
@@ -1359,6 +1412,36 @@ function tpl_getFavicon($abs=false) {
return DOKU_TPL.'images/favicon.ico';
}
+/**
+ * Prints full-screen media manager
+ *
+ * @author Kate Arzamastseva <pshns@ukr.net>
+ */
+function tpl_media() {
+ //
+ global $DEL, $NS, $IMG, $AUTH, $JUMPTO;
+ require_once(DOKU_INC.'lib/exe/mediamanager.php');
+
+ echo '<div class="mediamanager" id="id-mediamanager">';
+ echo '<div class="mediamanager-slider" id="id-mediamanager-layout">';
+ echo '<div id="id-mediamanager-layout-namespaces" class="layout" style="width: 25%;">';
+ html_msgarea();
+ echo hsc('Namespaces:');
+ echo '<br /><br />';
+ echo '<div class="scroll-container">';
+ tpl_mediaTree(true);
+ echo '</div>';
+ echo '</div>';
+ echo '<div id="id-mediamanager-layout-list" class="layout" style="width: 40%;">';
+ tpl_fileList();
+ echo '</div>';
+ echo '<div id="id-mediamanager-layout-detail" class="layout" style="width: 30%;">';
+ tpl_fileDetails();
+ echo '</div>';
+ echo '<div class="mediamanager-clear">&nbsp;</div>';
+ echo '</div>';
+ echo '</div>';
+}
//Setup VIM: ex: et ts=4 :
diff --git a/lib/exe/mediamanager.php b/lib/exe/mediamanager.php
index 02fde5a8d..d4ebc2d38 100644
--- a/lib/exe/mediamanager.php
+++ b/lib/exe/mediamanager.php
@@ -76,7 +76,11 @@
}
// handle meta saving
- if($IMG && $_REQUEST['do']['save']){
+ if($IMG && @array_key_exists('save', $_REQUEST['do'])){
+ $JUMPTO = media_metasave($IMG,$AUTH,$_REQUEST['meta']);
+ }
+
+ if($IMG && @array_key_exists('save', $_REQUEST['mediado'])){
$JUMPTO = media_metasave($IMG,$AUTH,$_REQUEST['meta']);
}
@@ -102,9 +106,11 @@
msg(sprintf($lang['deletefail'],noNS($DEL)),-1);
}
}
-
// finished - start output
- header('Content-Type: text/html; charset=utf-8');
- include(template('mediamanager.php'));
+
+ if (!($_REQUEST['do'] == 'media')) {
+ header('Content-Type: text/html; charset=utf-8');
+ include(template('mediamanager.php'));
+ }
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
diff --git a/lib/tpl/default/style.ini b/lib/tpl/default/style.ini
index c5b2c31a5..bc28d1bbc 100644
--- a/lib/tpl/default/style.ini
+++ b/lib/tpl/default/style.ini
@@ -15,6 +15,7 @@ _mediaoptions.css = screen
_admin.css = screen
_linkwiz.css = screen
_subscription.css = screen
+mediamanager.css = screen
rtl.css = rtl
print.css = print