added DirectChat & TodoList JS (+ TodoList CSS fixes)

This commit is contained in:
REJack 2019-07-28 21:11:54 +02:00
parent dd0794bab2
commit c089bc9796
No known key found for this signature in database
GPG key ID: 9F3976CC630CC888
13 changed files with 437 additions and 14 deletions

View file

@ -2,6 +2,8 @@ import ControlSidebar from './ControlSidebar'
import Layout from './Layout'
import PushMenu from './PushMenu'
import Treeview from './Treeview'
import DirectChat from './DirectChat'
import TodoList from './TodoList'
import Widget from './Widget'
export {
@ -9,5 +11,7 @@ export {
Layout,
PushMenu,
Treeview,
DirectChat,
TodoList,
Widget
}

88
build/js/DirectChat.js Normal file
View file

@ -0,0 +1,88 @@
/**
* --------------------------------------------
* AdminLTE DirectChat.js
* License MIT
* --------------------------------------------
*/
const DirectChat = (($) => {
/**
* Constants
* ====================================================
*/
const NAME = 'DirectChat'
const DATA_KEY = 'lte.directchat'
const EVENT_KEY = `.${DATA_KEY}`
const JQUERY_NO_CONFLICT = $.fn[NAME]
const DATA_API_KEY = '.data-api'
const Selector = {
DATA_TOGGLE: '[data-widget="chat-pane-toggle"]',
DIRECT_CHAT: '.direct-chat'
};
const ClassName = {
DIRECT_CHAT_OPEN: 'direct-chat-contacts-open'
};
/**
* Class Definition
* ====================================================
*/
class DirectChat {
constructor(element, config) {
this._element = element
}
toggle() {
$(this._element).parents(Selector.DIRECT_CHAT).first().toggleClass(ClassName.DIRECT_CHAT_OPEN);
}
// Static
static _jQueryInterface(config) {
return this.each(function () {
let data = $(this).data(DATA_KEY)
const _config = $.extend({}, Default, $(this).data())
if (!data) {
data = new DirectChat($(this), _config)
$(this).data(DATA_KEY, data)
}
if (config === 'init') {
data[config]()
}
})
}
}
/**
*
* Data Api implementation
* ====================================================
*/
$(document).on('click', Selector.DATA_TOGGLE, function (event) {
if (event) event.preventDefault();
DirectChat._jQueryInterface.call($(this), 'toggle');
});
/**
* jQuery API
* ====================================================
*/
$.fn[NAME] = DirectChat._jQueryInterface
$.fn[NAME].Constructor = DirectChat
$.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT
return DirectChat._jQueryInterface
}
return DirectChat
})(jQuery)
export default DirectChat

122
build/js/TodoList.js Normal file
View file

@ -0,0 +1,122 @@
/**
* --------------------------------------------
* AdminLTE TodoList.js
* License MIT
* --------------------------------------------
*/
const TodoList = (($) => {
/**
* Constants
* ====================================================
*/
const NAME = 'TodoList'
const DATA_KEY = 'lte.todolist'
const EVENT_KEY = `.${DATA_KEY}`
const JQUERY_NO_CONFLICT = $.fn[NAME]
const Selector = {
DATA_TOGGLE: '[data-widget="todo-list"]'
}
const ClassName = {
TODO_LIST_DONE: 'done'
}
const Default = {
onCheck: function (item) {
return item;
},
onUnCheck: function (item) {
return item;
}
}
/**
* Class Definition
* ====================================================
*/
class TodoList {
constructor(element, config) {
this._config = config
this._element = element
this._init()
}
// Public
toggle(item) {
item.parents('li').toggleClass(ClassName.TODO_LIST_DONE);
if (! $(item).prop('checked')) {
this.unCheck($(item));
return;
}
this.check(item);
}
check (item) {
this._config.onCheck.call(item);
}
unCheck (item) {
this._config.onUnCheck.call(item);
}
// Private
_init() {
var that = this
$(Selector.DATA_TOGGLE).find('input:checkbox:checked').parents('li').toggleClass(ClassName.TODO_LIST_DONE)
$(Selector.DATA_TOGGLE).on('change', 'input:checkbox', (event) => {
that.toggle($(event.target))
})
}
// Static
static _jQueryInterface(config) {
return this.each(function () {
let data = $(this).data(DATA_KEY)
const _config = $.extend({}, Default, $(this).data())
if (!data) {
data = new TodoList($(this), _config)
$(this).data(DATA_KEY, data)
}
if (config === 'init') {
data[config]()
}
})
}
}
/**
* Data API
* ====================================================
*/
$(window).on('load', () => {
TodoList._jQueryInterface.call($(Selector.DATA_TOGGLE))
})
/**
* jQuery API
* ====================================================
*/
$.fn[NAME] = TodoList._jQueryInterface
$.fn[NAME].Constructor = TodoList
$.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT
return TodoList._jQueryInterface
}
return TodoList
})(jQuery)
export default TodoList

View file

@ -251,8 +251,8 @@ html.maximized-card {
}
// Time labels
.label {
font-size: 9px;
.badge {
font-size: .7rem;
margin-left: 10px;
}
@ -286,7 +286,7 @@ html.maximized-card {
text-decoration: line-through;
}
.label {
.badge {
background: $gray-500 !important;
}
}

View file

@ -14356,8 +14356,8 @@ html.maximized-card {
margin-left: 5px;
}
.todo-list > li .label {
font-size: 9px;
.todo-list > li .badge {
font-size: .7rem;
margin-left: 10px;
}
@ -14390,7 +14390,7 @@ html.maximized-card {
text-decoration: line-through;
}
.todo-list > li.done .label {
.todo-list > li.done .badge {
background: #adb5bd !important;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

209
dist/js/adminlte.js vendored
View file

@ -678,6 +678,213 @@
return Treeview;
}(jQuery);
/**
* --------------------------------------------
* AdminLTE DirectChat.js
* License MIT
* --------------------------------------------
*/
var DirectChat = function ($) {
/**
* Constants
* ====================================================
*/
var NAME = 'DirectChat';
var DATA_KEY = 'lte.directchat';
var JQUERY_NO_CONFLICT = $.fn[NAME];
var Selector = {
DATA_TOGGLE: '[data-widget="chat-pane-toggle"]',
DIRECT_CHAT: '.direct-chat'
};
var ClassName = {
DIRECT_CHAT_OPEN: 'direct-chat-contacts-open'
};
/**
* Class Definition
* ====================================================
*/
var DirectChat =
/*#__PURE__*/
function () {
function DirectChat(element, config) {
this._element = element;
}
var _proto = DirectChat.prototype;
_proto.toggle = function toggle() {
$(this._element).parents(Selector.DIRECT_CHAT).first().toggleClass(ClassName.DIRECT_CHAT_OPEN);
} // Static
;
DirectChat._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () {
var data = $(this).data(DATA_KEY);
var _config = $.extend({}, Default, $(this).data());
if (!data) {
data = new DirectChat($(this), _config);
$(this).data(DATA_KEY, data);
}
if (config === 'init') {
data[config]();
}
});
};
return DirectChat;
}();
/**
*
* Data Api implementation
* ====================================================
*/
$(document).on('click', Selector.DATA_TOGGLE, function (event) {
if (event) event.preventDefault();
DirectChat._jQueryInterface.call($(this), 'toggle');
});
/**
* jQuery API
* ====================================================
*/
$.fn[NAME] = DirectChat._jQueryInterface;
$.fn[NAME].Constructor = DirectChat;
$.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT;
return DirectChat._jQueryInterface;
};
return DirectChat;
}(jQuery);
/**
* --------------------------------------------
* AdminLTE TodoList.js
* License MIT
* --------------------------------------------
*/
var TodoList = function ($) {
/**
* Constants
* ====================================================
*/
var NAME = 'TodoList';
var DATA_KEY = 'lte.todolist';
var JQUERY_NO_CONFLICT = $.fn[NAME];
var Selector = {
DATA_TOGGLE: '[data-widget="todo-list"]'
};
var ClassName = {
TODO_LIST_DONE: 'done'
};
var Default = {
onCheck: function onCheck(item) {
return item;
},
onUnCheck: function onUnCheck(item) {
return item;
}
/**
* Class Definition
* ====================================================
*/
};
var TodoList =
/*#__PURE__*/
function () {
function TodoList(element, config) {
this._config = config;
this._element = element;
this._init();
} // Public
var _proto = TodoList.prototype;
_proto.toggle = function toggle(item) {
item.parents('li').toggleClass(ClassName.TODO_LIST_DONE);
if (!$(item).prop('checked')) {
this.unCheck($(item));
return;
}
this.check(item);
};
_proto.check = function check(item) {
this._config.onCheck.call(item);
};
_proto.unCheck = function unCheck(item) {
this._config.onUnCheck.call(item);
} // Private
;
_proto._init = function _init() {
var that = this;
$(Selector.DATA_TOGGLE).find('input:checkbox:checked').parents('li').toggleClass(ClassName.TODO_LIST_DONE);
$(Selector.DATA_TOGGLE).on('change', 'input:checkbox', function (event) {
that.toggle($(event.target));
});
} // Static
;
TodoList._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () {
var data = $(this).data(DATA_KEY);
var _config = $.extend({}, Default, $(this).data());
if (!data) {
data = new TodoList($(this), _config);
$(this).data(DATA_KEY, data);
}
if (config === 'init') {
data[config]();
}
});
};
return TodoList;
}();
/**
* Data API
* ====================================================
*/
$(window).on('load', function () {
TodoList._jQueryInterface.call($(Selector.DATA_TOGGLE));
});
/**
* jQuery API
* ====================================================
*/
$.fn[NAME] = TodoList._jQueryInterface;
$.fn[NAME].Constructor = TodoList;
$.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT;
return TodoList._jQueryInterface;
};
return TodoList;
}(jQuery);
/**
* --------------------------------------------
* AdminLTE Widget.js
@ -902,8 +1109,10 @@
}(jQuery);
exports.ControlSidebar = ControlSidebar;
exports.DirectChat = DirectChat;
exports.Layout = Layout;
exports.PushMenu = PushMenu;
exports.TodoList = TodoList;
exports.Treeview = Treeview;
exports.Widget = Widget;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -939,7 +939,7 @@
</div>
<!-- /.card-header -->
<div class="card-body">
<ul class="todo-list">
<ul class="todo-list" data-widget="todo-list">
<li>
<!-- drag handle -->
<span class="handle">
@ -967,7 +967,7 @@
<i class="fas fa-ellipsis-v"></i>
</span>
<div class="icheck-primary d-inline ml-2">
<input type="checkbox" value="" name="todo2" id="todoCheck2">
<input type="checkbox" value="" name="todo2" id="todoCheck2" checked>
<label for="todoCheck2"></label>
</div>
<span class="text">Make the theme responsive</span>