mirror of
https://github.com/wbbaddons/Tims-Chat.git
synced 2024-10-31 14:10:08 +00:00
Add first pieces of attachment upload
Currently the upload is working, but it's impossible to delete the attachment or generate a "attachment message"
This commit is contained in:
parent
b90d21a224
commit
0fa4bbc9b6
@ -813,6 +813,34 @@ Remove the given callback from the given event.
|
||||
events[event].remove callback
|
||||
|
||||
true
|
||||
|
||||
if WCF?.Attachment?.Upload?
|
||||
Attachment = WCF.Attachment.Upload.extend
|
||||
init: ->
|
||||
@_super $('#timsChatUploadContainer'), $('<ul>').appendTo('#content'), 'be.bastelstu.chat.message', 0, 0, 0, 1, null
|
||||
|
||||
_createButton: ->
|
||||
if @_supportsAJAXUpload
|
||||
@_fileUpload = $ """<input type="file" name="#{@_name}" />"""
|
||||
@_fileUpload.change =>
|
||||
do @_upload
|
||||
button = $ """<a id="timsChatUpload" class="button uploadButton jsTooltip" title="#{WCF.Language.get("wcf.global.button.upload")}"><span class="icon icon16 icon-upload-alt"></span><span class="invisible">#{WCF.Language.get("wcf.global.button.upload")}</span></a>"""
|
||||
button.prepend @_fileUpload
|
||||
else
|
||||
button = $ """<a id="timsChatUpload" class="button uploadFallbackButton jsTooltip" title="#{WCF.Language.get("wcf.global.button.upload")}"><span class="icon icon16 icon-upload-alt"></span><span class="invisible">#{WCF.Language.get("wcf.global.button.upload")}</span></a>"""
|
||||
button.click =>
|
||||
do @_showOverlay
|
||||
|
||||
@_insertButton button
|
||||
|
||||
_insertButton: (button) ->
|
||||
@_super(button)
|
||||
@_buttonSelector.removeClass 'invisible'
|
||||
|
||||
_upload: ->
|
||||
@_tmpHash = do Math.random
|
||||
@_objectID = be.bastelstu.Chat.currentRoomID
|
||||
do @_super
|
||||
|
||||
And finally export the public methods and variables.
|
||||
|
||||
@ -823,10 +851,12 @@ And finally export the public methods and variables.
|
||||
insertText: insertText
|
||||
freeTheFish: freeTheFish
|
||||
join: join
|
||||
currentRoomID: currentRoom.roomID
|
||||
listener:
|
||||
add: addListener
|
||||
remove: removeListener
|
||||
|
||||
Chat.Attachment = Attachment if Attachment?
|
||||
|
||||
window.be ?= {}
|
||||
be.bastelstu ?= {}
|
||||
window.be.bastelstu.Chat = Chat
|
||||
|
@ -73,6 +73,12 @@ class ChatPage extends \wcf\page\AbstractPage {
|
||||
*/
|
||||
public $smileyCategories = array();
|
||||
|
||||
/**
|
||||
* attachment handler
|
||||
* @see \wcf\system\attachment\AttachmentHandler
|
||||
*/
|
||||
public $attachmentHandler = null;
|
||||
|
||||
/**
|
||||
* @see wcf\page\AbstractPage::$enableTracking
|
||||
*/
|
||||
@ -94,6 +100,7 @@ public function assignVariables() {
|
||||
'messageTypes' => $reflection->getConstants(),
|
||||
'defaultSmilies' => $this->defaultSmilies,
|
||||
'smileyCategories' => $this->smileyCategories,
|
||||
'attachmentHandler' => $this->attachmentHandler,
|
||||
'sidebarCollapsed' => \wcf\system\user\collapsible\content\UserCollapsibleContentHandler::getInstance()->isCollapsed('com.woltlab.wcf.collapsibleSidebar', 'be.bastelstu.chat.ChatPage'),
|
||||
'sidebarName' => 'be.bastelstu.chat.ChatPage'
|
||||
));
|
||||
@ -125,6 +132,10 @@ public function readData() {
|
||||
$this->defaultSmilies = \wcf\data\smiley\SmileyCache::getInstance()->getCategorySmilies($firstCategory->categoryID ?: null);
|
||||
}
|
||||
}
|
||||
|
||||
if (MODULE_ATTACHMENT) {
|
||||
$this->attachmentHandler = new \wcf\system\attachment\AttachmentHandler('be.bastelstu.chat.message', 0, '', 0);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -21,12 +21,22 @@
|
||||
'chat.error.onMessageLoad': '{@"chat.error.onMessageLoad"|language|encodeJS}',
|
||||
'chat.error.duplicateTab': '{lang}chat.error.duplicateTab{/lang}',
|
||||
'chat.error.join': '{lang}chat.error.join{/lang}',
|
||||
'chat.error.reload': '{lang}chat.error.reload{/lang}'
|
||||
'chat.error.reload': '{lang}chat.error.reload{/lang}',
|
||||
'wcf.attachment.upload.error.invalidExtension': '{lang}wcf.attachment.upload.error.invalidExtension{/lang}',
|
||||
'wcf.attachment.upload.error.tooLarge': '{lang}wcf.attachment.upload.error.tooLarge{/lang}',
|
||||
'wcf.attachment.upload.error.reachedLimit': '{lang}wcf.attachment.upload.error.reachedLimit{/lang}',
|
||||
'wcf.attachment.upload.error.reachedRemainingLimit': '{lang}wcf.attachment.upload.error.reachedRemainingLimit{/lang}',
|
||||
'wcf.attachment.upload.error.uploadFailed': '{lang}wcf.attachment.upload.error.uploadFailed{/lang}',
|
||||
'wcf.global.button.upload': '{lang}wcf.global.button.upload{/lang}',
|
||||
'wcf.attachment.insert': '{lang}wcf.attachment.insert{/lang}',
|
||||
'wcf.attachment.delete.sure': '{lang}wcf.attachment.delete.sure{/lang}'
|
||||
});
|
||||
|
||||
// Boot the chat
|
||||
{if MODULE_SMILEY}WCF.TabMenu.init();{/if}
|
||||
{if MODULE_ATTACHMENT}new be.bastelstu.Chat.Attachment();{/if}
|
||||
new WCF.Message.Smilies();
|
||||
|
||||
{capture assign='messageTemplate'}{include application='chat' file='message'}{/capture}
|
||||
{capture assign='userTemplate'}{include application='chat' file='userListUser'}{/capture}
|
||||
|
||||
@ -110,10 +120,17 @@
|
||||
<span class="invisible">{lang}chat.general.controls{/lang}</span>
|
||||
<ul class="smallButtons buttonGroup">
|
||||
<li><a id="timsChatAutoscroll" accesskey="d" class="button active timsChatToggle jsTooltip" title="{lang}chat.general.scroll{/lang}" data-status="1"><span class="icon icon16 icon-arrow-down"></span><span class="invisible">{lang}chat.general.scroll{/lang}</span></a></li>{*
|
||||
|
||||
*}<li><a id="timsChatFullscreen" accesskey="f" class="button timsChatToggle jsTooltip" title="{lang}chat.general.fullscreen{/lang}" data-status="0"><span class="icon icon16 icon-fullscreen"></span><span class="invisible">{lang}chat.general.fullscreen{/lang}</span></a></li>{*
|
||||
|
||||
*}<li><a id="timsChatNotify" accesskey="n" class="button timsChatToggle jsTooltip" title="{lang}chat.general.notify{/lang}" data-status="0"><span class="icon icon16 icon-bell-alt"></span><span class="invisible">{lang}chat.general.notify{/lang}</span></a></li>{*
|
||||
|
||||
*}<li{if !MODULE_SMILEY || !$smileyCategories|count} style="display: none;"{/if}><a id="timsChatSmilies" accesskey="e" class="button{if ENABLE_SMILIES_DEFAULT_VALUE} active{/if} timsChatToggle jsTooltip" title="{lang}chat.general.smilies{/lang}" data-status="{@ENABLE_SMILIES_DEFAULT_VALUE}"><span class="icon icon16 icon-smile"></span><span class="invisible">{lang}chat.general.smilies{/lang}</span></a></li>{*
|
||||
|
||||
*}<li id="timsChatUploadContainer" class="invisible" data-max-size="{$attachmentHandler->getMaxSize()}"></li>{*
|
||||
|
||||
*}<li><a id="timsChatClear" class="button jsTooltip" title="{lang}chat.general.clear{/lang}"><span class="icon icon16 icon-remove"></span><span class="invisible">{lang}chat.general.clear{/lang}</span></a></li>{*
|
||||
|
||||
*}<li><a id="timsChatMark" class="button timsChatToggle jsTooltip" title="{lang}chat.general.mark{/lang}" data-status="0"><span class="icon icon16 icon-check"></span><span class="invisible">{lang}chat.general.mark{/lang}</span></a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
@ -1,3 +1,4 @@
|
||||
{if MODULE_ATTACHMENT}<script data-relocate="true" src="{@$__wcf->getPath()}js/WCF.Attachment{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>{/if}
|
||||
<script data-relocate="true" src="{$__wcf->getPath('chat')}js/be.bastelstu.Chat{if !ENABLE_DEBUG_MODE}.min{/if}.js?version={PACKAGE_VERSION|rawurlencode}"></script>
|
||||
<!--script src="{$__wcf->getPath('chat')}js/be.bastelstu.Chat.Log{if !ENABLE_DEBUG_MODE}.min{/if}.js?version={PACKAGE_VERSION|rawurlencode}"></script-->
|
||||
{event name='javascript'}
|
||||
{event name='javascript'}
|
||||
|
Loading…
Reference in New Issue
Block a user