UNPKG

nyx_server

Version:

Node内容发布

318 lines (269 loc) 11.6 kB
(function ($, lib, conf) { 'use strict'; var doc = document; var win = window; var FragmentList = function () { this.init(); }; FragmentList.prototype = { init: function () { this.initParams(); this.initLayout(); this.initEvent(); }, initParams: function () { this.isChange = true; this.isShow = false; }, initLayout: function () { this.layout = $('<nyx-div class="t-tools-aside-list t_anim_long" data-topicSystem="true">' + '<nyx-div data-topicSystem="true" class="t-tools-aside-list-tools">' + '<input type="text" value="" placeholder="输入过滤词" data-topicSystem="true" />' + '</nyx-div>' + '<nyx-div data-topicSystem="true" class="t-tools-aside-list-title">' + '<nyx-span class="t-closeAll" data-topicSystem="true"></nyx-span>' + '碎片列表' + '</nyx-div>' + '<nyx-div class="t-list-box"></nyx-div>' + '</nyx-div>'); $(doc.body).append(this.layout); }, initEvent: function () { var _this = this; this.layout.on('click', '.t-list-item', function () { var uid = $(this).attr('data-uid'); _this.trigger('listClick', uid); }); this.layout.on('click', '.t-list-item .edit_handle', function (e) { var uid = $(this).attr('data-uid'); _this.trigger('editClick', uid, e.pageX, e.pageY); return false; }); this.layout.on('click', '.t-list-item .visible_handle', function () { var isHide = $(this).attr('data-isHide') === 'true' ? true : false; var uid = $(this).attr('data-uid'); if (!isHide) { $(this).attr('data-isHide', 'true'); $(this).parents('.t-list-item').addClass('t-list-hide'); $(this).attr('title', '显示遮罩'); } else { $(this).parents('.t-list-item').removeClass('t-list-hide'); $(this).attr('data-isHide', 'false'); $(this).attr('title', '隐藏遮罩'); } _this.trigger('hideClick', uid, isHide); return false; }); // this.layout.on('click', '.t-list-item-parent u', function () { // var $item = $(this).parent(); // if ($item.hasClass('t-list-item-open')) { // $item.removeClass('t-list-item-open'); // $item.addClass('t-list-item-close'); // $item.next().slideUp(); // } else { // $item.removeClass('t-list-item-close'); // $item.addClass('t-list-item-open'); // $item.next().slideDown(); // } // }); this.layout.on('mouseenter', '.t-list-item', function () { var uid = $(this).attr('data-uid'); _this.trigger('mouseenter', uid); }); this.layout.on('mouseleave', '.t-list-item', function () { var uid = $(this).attr('data-uid'); _this.trigger('mouseleave', uid); }); this.layout.on('keyup', 'input', function () { _this.filter(this.value); _this.renderContent(); }); this.layout.on('click', '.t-expandAll', function () { _this.expand(); $(this).addClass('t-closeAll').removeClass('t-expandAll'); }); this.layout.on('click', '.t-closeAll', function () { _this.unexpand(); $(this).addClass('t-expandAll').removeClass('t-closeAll'); }); }, hide: function () { this.layout.css('right', ''); this.isShow = false; }, show: function () { this.layout.css('right', '50px'); this.isShow = true; }, render: function () { if (!this.isChange || !this.isShow) { return; } // this.getGroup(); this.getFragment(); this.renderContent(); }, renderContent: function () { var fragments = topic.fragmentGroup.fragments; // var banners = topic.bannerGroup.banners; // var banner; var fragment; var items; var i, iLen; var list = []; var title, editableTitle, visibleTitle; var visibleClass; var hideClass; var editableClass; items = this.fragments; list.push('<nyx-div class="t-list-item-group">'); for (i = 0, iLen = items.length; i < iLen; i++) { if (items[i].isFilter) { fragment = fragments[items[i].id]; visibleClass = fragment.visible ? '' : 't-list-invisible'; hideClass = fragment.isHide ? 't-list-hide' : ''; editableClass = fragment.editable ? 't-list-edit' : ''; title = fragment.visible ? '点击定位到该通栏' : '点击编辑该通栏'; editableTitle = fragment.editable ? '可编辑' : '不可编辑'; visibleTitle = fragment.isHide ? '显示遮罩' : '隐藏遮罩'; list.push('<nyx-div class="t-list-item ' + visibleClass + ' ' + editableClass + ' ' + hideClass + '" data-uid="' + fragment.uid + '" data-topicSystem="true" title="' + title + '">' + '<nyx-em class="id_handle" data-topicSystem="true"><nyx-i data-topicSystem="true">' + fragment.id + '</nyx-i></nyx-em><nyx-u data-topicSystem="true"></nyx-u>' + '<nyx-div data-topicSystem="true">' + fragment.name + '</nyx-div>' + '<nyx-span class="edit_handle" data-topicSystem="true" data-uid="' + fragment.uid + '" title="' + editableTitle + '"></nyx-span>' + '<nyx-span class="visible_handle" data-topicSystem="true" data-uid="' + fragment.uid + '" title="' + visibleTitle + '" data-isHide="' + fragment.isHide + '"></nyx-span>' + '</nyx-div>'); } } list.push('</nyx-div>'); this.layout.find('.t-list-box').html(list.join("")); }, // renderContent: function () { // var fragments = topic.fragmentGroup.fragments; // var banners = topic.bannerGroup.banners; // var banner; // var groups = {}; // var fragment; // var items; // var i, iLen; // var list = []; // var title, editableTitle, visibleTitle; // var visibleClass; // var hideClass; // var editableClass; // groups = this.groups; // for (var key in groups) { // items = groups[key].child; // if (groups[key].filterCount > 0) { // banner = banners[key]; // list.push('<div class="t-list-item-parent t-list-item-open" data-target="' + // key + '" data-topicSystem="true"><em data-topicSystem="true">ID</em>' + // '<u data-topicSystem="true"></u><span data-topicSystem="true">' + banner.data.name + '</span></div>'); // list.push('<div class="t-list-item-group" data-from="' + // key + '" data-topicSystem="true">'); // for (i = 0, iLen = items.length; i < iLen; i++) { // if (items[i].isFilter) { // fragment = fragments[items[i].id]; // visibleClass = fragment.visible ? '' : 't-list-invisible'; // hideClass = fragment.isHide ? 't-list-hide' : ''; // editableClass = fragment.data.editable ? 't-list-edit' : ''; // title = fragment.visible ? '点击定位到该通栏' : '点击编辑该通栏'; // editableTitle = fragment.data.editable ? '可编辑' : '不可编辑'; // visibleTitle = fragment.isHide ? '显示遮罩' : '隐藏遮罩'; // list.push('<div class="t-list-item ' + visibleClass + ' ' + editableClass + // ' ' + hideClass + '" data-uid="' + fragment.uid + // '" data-topicSystem="true" title="' + title + '">' + // '<em class="id_handle" data-topicSystem="true"><i data-topicSystem="true">' + // fragment.data.id + '</i></em><u data-topicSystem="true"></u>' + // '<div data-topicSystem="true">' + fragment.data.name + '</div>' + // '<span class="edit_handle" data-topicSystem="true" data-uid="' + // fragment.uid + '" title="' + editableTitle + '"></span>' + // '<span class="visible_handle" data-topicSystem="true" data-uid="' + // fragment.uid + '" title="' + visibleTitle + '" data-isHide="' + // fragment.isHide + '"></span>' + // '</div>'); // } // } // list.push('</div>'); // } // } // this.layout.find('.t-list-box').html(list.join("")); // }, // expand: function () { // this.layout.find('.t-list-item-parent').removeClass('t-list-item-close'); // this.layout.find('.t-list-item-parent').addClass('t-list-item-open'); // this.layout.find('.t-list-item-group').slideDown(); // }, // unexpand: function () { // this.layout.find('.t-list-item-parent').addClass('t-list-item-close'); // this.layout.find('.t-list-item-parent').removeClass('t-list-item-open'); // this.layout.find('.t-list-item-group').slideUp(); // }, getFragment: function () { var comments = lib.getComments('chip:start'); var fragments = []; var data; for (var i = 0, iLen = comments.length; i < iLen; i++) { data = lib.analyze(comments[i].data); fragments.push({id: data.uid, isFilter: true}); } this.fragments = fragments; }, // getGroup: function () { // var comments = lib.getComments('begin:'); // var groups = {}; // var currentUid; // var data; // for (var i = 0, iLen = comments.length; i < iLen; i++) { // data = lib.analyze(comments[i].data); // if (data.model === 'banner') { // currentUid = data.uid; // groups[currentUid] = {unfold: true, child: [], filterCount: 0}; // } else { // groups[currentUid].child.push({id: data.uid, isFilter: true}); // groups[currentUid].filterCount++; // } // } // this.groups = groups; // }, filter: function (filterWord) { var items = this.fragments; var name; var i, iLen; for (i = 0, iLen = items.length; i < iLen; i++) { name = topic.fragmentGroup.fragments[items[i].id].name; if (name.indexOf(filterWord) >= 0) { items[i].isFilter = true; } else { items[i].isFilter = false; } } } // filter: function (filterWord) { // var groups = this.groups; // var items; // var name; // var i, iLen; // for (var key in groups) { // items = groups[key].child; // groups[key].filterCount = 0; // for (i = 0, iLen = items.length; i < iLen; i++) { // name = topic.fragmentGroup.fragments[items[i].id].data.name; // if (name.indexOf(filterWord) >= 0) { // items[i].isFilter = true; // groups[key].filterCount++; // } else { // items[i].isFilter = false; // } // } // } // } }; topic.Events.mixTo(FragmentList); lib.ns('topic.module').FragmentList = FragmentList; }(topicJquery, topic.utils, topic.conf));