Jelajahi Sumber

Ticket #2089 - point №1.

AntonLV 7 tahun lalu
induk
melakukan
9d16c9f80e

+ 2 - 0
modules/boonex/albums/classes/BxAlbumsConfig.php

@@ -106,6 +106,8 @@ class BxAlbumsConfig extends BxBaseModTextConfig
             'OBJECT_FORM_ENTRY_DISPLAY_ADD' => 'bx_albums_entry_add',
             'OBJECT_FORM_ENTRY_DISPLAY_EDIT' => 'bx_albums_entry_edit',
             'OBJECT_FORM_ENTRY_DISPLAY_DELETE' => 'bx_albums_entry_delete',
+            'OBJECT_FORM_MEDIA' => 'bx_albums_media',
+            'OBJECT_FORM_MEDIA_DISPLAY_EDIT' => 'bx_albums_media_edit',
             'OBJECT_MENU_ACTIONS_VIEW_ENTRY' => 'bx_albums_view', // actions menu on view entry page
             'OBJECT_MENU_ACTIONS_VIEW_ENTRY_ALL' => 'bx_albums_view_actions', // all actions menu on view entry page
             'OBJECT_MENU_ACTIONS_VIEW_MEDIA' => 'bx_albums_view_media', // actions menu on view media page

+ 2 - 0
modules/boonex/albums/classes/BxAlbumsMenuView.php

@@ -19,6 +19,8 @@ class BxAlbumsMenuView extends BxBaseModTextMenuView
         $this->MODULE = 'bx_albums';
         parent::__construct($aObject, $oTemplate);
 
+        $this->addMarkers(array('js_object' => $this->_oModule->_oConfig->getJsObject('main')));
+
         $sURI = bx_process_input(bx_get('i'));
         if ($sURI == 'view-album-media') {
             $iMediaId = (int)bx_get('id');

+ 28 - 0
modules/boonex/albums/classes/BxAlbumsModule.php

@@ -557,6 +557,34 @@ class BxAlbumsModule extends BxBaseModTextModule
         );
     }
 
+    public function actionEditMedia($iMediaId)
+    {
+        $CNF = &$this->_oConfig->CNF;
+
+        $iMediaId = (int)$iMediaId;
+    	$aMediaInfo = $this->_oDb->getMediaInfoById($iMediaId);
+
+        $oForm = BxDolForm::getObjectInstance($CNF['OBJECT_FORM_MEDIA'], $CNF['OBJECT_FORM_MEDIA_DISPLAY_EDIT']);
+        $oForm->aFormAttrs['action'] = BX_DOL_URL_ROOT . $this->_oConfig->getBaseUri() . 'edit_media/' . $iMediaId;
+        $oForm->initChecker($aMediaInfo);
+
+        if($oForm->isSubmittedAndValid()) {
+            if($oForm->update($iMediaId) !== false)
+                $aRes = array('reload' => 1);
+            else
+                $aRes = array('msg' => _t('_bx_albums_txt_err_cannot_perform_action'));
+
+            return echoJson($aRes);
+        }
+
+        $sContent = BxTemplStudioFunctions::getInstance()->transBox('bx-albums-edit-media-popup', $this->_oTemplate->parseHtmlByName('media-edit.html', array(
+            'form_id' => $oForm->aFormAttrs['id'],
+            'form' => $oForm->getCode(true)
+        )));
+
+        echoJson(array('popup' => array('html' => $sContent, 'options' => array('closeOnOuterClick' => false))));
+    }
+
     public function actionGetSiblingMedia($iMediaId, $mixedContext)
     {
         $aSiblings = false;

+ 1 - 0
modules/boonex/albums/classes/BxAlbumsTemplate.php

@@ -195,6 +195,7 @@ class BxAlbumsTemplate extends BxBaseModTextTemplate
 
         $aVars = array(
             'album' => _t('_bx_albums_txt_media_album_link', $sUrlAlbum,  bx_process_output($aAlbumInfo[$CNF['FIELD_TITLE']]), $oProfile->getUrl(), $oProfile->getDisplayName()),
+            'js_code' => $this->getJsCode('main')
         );
 
         $mixedContext = isset($aParams['context']) ? $aParams['context'] : false;

+ 11 - 1
modules/boonex/albums/install/langs/en.xml

@@ -41,7 +41,16 @@
 	<string name="_bx_albums_form_entry_input_date_added"><![CDATA[Created]]></string>
 	<string name="_bx_albums_form_entry_input_sys_date_changed"><![CDATA[Updated]]></string>
     <string name="_bx_albums_form_entry_input_date_changed"><![CDATA[Updated]]></string>
-    
+
+        <string name="_bx_albums_form_media"><![CDATA[Medias]]></string>
+        <string name="_bx_albums_form_media_display_edit"><![CDATA[Edit Media]]></string>
+        <string name="_bx_albums_form_media_input_sys_title"><![CDATA[Caption]]></string>
+	<string name="_bx_albums_form_media_input_title"><![CDATA[Caption]]></string>
+        <string name="_bx_albums_form_media_input_sys_do_submit"><![CDATA[Submit]]></string>
+	<string name="_bx_albums_form_media_input_do_submit"><![CDATA[Submit]]></string>
+        <string name="_bx_albums_form_media_input_sys_do_cancel"><![CDATA[Cancel]]></string>
+	<string name="_bx_albums_form_media_input_do_cancel"><![CDATA[Cancel]]></string>
+
 	<string name="_bx_albums_acl_action_create_entry"><![CDATA[Create Album]]></string>
 	<string name="_bx_albums_acl_action_delete_entry"><![CDATA[Delete Album]]></string>
 	<string name="_bx_albums_acl_action_view_entry"><![CDATA[View Album]]></string>
@@ -247,6 +256,7 @@
     <string name="_bx_albums_txt_media_album_shutter_speed"><![CDATA[Exposure time]]></string>
     <string name="_bx_albums_txt_media_album_shutter_speed_value"><![CDATA[{0}s]]></string>
     <string name="_bx_albums_txt_media_album_iso"><![CDATA[ISO]]></string>
+    <string name="_bx_albums_txt_err_cannot_perform_action"><![CDATA[Cannot perform the action. Please report.]]></string>
 
     <string name="_bx_albums_alert_action_medias_added"><![CDATA[add images]]></string>
     <string name="_bx_albums_alert_action_medias_added_follow_member"><![CDATA[New media]]></string>

+ 1 - 1
modules/boonex/albums/install/sql/enable.sql

@@ -241,7 +241,7 @@ INSERT INTO `sys_menu_sets`(`set_name`, `module`, `title`, `deletable`) VALUES
 INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES 
 ('bx_albums_view_media', 'bx_albums', 'add-images-to-album', '_bx_albums_menu_item_title_system_add_images', '_bx_albums_menu_item_title_add_images', 'page.php?i=add-images&id={content_id}', '', '', 'plus', '', 2147483647, 1, 0, 10),
 ('bx_albums_view_media', 'bx_albums', 'edit-album', '_bx_albums_menu_item_title_system_edit_album', '_bx_albums_menu_item_title_edit_album', 'page.php?i=edit-album&id={content_id}', '', '', 'pencil-alt', '', 2147483647, 1, 0, 20),
-('bx_albums_view_media', 'bx_albums', 'edit-image', '_bx_albums_menu_item_title_system_edit_image', '_bx_albums_menu_item_title_edit_image', 'page.php?i=edit-album&id={content_id}#album-media-{media_id}', '', '', 'pencil-alt', '', 2147483647, 1, 0, 30);
+('bx_albums_view_media', 'bx_albums', 'edit-image', '_bx_albums_menu_item_title_system_edit_image', '_bx_albums_menu_item_title_edit_image', 'javascript:void(0)', 'javascript:{js_object}.editMedia(this, {media_id});', '', 'pencil-alt', '', 2147483647, 1, 0, 30);
 
 -- MENU: all actions menu for view media page 
 INSERT INTO `sys_objects_menu`(`object`, `title`, `set_name`, `module`, `template_id`, `deletable`, `active`, `override_class_name`, `override_class_file`) VALUES 

+ 18 - 0
modules/boonex/albums/install/sql/install.sql

@@ -385,6 +385,24 @@ INSERT INTO `sys_form_display_inputs` (`display_name`, `input_name`, `visible_fo
 ('bx_albums_entry_delete', 'text', 2147483647, 0, 0),
 ('bx_albums_entry_delete', 'title', 2147483647, 0, 0);
 
+INSERT INTO `sys_objects_form`(`object`, `module`, `title`, `action`, `form_attrs`, `table`, `key`, `uri`, `uri_title`, `submit_name`, `params`, `deletable`, `active`, `override_class_name`, `override_class_file`) VALUES 
+('bx_albums_media', 'bx_albums', '_bx_albums_form_media', '', 'a:1:{s:7:\"enctype\";s:19:\"multipart/form-data\";}', 'bx_albums_files2albums', 'id', '', '', 'do_submit', '', 0, 1, '', '');
+
+INSERT INTO `sys_form_displays`(`object`, `display_name`, `module`, `view_mode`, `title`) VALUES 
+('bx_albums_media', 'bx_albums_media_edit', 'bx_albums', 0, '_bx_albums_form_media_display_edit');
+
+INSERT INTO `sys_form_inputs`(`object`, `module`, `name`, `value`, `values`, `checked`, `type`, `caption_system`, `caption`, `info`, `required`, `collapsed`, `html`, `attrs`, `attrs_tr`, `attrs_wrapper`, `checker_func`, `checker_params`, `checker_error`, `db_pass`, `db_params`, `editable`, `deletable`) VALUES 
+('bx_albums_media', 'bx_albums', 'title', '', '', 0, 'text', '_bx_albums_form_media_input_sys_title', '_bx_albums_form_media_input_title', '', 0, 0, 0, '', '', '', '', '', '', 'Xss', '', 1, 0),
+('bx_albums_media', 'bx_albums', 'controls', '', 'do_submit,do_cancel', 0, 'input_set', '', '', '', 0, 0, 0, '', '', '', '', '', '', '', '', 0, 0),
+('bx_albums_media', 'bx_albums', 'do_submit', '_bx_albums_form_media_input_do_submit', '', 0, 'submit', '_bx_albums_form_media_input_sys_do_submit', '', '', 0, 0, 0, '', '', '', '', '', '', '', '', 1, 0),
+('bx_albums_media', 'bx_albums', 'do_cancel', '_bx_albums_form_media_input_do_cancel', '', 0, 'button', '_bx_albums_form_media_input_sys_do_cancel', '', '', 0, 0, 0, 'a:2:{s:7:"onclick";s:45:"$(''.bx-popup-applied:visible'').dolPopupHide()";s:5:"class";s:22:"bx-def-margin-sec-left";}', '', '', '', '', '', '', '', 0, 0);
+
+INSERT INTO `sys_form_display_inputs` (`display_name`, `input_name`, `visible_for_levels`, `active`, `order`) VALUES
+('bx_albums_media_edit', 'title', 2147483647, 1, 1),
+('bx_albums_media_edit', 'controls', 2147483647, 1, 2),
+('bx_albums_media_edit', 'do_submit', 2147483647, 1, 3),
+('bx_albums_media_edit', 'do_cancel', 2147483647, 1, 4);
+
 
 -- COMMENTS
 INSERT INTO `sys_objects_cmts` (`Name`, `Module`, `Table`, `CharsPostMin`, `CharsPostMax`, `CharsDisplayMax`, `Html`, `PerView`, `PerViewReplies`, `BrowseType`, `IsBrowseSwitch`, `PostFormPosition`, `NumberOfLevels`, `IsDisplaySwitch`, `IsRatable`, `ViewingThreshold`, `IsOn`, `RootStylePrefix`, `BaseUrl`, `ObjectVote`, `TriggerTable`, `TriggerFieldId`, `TriggerFieldAuthor`, `TriggerFieldTitle`, `TriggerFieldComments`, `ClassName`, `ClassFile`) VALUES

+ 1 - 1
modules/boonex/albums/install/sql/uninstall.sql

@@ -17,7 +17,7 @@ DELETE FROM `sys_transcoder_videos_files` WHERE `transcoder_object` IN('bx_album
 DELETE FROM `sys_objects_form` WHERE `module` = 'bx_albums';
 DELETE FROM `sys_form_displays` WHERE `module` = 'bx_albums';
 DELETE FROM `sys_form_inputs` WHERE `module` = 'bx_albums';
-DELETE FROM `sys_form_display_inputs` WHERE `display_name` IN ('bx_albums_entry_add', 'bx_albums_entry_edit', 'bx_albums_entry_add_images', 'bx_albums_entry_view', 'bx_albums_entry_delete');
+DELETE FROM `sys_form_display_inputs` WHERE `display_name` LIKE 'bx_albums%';
 
 
 -- COMMENTS

+ 33 - 1
modules/boonex/albums/js/main.js

@@ -9,7 +9,7 @@
  */
 
 function BxAlbumsMain(oOptions) {
-	this._sActionsUrl = oOptions.sActionUrl;
+    this._sActionsUrl = oOptions.sActionUrl;
     this._sObjName = oOptions.sObjName == undefined ? 'oBxAlbumsMain' : oOptions.sObjName;
 
     this._sAnimationEffect = oOptions.sAnimationEffect == undefined ? 'fade' : oOptions.sAnimationEffect;
@@ -34,4 +34,36 @@ BxAlbumsMain.prototype.init = function() {
     });
 };
 
+BxAlbumsMain.prototype.editMedia = function(oButton, iId) {
+    var $this = this;
+    var oDate = new Date();
+
+    this.loadingInButton(oButton, true);
+
+    $.get(
+        this._sActionsUrl + 'edit_media/' + iId, 
+        {
+            _t: oDate.getTime()
+        },
+        function(oData) {
+            $this.loadingInButton(oButton, false);
+
+            processJsonData(oData);
+        },
+        'json'
+    );
+};
+
+BxAlbumsMain.prototype.onEditMedia = function(oData) {
+    if(oData && oData.content != undefined)
+        $('#' + this._oHtmlIds['subentry_votes'] + oData.content.subentry_id).html(oData.content.votes_formated);
+};
+
+BxAlbumsMain.prototype.loadingInButton = function(e, bShow) {
+    if($(e).length)
+        bx_loading_btn($(e), bShow);
+    else
+        bx_loading($('body'), bShow);
+};
+
 /** @} */

+ 20 - 0
modules/boonex/albums/template/media-edit.html

@@ -0,0 +1,20 @@
+<div class="bx-albums-media-edit bx-def-color-bg-block">
+    <div class="bx-albums-media-edit-cnt bx-def-padding">
+        __form__
+        <script type="text/javascript">
+            $(document).ready(function () {
+                $("#__form_id__").ajaxForm({ 
+                    dataType: "json",
+                    beforeSubmit: function (formData, jqForm, options) {
+                        bx_loading($("#__form_id__"), true);
+                    },
+                    success: function (oData) {
+                        $(".bx-popup-applied:visible").dolPopupHide();
+
+                        processJsonData(oData);
+                    }
+                });
+            });
+        </script>
+    </div>
+</div>

+ 1 - 0
modules/boonex/albums/template/media-view.html

@@ -28,3 +28,4 @@
         </bx_if:video>
     </div>
 </div>
+__js_code__

+ 10 - 0
modules/boonex/russian/data/langs/bx_albums/ru.xml

@@ -42,6 +42,15 @@
 	<string name="_bx_albums_form_entry_input_sys_date_changed"><![CDATA[Обновлено]]></string>
 	<string name="_bx_albums_form_entry_input_date_changed"><![CDATA[Обновлено]]></string>
 
+        <string name="_bx_albums_form_media"><![CDATA[Изображения]]></string>
+        <string name="_bx_albums_form_media_display_edit"><![CDATA[Редактировать изображение]]></string>
+	<string name="_bx_albums_form_media_input_sys_title"><![CDATA[Заголовок]]></string>
+	<string name="_bx_albums_form_media_input_title"><![CDATA[Заголовок]]></string>
+        <string name="_bx_albums_form_media_input_sys_do_submit"><![CDATA[Выполнить]]></string>
+	<string name="_bx_albums_form_media_input_do_submit"><![CDATA[Выполнить]]></string>
+        <string name="_bx_albums_form_media_input_sys_do_cancel"><![CDATA[Отмена]]></string>
+	<string name="_bx_albums_form_media_input_do_cancel"><![CDATA[Отмена]]></string>
+
 	<string name="_bx_albums_acl_action_create_entry"><![CDATA[Создать альбом]]></string>
 	<string name="_bx_albums_acl_action_delete_entry"><![CDATA[Удалить альбом]]></string>
 	<string name="_bx_albums_acl_action_view_entry"><![CDATA[Просмотреть альбом]]></string>
@@ -245,6 +254,7 @@
     <string name="_bx_albums_txt_media_album_shutter_speed"><![CDATA[Выдержка]]></string>
     <string name="_bx_albums_txt_media_album_shutter_speed_value"><![CDATA[{0} сек]]></string>
     <string name="_bx_albums_txt_media_album_iso"><![CDATA[Чувствительность (ISO)]]></string>
+    <string name="_bx_albums_txt_err_cannot_perform_action"><![CDATA[Невозможно выполнить действие. Пожалуйста, оповестите нас об этой проблеме.]]></string>
 
     <string name="_bx_albums_alert_action_medias_added"><![CDATA[добавить изображения]]></string>
     <string name="_bx_albums_alert_action_medias_added_follow_member"><![CDATA[Новые изображения]]></string>