update list views
This commit is contained in:
parent
cbf80fb548
commit
aaf5037d13
14 changed files with 164 additions and 70 deletions
|
@ -1,12 +1,74 @@
|
|||
define(['itemShortcuts', 'registerElement'], function (itemShortcuts) {
|
||||
define(['itemShortcuts', 'connectionManager', 'registerElement'], function (itemShortcuts, connectionManager) {
|
||||
|
||||
var ItemsContainerProtoType = Object.create(HTMLDivElement.prototype);
|
||||
|
||||
function parentWithClass(elem, className) {
|
||||
|
||||
while (!elem.classList || !elem.classList.contains(className)) {
|
||||
elem = elem.parentNode;
|
||||
|
||||
if (!elem) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
return elem;
|
||||
}
|
||||
|
||||
function parentWithAttribute(elem, name) {
|
||||
|
||||
while (!elem.getAttribute(name)) {
|
||||
elem = elem.parentNode;
|
||||
|
||||
if (!elem) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
return elem;
|
||||
}
|
||||
|
||||
function getItem(button) {
|
||||
|
||||
button = parentWithAttribute(button, 'data-id');
|
||||
var serverId = button.getAttribute('data-serverid');
|
||||
var id = button.getAttribute('data-id');
|
||||
|
||||
var apiClient = connectionManager.getApiClient(serverId);
|
||||
|
||||
return apiClient.getItem(apiClient.getCurrentUserId(), id);
|
||||
}
|
||||
|
||||
function showContextMenu(button) {
|
||||
|
||||
getItem(button).then(function (item) {
|
||||
|
||||
require(['itemContextMenu'], function (itemContextMenu) {
|
||||
itemContextMenu.show({
|
||||
positionTo: button,
|
||||
item: item
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function onClick(e) {
|
||||
|
||||
var menuButton = parentWithClass(e.target, 'menuButton');
|
||||
if (menuButton) {
|
||||
showContextMenu(menuButton);
|
||||
e.stopPropagation();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
ItemsContainerProtoType.attachedCallback = function () {
|
||||
this.addEventListener('click', onClick);
|
||||
itemShortcuts.on(this);
|
||||
};
|
||||
|
||||
ItemsContainerProtoType.detachedCallback = function () {
|
||||
this.removeEventListener('click', onClick);
|
||||
itemShortcuts.off(this);
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue