1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- /* DirectChat()
- * ===============
- * Toggles the state of the control sidebar
- *
- * @Usage: $('#my-chat-box').directChat(options)
- * or add [data-widget="direct-chat"] to the trigger
- * Pass any option as data-option="value"
- */
- +function ($) {
- 'use strict'
- var DataKey = 'lte.directchat'
- var Selector = {
- data: '[data-widget="chat-pane-toggle"]',
- box : '.direct-chat'
- }
- var ClassName = {
- open: 'direct-chat-contacts-open'
- }
- // DirectChat Class Definition
- // ===========================
- var DirectChat = function (element) {
- this.element = element
- }
- DirectChat.prototype.toggle = function () {
- var box = $(this).parents(Selector.box).first();
- box.toggleClass(ClassName.open);
- }
- // Plugin Definition
- // =================
- function Plugin(option) {
- return this.each(function () {
- var $this = $(this)
- var data = $this.data(DataKey)
- if (!data) {
- $this.data(DataKey, (data = new DirectChat($this)))
- }
- if (typeof option == 'string') data.toggle()
- })
- }
- var old = $.fn.directChat
- $.fn.directChat = Plugin
- $.fn.directChat.Constructor = DirectChat
- // No Conflict Mode
- // ================
- $.fn.directChat.noConflict = function () {
- $.fn.directChat = old
- return this
- }
- // DirectChat Data API
- // ===================
- $(document).on('click', Selector.data, function (event) {
- if (event) event.preventDefault()
- Plugin.call($(this), 'toggle')
- })
- }(jQuery)
|