diff options
Diffstat (limited to 'phpBB/assets/javascript')
-rw-r--r-- | phpBB/assets/javascript/core.js | 67 | ||||
-rw-r--r-- | phpBB/assets/javascript/plupload.js | 5 |
2 files changed, 53 insertions, 19 deletions
diff --git a/phpBB/assets/javascript/core.js b/phpBB/assets/javascript/core.js index 296c5b0ef9..785aa141f0 100644 --- a/phpBB/assets/javascript/core.js +++ b/phpBB/assets/javascript/core.js @@ -7,6 +7,7 @@ phpbb.alertTime = 100; // define a couple constants for keydown functions. var keymap = { + TAB: 9, ENTER: 13, ESC: 27 }; @@ -873,19 +874,6 @@ phpbb.timezonePreselectSelect = function(forceSelector) { } }; -// Toggle notification list -$('#notification_list_button').click(function(e) { - $('#notification_list').toggle(); - e.preventDefault(); -}); -$('#phpbb').click(function(e) { - var target = $(e.target); - - if (!target.is('#notification_list, #notification_list_button') && !target.parents().is('#notification_list, #notification_list_button')) { - $('#notification_list').hide(); - } -}); - phpbb.ajaxCallbacks = {}; /** @@ -1201,7 +1189,11 @@ phpbb.applyCodeEditor = function(textarea) { var key = event.keyCode || event.which; // intercept tabs - if (key == 9) { + if (key == keymap.TAB && + !event.ctrlKey && + !event.shiftKey && + !event.altKey && + !event.metaKey) { if (inTag()) { appendText("\t"); event.preventDefault(); @@ -1210,7 +1202,7 @@ phpbb.applyCodeEditor = function(textarea) { } // intercept new line characters - if (key == 13) { + if (key == keymap.ENTER) { if (inTag()) { var lastLine = getLastLine(true), code = '' + /^\s*/g.exec(lastLine); @@ -1511,11 +1503,37 @@ phpbb.getFunctionByName = function (functionName) { }; /** -* Apply code editor to all textarea elements with data-bbcode attribute +* Register page dropdowns. */ -$(document).ready(function() { - $('textarea[data-bbcode]').each(function() { - phpbb.applyCodeEditor(this); +phpbb.registerPageDropdowns = function() { + $('body').find('.dropdown-container').each(function() { + var $this = $(this), + trigger = $this.find('.dropdown-trigger:first'), + contents = $this.find('.dropdown'), + options = { + direction: 'auto', + verticalDirection: 'auto' + }, + data; + + if (!trigger.length) { + data = $this.attr('data-dropdown-trigger'); + trigger = data ? $this.children(data) : $this.children('a:first'); + } + + if (!contents.length) { + data = $this.attr('data-dropdown-contents'); + contents = data ? $this.children(data) : $this.children('div:first'); + } + + if (!trigger.length || !contents.length) return; + + if ($this.hasClass('dropdown-up')) options.verticalDirection = 'up'; + if ($this.hasClass('dropdown-down')) options.verticalDirection = 'down'; + if ($this.hasClass('dropdown-left')) options.direction = 'left'; + if ($this.hasClass('dropdown-right')) options.direction = 'right'; + + phpbb.registerDropdown(trigger, contents, options); }); // Hide active dropdowns when click event happens outside @@ -1525,6 +1543,17 @@ $(document).ready(function() { $(phpbb.dropdownHandles).each(phpbb.toggleDropdown); } }); +} + +/** +* Apply code editor to all textarea elements with data-bbcode attribute +*/ +$(document).ready(function() { + $('textarea[data-bbcode]').each(function() { + phpbb.applyCodeEditor(this); + }); + + phpbb.registerPageDropdowns(); $('#color_palette_placeholder').each(function() { phpbb.registerPalette($(this)); diff --git a/phpBB/assets/javascript/plupload.js b/phpBB/assets/javascript/plupload.js index 8ffd452a09..5445e83e15 100644 --- a/phpBB/assets/javascript/plupload.js +++ b/phpBB/assets/javascript/plupload.js @@ -586,6 +586,11 @@ uploader.bind('FilesAdded', function(up, files) { return; } + // Switch the active tab if the style supports it + if (typeof activateSubPanel == 'function') { + activateSubPanel('attach-panel'); + } + // Show the file list if there aren't any files currently. if (!$('#file-list-container').is(':visible')) { $('#file-list-container').show(100); |