UNPKG

nyx_server

Version:

Node内容发布

71 lines (62 loc) 2.2 kB
(function ($, lib, conf) { 'use strict'; // 对通栏对象进行集中管理 var bannerGroup = { banners: {}, focusBanner: null, // @todo 需要将isMove移动到状态管理中 isMove: false, bodyList: '', add: function (banner) { bannerGroup.banners[banner.uid] = banner; }, createAll: function () { var comments = lib.getComments('banner:begin'); for (var i = 0, iLen = comments.length; i < iLen; i++) { bannerGroup.create(comments[i]); } }, create: function (commentElm) { var uid = commentElm.data.split(':')[2]; // 创建前需要先判断该通栏是否存在,因为每次刷重建通栏时, // 都是基于对整个页面上的通栏注释节点进行重建的。 if (typeof bannerGroup.banners[uid] === 'undefined') { var banner = new topic.module.Banner(commentElm); bannerGroup.add(banner); } }, // 对所有通栏的蒙层进行重置,主要是对位置和是否显示进行重新计算。 layoutResetAll: function () { var banners = bannerGroup.banners; // @todo 命名空间和状态整理 if (topic.state.get('pageModel') !== 'bannerEdit') { return; } for (var key in banners) { banners[key].layoutReset(); banners[key].show(); } }, // 隐藏所有通栏蒙层。 layoutHideAll: function () { var banners = bannerGroup.banners; for (var key in banners) { banners[key].hide(); } }, // 这里删除一个通栏,需要将所有通栏进行一次重置 remove: function (uid) { var banners = bannerGroup.banners; if (typeof banners[uid] !== 'undefined') { // 将此操作移动到自定义事件中 bannerGroup.trigger('beforeRemove', uid); topic.fragmentGroup.removeByBanner(uid); banners[uid].destory(); delete banners[uid]; bannerGroup.layoutResetAll(); } } }; topic.Events.mixTo(bannerGroup); lib.ns('topic').bannerGroup = bannerGroup; }(topicJquery, topic.utils, topic.conf));