Add upload button to imageselector

This commit is contained in:
onli 2014-01-23 23:13:09 +01:00
parent 580de6574e
commit 3873826036
8 changed files with 65 additions and 48 deletions

View File

@ -347,8 +347,9 @@ switch ($serendipity['GET']['adminAction']) {
foreach($new_media AS $nm) {
serendipity_insertMediaProperty('base_hidden', '', $nm['image_id'], $hidden);
}
$data['showML_add'] = showMediaLibrary($messages, true);
$data['showML_add'] = showMediaLibrary(null, true);
}
$data['messages'] = $messages;
break;
@ -538,7 +539,6 @@ switch ($serendipity['GET']['adminAction']) {
'write'
);
usort($folders, 'serendipity_sortPath');
$data['case_addSelect'] = true;
$form_hidden = '';
if (isset($image_selector_addvars) && is_array($image_selector_addvars)) {
@ -556,11 +556,12 @@ switch ($serendipity['GET']['adminAction']) {
'max_file_size' => $serendipity['maxFileSize'],
'maxImgHeight' => $serendipity['maxImgHeight'],
'maxImgWidth' => $serendipity['maxImgWidth'],
'extraParems' => serendipity_generateImageSelectorParems()
);
// ToDo later: merge $data and $media
$serendipity['smarty']->assign('media', $mediaFiles);
$serendipity['smarty']->display(serendipity_getTemplateFile('admin/media_upload.tpl', 'serendipityPath'));
break;
return;
case 'rotateCW':
$file = serendipity_fetchImageFromDatabase($serendipity['GET']['fid']);
@ -672,13 +673,6 @@ function showMediaLibrary($messages=false, $addvar_check = false, $smarty_vars =
return;
}
$output = "";
if(!empty($messages)) {
$output = '<div class="imageMessage"><ul>';
foreach($messages as $message) {
$output .= '<li>'. $message .'</li>';
}
$output .= '</ul></div>';
}
// After upload, do not show the list to be able to proceed to
// media selection.
@ -694,13 +688,15 @@ function showMediaLibrary($messages=false, $addvar_check = false, $smarty_vars =
'htmltarget' => isset($serendipity['GET']['htmltarget']) ? $serendipity['GET']['htmltarget'] : '',
'filename_only' => isset($serendipity['GET']['filename_only']) ? $serendipity['GET']['filename_only'] : false,
);
$show_upload = isset($serendipity['GET']['showUpload']) ? $serendipity['GET']['showUpload'] : false;
$output .= serendipity_displayImageList(
isset($serendipity['GET']['page']) ? $serendipity['GET']['page'] : 1,
$serendipity['thumbPerPage'],
isset($serendipity['GET']['showMediaToolbar']) ? serendipity_db_bool($serendipity['GET']['showMediaToolbar']) : true,
NULL,
false,
$show_upload,
NULL,
$smarty_vars
);

View File

@ -1443,28 +1443,7 @@ function serendipity_displayImageList($page = 0, $lineBreak = NULL, $manage = fa
global $serendipity;
static $debug = false;
$sortParams = array('perpage', 'order', 'ordermode');
$importParams = array('adminModule', 'htmltarget', 'filename_only', 'textarea', 'subpage', 'keywords');
$extraParems = '';
$filterParams = array('only_path', 'only_filename');
foreach($importParams AS $importParam) {
if (isset($serendipity['GET'][$importParam])) {
$extraParems .= 'serendipity[' . $importParam . ']='. htmlspecialchars($serendipity['GET'][$importParam]) .'&amp;';
}
}
foreach($sortParams AS $sortParam) {
serendipity_restoreVar($serendipity['COOKIE']['sortorder_' . $sortParam], $serendipity['GET']['sortorder'][$sortParam]);
$extraParems .= 'serendipity[sortorder]['. $sortParam .']='. htmlspecialchars($serendipity['GET']['sortorder'][$sortParam]) .'&amp;';
}
foreach($filterParams AS $filterParam) {
serendipity_restoreVar($serendipity['COOKIE'][$filterParam], $serendipity['GET'][$filterParam]);
if (!empty($serendipity['GET'][$filterParam])) {
$extraParems .= 'serendipity[' . $filterParam . ']='. htmlspecialchars($serendipity['GET'][$filterParam]) .'&amp;';
}
}
$extraParems = serendipity_generateImageSelectorParems();
$serendipity['GET']['only_path'] = serendipity_uploadSecure($limit_path . $serendipity['GET']['only_path'], true);
$serendipity['GET']['only_filename'] = htmlspecialchars(str_replace(array('*', '?'), array('%', '_'), $serendipity['GET']['only_filename']));
@ -1658,7 +1637,7 @@ function serendipity_displayImageList($page = 0, $lineBreak = NULL, $manage = fa
'linkNext' => $linkNext,
'linkPrevious' => $linkPrevious,
'extraParems' => $extraParems,
'totalImages' => $totalImages,
'totalImages' => $totalImages
));
return serendipity_showMedia(
$serendipity['imageList'],
@ -1671,6 +1650,39 @@ function serendipity_displayImageList($page = 0, $lineBreak = NULL, $manage = fa
);
} // End serendipity_displayImageList()
/**
* Generate the url-parameters needed when generating the ML to select an image to add to the editor, to store the relevant options (like which textare to add it to)
*
* */
function serendipity_generateImageSelectorParems() {
global $serendipity;
$sortParams = array('perpage', 'order', 'ordermode');
$importParams = array('adminModule', 'htmltarget', 'filename_only', 'textarea', 'subpage', 'keywords', 'noBanner', 'noSidebar', 'noFooter', 'showUpload');
$extraParems = '';
$filterParams = array('only_path', 'only_filename');
foreach($importParams AS $importParam) {
if (isset($serendipity['GET'][$importParam])) {
$extraParems .= 'serendipity[' . $importParam . ']='. htmlspecialchars($serendipity['GET'][$importParam]) .'&amp;';
}
}
foreach($sortParams AS $sortParam) {
serendipity_restoreVar($serendipity['COOKIE']['sortorder_' . $sortParam], $serendipity['GET']['sortorder'][$sortParam]);
$extraParems .= 'serendipity[sortorder]['. $sortParam .']='. htmlspecialchars($serendipity['GET']['sortorder'][$sortParam]) .'&amp;';
}
foreach($filterParams AS $filterParam) {
serendipity_restoreVar($serendipity['COOKIE'][$filterParam], $serendipity['GET'][$filterParam]);
if (!empty($serendipity['GET'][$filterParam]) && $serendipity['GET'][$filterParam] != "undefined") {
$extraParems .= 'serendipity[' . $filterParam . ']='. htmlspecialchars($serendipity['GET'][$filterParam]) .'&amp;';
}
}
return $extraParems;
}
/**
* Check if a media item is an image
*

View File

@ -1,3 +1,7 @@
{foreach $messages as $message}
<span class="msg_notice"><span class="icon-info-circled"></span> {$message}</span>
{/foreach}
{if $case_doSync}
{if !$perm_adminImagesSync}
<span class="msg_error"><span class="icon-attention-circled"></span> {$CONST.PERM_DENIED}</span>

View File

@ -1,5 +1,5 @@
{foreach from=$media.files item="file" name="mediafiles" key="mediakey"}
{if NOT $media.manage}
{if $smarty.get.serendipity.showUpload}
{* ML got called for inserting media *}
<article class="media_wrap_thumb {cycle values="odd,even"}">
<div class="media_file_thumb{if $media.enclose} equal_heights{/if}">

View File

@ -151,13 +151,16 @@
{if $media.nr_files < 1}
<span class="msg_notice"><span class="icon-info-circled"></span> {$CONST.NO_IMAGES_FOUND}</span>
{else}
{if $smarty.get.serendipity.adminModule == 'media'}
<form id="formMultiDelete" name="formMultiDelete" action="?" method="post">
{$media.token}
<input name="serendipity[action]" type="hidden" value="admin">
<input name="serendipity[adminModule]" type="hidden" value="media">
<input name="serendipity[adminAction]" type="hidden" value="multidelete">
{if $smarty.get.serendipity.showUpload}
<a class="button_link" href="?serendipity[adminModule]=media&serendipity[adminAction]=addSelect&{$media.extraParems}">{$CONST.ADD_MEDIA}</a>
{else}
<form id="formMultiDelete" name="formMultiDelete" action="?" method="post">
{$media.token}
<input name="serendipity[action]" type="hidden" value="admin">
<input name="serendipity[adminModule]" type="hidden" value="media">
<input name="serendipity[adminAction]" type="hidden" value="multidelete">
{/if}
<div class="clearfix media_pane" data-thumbmaxwidth="{$media.thumbSize}">
{$MEDIA_ITEMS}
{if ($media.page != 1 && $media.page <= $media.pages)||$media.page != $media.pages}
@ -171,7 +174,7 @@
</nav>
{/if}
</div>
{if $smarty.get.serendipity.adminModule == 'media'}
{if NOT $smarty.get.serendipity.showUpload}
{if $media.manage}
<div class="form_buttons">
<input class="invert_selection" name="toggle" type="button" value="{$CONST.INVERT_SELECTIONS}">

View File

@ -1,12 +1,12 @@
<h2>{$CONST.ADD_MEDIA}</h2>
<form id="uploadform" action="?" method="POST" enctype="multipart/form-data">
<form id="uploadform" action="?{$media.extraParems}" method="POST" enctype="multipart/form-data">
{if $media.max_file_size}
<input name="MAX_FILE_SIZE" type="hidden" value="{$max_file_size}">
{/if}
{$media.token}
<input name="serendipity[action]" type="hidden" value="admin">
<input name="serendipity[adminModule]" type="hidden" value="images">
<input name="serendipity[adminModule]" type="hidden" value="media">
<input name="serendipity[adminAction]" type="hidden" value="add">
{$media.form_hidden}
@ -70,7 +70,9 @@
<input id="all_authors" name="serendipity[all_authors]" type="hidden" value="true" checked="checked">
<input class="check_inputs" type="submit" value="{$CONST.GO}">
<input class="check_inputs" name="go_properties" type="submit" value="{$CONST.GO_ADD_PROPERTIES|@escape}">
{if NOT $smarty.get.serendipity.showUpload}
<input class="check_inputs" name="go_properties" type="submit" value="{$CONST.GO_ADD_PROPERTIES|@escape}">
{/if}
</div>
</form>
<script src="{serendipity_getFile file='admin/js/jquery.tabs.js'}"></script>

View File

@ -799,7 +799,7 @@ var AccessifyHTML5 = function (defaults, more_fixes) {
});
$('.wrap_insmedia').click(function() {
serendipity.openPopup('serendipity_admin.php?serendipity[adminModule]=media&serendipity[noBanner]=true&serendipity[noSidebar]=true&serendipity[noFooter]=true&serendipity[showMediaToolbar]=false&serendipity[textarea]=' + $(this).attr('data-tarea'));
serendipity.openPopup('serendipity_admin.php?serendipity[adminModule]=media&serendipity[noBanner]=true&serendipity[noSidebar]=true&serendipity[noFooter]=true&serendipity[showMediaToolbar]=false&serendipity[showUpload]=true&serendipity[textarea]=' + $(this).attr('data-tarea'));
});
// Advanced options

View File

@ -7,7 +7,7 @@
init: function( editor ) {
editor.addCommand( 'openML', {
exec : function( editor ) {
serendipity.openPopup('serendipity_admin.php?serendipity[adminModule]=media&serendipity[noBanner]=true&serendipity[noSidebar]=true&serendipity[noFooter]=true&serendipity[showMediaToolbar]=false&serendipity[textarea]={$item}');
serendipity.openPopup('serendipity_admin.php?serendipity[adminModule]=media&serendipity[noBanner]=true&serendipity[noSidebar]=true&serendipity[noFooter]=true&serendipity[showMediaToolbar]=false&serendipity[showUpload]=true&serendipity[textarea]={$item}');
}
});
editor.ui.addButton('s9y_medialibrary{$item}', {