AntonLV %!s(int64=10) %!d(string=hai) anos
pai
achega
1983cabe82

+ 11 - 9
install/sql/system.sql

@@ -3145,30 +3145,32 @@ INSERT INTO `sys_objects_grid` (`object`, `source_type`, `source`, `table`, `fie
 INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable`, `chars_limit`, `params`, `order`) VALUES
 -- Storages: Files
 ('sys_studio_strg_files', 'checkbox', '', '1%', 0, '', '', 1),
-('sys_studio_strg_files', 'file_name', '_adm_strg_txt_file_name', '24%', 0, '20', '', 2),
-('sys_studio_strg_files', 'path', '_adm_strg_txt_path', '40%', 0, '50', '', 3),
+('sys_studio_strg_files', 'file_name', '_adm_strg_txt_file_name', '24%', 0, '25', '', 2),
+('sys_studio_strg_files', 'path', '_adm_strg_txt_path', '25%', 0, '', '', 3),
 ('sys_studio_strg_files', 'mime_type', '_adm_strg_txt_mime_type', '15%', 0, '15', '', 4),
 ('sys_studio_strg_files', 'added', '_adm_strg_txt_added', '10%', 0, '10', '', 5),
-('sys_studio_strg_files', 'actions', '', '10%', 0, '', '', 6),
+('sys_studio_strg_files', 'actions', '', '25%', 0, '', '', 6),
 
 -- Storages: Images
 ('sys_studio_strg_images', 'checkbox', '', '1%', 0, '', '', 1),
-('sys_studio_strg_images', 'file_name', '_adm_strg_txt_file_name', '24%', 0, '20', '', 2),
-('sys_studio_strg_images', 'path', '_adm_strg_txt_path', '40%', 0, '50', '', 3),
+('sys_studio_strg_images', 'file_name', '_adm_strg_txt_file_name', '24%', 0, '25', '', 2),
+('sys_studio_strg_images', 'path', '_adm_strg_txt_path', '25%', 0, '', '', 3),
 ('sys_studio_strg_images', 'mime_type', '_adm_strg_txt_mime_type', '15%', 0, '15', '', 4),
 ('sys_studio_strg_images', 'added', '_adm_strg_txt_added', '10%', 0, '10', '', 5),
-('sys_studio_strg_images', 'actions', '', '10%', 0, '', '', 6);
+('sys_studio_strg_images', 'actions', '', '25%', 0, '', '', 6);
 
 INSERT INTO `sys_grid_actions` (`object`, `type`, `name`, `title`, `icon`, `icon_only`, `confirm`, `order`) VALUES
 -- Storages: Files
 ('sys_studio_strg_files', 'bulk', 'delete', '_adm_strg_btn_delete', '', 0, 1, 1),
-('sys_studio_strg_files', 'single', 'delete', '_adm_strg_btn_delete', 'remove', 1, 1, 1),
+('sys_studio_strg_files', 'single', 'download', '_adm_strg_btn_download', 'download', 1, 0, 1),
+('sys_studio_strg_files', 'single', 'delete', '_adm_strg_btn_delete', 'remove', 1, 1, 2),
 ('sys_studio_strg_files', 'independent', 'add', '_adm_strg_btn_add', '', 0, 0, 1),
 
 -- Storages: Images
 ('sys_studio_strg_images', 'bulk', 'delete', '_adm_strg_btn_delete', '', 0, 1, 1),
-('sys_studio_strg_images', 'single', 'resize', '_adm_strg_btn_resize', 'pencil-square-o', 1, 0, 1),
-('sys_studio_strg_images', 'single', 'delete', '_adm_strg_btn_delete', 'remove', 1, 1, 2),
+('sys_studio_strg_images', 'single', 'download', '_adm_strg_btn_download', 'download', 1, 0, 1),
+('sys_studio_strg_images', 'single', 'resize', '_adm_strg_btn_resize', 'compress', 1, 0, 2),
+('sys_studio_strg_images', 'single', 'delete', '_adm_strg_btn_delete', 'remove', 1, 1, 3),
 ('sys_studio_strg_images', 'independent', 'add', '_adm_strg_btn_add', '', 0, 0, 1);
 
 

+ 2 - 3
modules/boonex/english/data/langs/system/en.xml

@@ -1284,10 +1284,8 @@
 	<string name="_adm_str_txt_pv_version_mask"><![CDATA[{0} ({1} is available)]]></string>
 	<string name="_adm_str_txt_update_from_to"><![CDATA[{0} - {1}]]></string>
 	<string name="_adm_strg_err_cannot_process_action"><![CDATA[Cannot process action. It does not have an associated handler.]]></string>
-	<string name="_adm_strg_err_files_add"><![CDATA[Nothing to add. Please select file first.]]></string>
 	<string name="_adm_strg_err_files_delete"><![CDATA[Cannot delete file(s).]]></string>
 	<string name="_adm_strg_msg_files_delete"><![CDATA[Files were queued for deletion. They will be deleted a little bit later.]]></string>
-	<string name="_adm_strg_err_images_add"><![CDATA[Nothing to add. Please select image first.]]></string>
 	<string name="_adm_strg_err_images_delete"><![CDATA[Cannot delete image(s).]]></string>
 	<string name="_adm_strg_msg_images_delete"><![CDATA[Images were queued for deletion. They will be deleted a little bit later.]]></string>
 	<string name="_adm_strg_err_images_resize"><![CDATA[Cannot resize image.]]></string>
@@ -1298,8 +1296,9 @@
 	<string name="_adm_strg_btn_delete"><![CDATA[Delete]]></string>
 	<string name="_adm_strg_btn_add"><![CDATA[Add]]></string>
 	<string name="_adm_strg_btn_cancel"><![CDATA[Cancel]]></string>
+	<string name="_adm_strg_btn_done"><![CDATA[Done]]></string>
+	<string name="_adm_strg_btn_download"><![CDATA[Download]]></string>
 	<string name="_adm_strg_btn_resize"><![CDATA[Resize]]></string>
-	<string name="_adm_strg_txt_download"><![CDATA[View/Download file]]></string>
 	<string name="_adm_strg_txt_files_add_popup"><![CDATA[Add File]]></string>
 	<string name="_adm_strg_txt_images_add_popup"><![CDATA[Add Image]]></string>
 	<string name="_adm_strg_txt_images_resize_popup"><![CDATA[Resize Image]]></string>

+ 2 - 3
modules/boonex/russian/data/langs/system/ru.xml

@@ -1282,10 +1282,8 @@
 	<string name="_adm_str_txt_pv_version_mask"><![CDATA[{0} ({1} доступно)]]></string>
 	<string name="_adm_str_txt_update_from_to"><![CDATA[{0} - {1}]]></string>
 	<string name="_adm_strg_err_cannot_process_action"><![CDATA[Невозможно выполнить действие. Отсутствует связанный обработчик.]]></string>
-	<string name="_adm_strg_err_files_add"><![CDATA[Нечего добавлять. Пожалуйста, выберите файл.]]></string>
 	<string name="_adm_strg_err_files_delete"><![CDATA[Не возможно удалить файл(ы).]]></string>
 	<string name="_adm_strg_msg_files_delete"><![CDATA[Файлы были добавлены в очередь на удаление. Они будут удалены немного позже.]]></string>
-	<string name="_adm_strg_err_images_add"><![CDATA[Нечего добавлять. Пожалуйста, выберите изображение.]]></string>
 	<string name="_adm_strg_err_images_delete"><![CDATA[Не возможно удалить изображение(я).]]></string>
 	<string name="_adm_strg_msg_images_delete"><![CDATA[Изображение были добавлены в очередь на удаление. Они будут удалены немного позже.]]></string>
 	<string name="_adm_strg_err_images_resize"><![CDATA[Не возможно изменить размер изображения.]]></string>
@@ -1296,8 +1294,9 @@
 	<string name="_adm_strg_btn_delete"><![CDATA[Удалить]]></string>
 	<string name="_adm_strg_btn_add"><![CDATA[Добавить]]></string>
 	<string name="_adm_strg_btn_cancel"><![CDATA[Отмена]]></string>
+	<string name="_adm_strg_btn_done"><![CDATA[Готово]]></string>
+	<string name="_adm_strg_btn_download"><![CDATA[Скачать]]></string>
 	<string name="_adm_strg_btn_resize"><![CDATA[Изменять размеры]]></string>
-	<string name="_adm_strg_txt_download"><![CDATA[Посмотреть/Скачать файл]]></string>
 	<string name="_adm_strg_txt_files_add_popup"><![CDATA[Добавить файл]]></string>
 	<string name="_adm_strg_txt_images_add_popup"><![CDATA[Добавить изображение]]></string>
 	<string name="_adm_strg_txt_images_resize_popup"><![CDATA[Изменить размер изображения]]></string>

+ 0 - 1
studio/classes/BxDolStudioStoragesFiles.php

@@ -17,7 +17,6 @@ class BxDolStudioStoragesFiles extends BxTemplStudioGridStorages
 
         $this->_sType = BX_DOL_STUDIO_STRG_TYPE_FILES;
         $this->_aT = array(
-        	'err_files_add' => '_adm_strg_err_files_add',
         	'err_files_delete' => '_adm_strg_err_files_delete',
         	'msg_files_delete' => '_adm_strg_msg_files_delete',
         	'txt_files_add_popup' => '_adm_strg_txt_files_add_popup',

+ 0 - 1
studio/classes/BxDolStudioStoragesImages.php

@@ -21,7 +21,6 @@ class BxDolStudioStoragesImages extends BxTemplStudioGridStorages
         $this->_sTranscoderResize = 'sys_image_resize';
 
         $this->_aT = array(
-        	'err_files_add' => '_adm_strg_err_images_add',
         	'err_files_delete' => '_adm_strg_err_images_delete',
         	'msg_files_delete' => '_adm_strg_msg_images_delete',
         	'err_files_resize' => '_adm_strg_err_images_resize',

+ 5 - 1
studio/template/css/storages.css

@@ -1,4 +1,8 @@
-/*--- Keys page -> Add Key block ---*/
+div.bx-strg-field-url {
+	width: 200px;
+}
+
+/*--- Storage page -> Resize image popup ---*/
 div.bx-strg-resize-file {}
 div.bx-strg-resize-file-cnt {}
 

BIN=BIN
studio/template/images/icons/wi-storages.png


+ 30 - 35
studio/template/scripts/BxBaseStudioGridStorages.php

@@ -40,12 +40,8 @@ class BxBaseStudioGridStorages extends BxDolStudioGridStorages
         		foreach($aFiles as $iFileId)
 					$this->_oStorage->updateGhostsContentId($iFileId, $iProfileId, time());
 
-                $aRes = array('grid' => $this->getCode(false), 'blink' => $aFiles);
+                echoJson(array('grid' => $this->getCode(false), 'blink' => $aFiles));
         	}
-            else
-                $aRes = array('msg' => _t($this->_aT['err_files_add']));
-
-            echoJson($aRes);
         }
         else {
             $sContent = BxTemplStudioFunctions::getInstance()->popupBox('adm-strg-' . $this->_sType . '-add-popup', _t($this->_aT['txt_files_add_popup']), $this->_oTemplate->parseHtmlByName('strg_add_' . $this->_sType . '.html', array(
@@ -96,19 +92,20 @@ class BxBaseStudioGridStorages extends BxDolStudioGridStorages
 
 	protected function _getCellPath ($mixedValue, $sKey, $aField, $aRow)
     {
-    	$sValue = $this->_oStorage->getFileUrlById($aRow['id']);
-    	$aValue = $this->_limitMaxLength($sValue, $sKey, $aField, $aRow, $this->_isDisplayPopupOnTextOverflow, false);
-
-        $mixedValue = $this->_oTemplate->parseHtmlByName('bx_a.html', array(
-            'href' => $sValue,
-            'title' => _t('_adm_strg_txt_download'),
-            'bx_repeat:attrs' => array(
-        		array('key' => 'target', 'value' => '_blank')
+    	$oForm = new BxTemplStudioFormView(array());
+
+        $aInput = array(
+            'type' => 'text',
+            'name' => 'url-' . $aRow['id'],
+        	'value' => $this->_oStorage->getFileUrlById($aRow['id']),
+        	'attrs' => array(
+        		'readonly' => 1
         	),
-            'content' => $aValue[0]
-        )) . (isset($aValue[1]) ? $aValue[1] : '');
-
-        return parent::_getCellDefault($mixedValue, $sKey, $aField, $aRow);
+        	'tr_attrs' => array(
+                'class' => 'bx-strg-field-url',
+            ),
+        );
+        return parent::_getCellDefault($oForm->genRow($aInput), $sKey, $aField, $aRow);
     }
 
 	protected function _getCellAdded($mixedValue, $sKey, $aField, $aRow)
@@ -116,6 +113,17 @@ class BxBaseStudioGridStorages extends BxDolStudioGridStorages
         return parent::_getCellDefault(bx_time_js($mixedValue), $sKey, $aField, $aRow);
     }
 
+	protected function _getActionDownload ($sType, $sKey, $a, $isSmall = false, $isDisabled = false, $aRow = array())
+    {
+    	$sUrl = $this->_oStorage->getFileUrlById($aRow['id']);
+
+    	$a['attr'] = array_merge($a['attr'], array(
+    		"onclick" => "window.open('" . $sUrl . "','_blank');"
+    	));
+
+        return  parent::_getActionDefault($sType, $sKey, $a, false, $isDisabled, $aRow);
+    }
+
 	protected function _getFormObject($sAction)
     {
     	bx_import('BxTemplStudioFormView');
@@ -149,24 +157,11 @@ class BxBaseStudioGridStorages extends BxDolStudioGridStorages
 					)),
 					'caption' => ''
                 ),
-                'controls' => array(
-                    'name' => 'controls',
-                    'type' => 'input_set',
-                    array(
-                        'type' => 'submit',
-                        'name' => 'do_submit',
-                        'value' => _t('_adm_strg_btn_add'),
-                    ),
-                    array (
-                        'type' => 'reset',
-                        'name' => 'close',
-                        'value' => _t('_adm_strg_btn_cancel'),
-                        'attrs' => array(
-                            'onclick' => "$('.bx-popup-applied:visible').dolPopupHide()",
-                            'class' => 'bx-def-margin-sec-left',
-                        ),
-                    )
-                )
+                'submit' => array(
+					'type' => 'submit',
+					'name' => 'do_submit',
+					'value' => _t('_adm_strg_btn_done'),
+				)
             )
         );
 

+ 0 - 3
template/css/common.css

@@ -501,9 +501,6 @@ svg .gray .outer .p2 {
     background-color: #79bd9a;
     text-decoration:none;
 }
-.bx-btn:first-child {
-    margin-left:0;
-}
 button.bx-btn,
 input.bx-btn {
 	padding-top:0px;

+ 3 - 0
template/css/default.less

@@ -138,6 +138,9 @@
 .bx-def-margin-thd {
     .margin(@bx-margin-thd);
 }
+.bx-def-margin-thd-neg {
+    .margin(-@bx-margin-thd);
+}
 .bx-def-margin-thd-rightbottomleft {
     .margin-right(@bx-margin-thd);
     .margin-bottom(@bx-margin-thd);

+ 1 - 1
template/grid.html

@@ -11,7 +11,7 @@
             </bx_if:filter>
 
             <bx_if:actions_independent>
-                <div style="float:right;">
+                <div class="bx-def-margin-thd-neg" style="float:right;">
                     __actions_independent__
                 </div>
             </bx_if:actions_independent>

+ 2 - 2
template/scripts/BxBaseGrid.php

@@ -480,7 +480,7 @@ class BxBaseGrid extends BxDolGrid
         $mixedDisabledBehavior = $this->_getActionsDisabledBehavior($aRow);
         $sActions = $this->_getActions('single', $aRow[$this->_aOptions['field_id']], false, null === $mixedDisabledBehavior ? $this->_isRowDisabled($aRow) : $mixedDisabledBehavior, null !== $mixedDisabledBehavior, $aRow);
 
-        return '<td ' . $sAttr . '><div class="bx-grid-cell-single-actions-wrapper">' . $sActions . '</div></td>';
+        return '<td ' . $sAttr . '><div class="bx-grid-cell-single-actions-wrapper bx-def-margin-thd-neg">' . $sActions . '</div></td>';
     }
 
     protected function _getCellDefault ($mixedValue, $sKey, $aField, $aRow)
@@ -528,7 +528,7 @@ class BxBaseGrid extends BxDolGrid
 
         $sAttr = $this->_convertAttrs(
             $a, 'attr',
-            'bx-btn bx-def-margin-sec-left' . ($isSmall ? ' bx-btn-small' : '') . ($isDisabled ? ' bx-btn-disabled' : '') // add default classes
+            'bx-btn bx-def-margin-thd' . ($isSmall ? ' bx-btn-small' : '') . ($isDisabled ? ' bx-btn-disabled' : '') // add default classes
         );
 
         $sIcon = '';