var UserPicDirectory = (function () { var self = this; var folderTitleMaxWords = 10; var folderDescriptionMaxWords = 100; var uiContent = $('#user_pic_directory_ui_content'); var createFolderDialog = $('#user_pic_directory_create_user_pic_folder_dialog'); var folders = []; function createListItem(picId, folderId, title, collected) { var html = '
'; return html; } function pullSimpleList(picId) { var uiListContent = uiContent.find('.col-md-body'); uiListContent.html(''); $.get('/?m=UserPicDirectory&a=simplePull', { 'pic_id': picId }, function (rep) { if (rep.code > 0) { alert(rep.msg); } else { folders = rep.data; var htmlContent = ''; for (var i = 0; i < rep.data.length; i++) { var folder = rep.data[i]; htmlContent += createListItem(picId, folder.id, folder.title, folder.collected) } uiListContent.html(htmlContent); } }); } var ui = { showSimpleList: function (picId) { if($('.coll_phone_pop_num').val() == 3){ showBindPhonePop(false, 'coll'); $('.coll_phone_pop_num').val(4); return false; } if($('.coll_phone_pop_num').val() < 3){ $('.coll_phone_pop_num').val(Number($(".coll_phone_pop_num").val()) + 1); } uiContent.show(); pullSimpleList(picId); onceBindCreateFolderClientEvent(picId); }, hideSimpleList: function () { uiContent.hide(); }, showCreateFolderDialog: function () { createFolderDialog.show(); }, hideCreateFolderDialog: function () { createFolderDialog.hide(); } }; var listener = { 'onComplete': function (collected) { console.log(collected); }, 'onFolderCreated': function (folder) { } }; function checkSaveFolderData(folder) { var title = $.trim(folder.title); if (title.length === 0) { alert('请输入标题!'); return false; } if (title.length > folderTitleMaxWords) { alert('标题最多只能在' + folderTitleMaxWords + '个字符内!'); return false; } var description = $.trim(folder.description); if (description.length !== 0 && description.length > 100) { alert('描述最多只能在' + folderDescriptionMaxWords + '个字符内'); return false; } return true; } function resetDialog(selector) { var dialog = $(selector); var titleInput = dialog.find('.folder_title_input'); var descriptionInput = dialog.find('.folder_description_input'); titleInput.val(''); descriptionInput.val(''); resetLimiter(selector); } function resetLimiter(selector) { var dialog = $(selector); var titleLimitNumSpan = dialog.find('.title_limit_num'); var descriptionLimitNumSpan = dialog.find('.description_limit_num'); titleLimitNumSpan.attr('class', 'wordNum title_limit_num'); descriptionLimitNumSpan.attr('class', 'wordNum description_limit_num'); titleLimitNumSpan.html(folderTitleMaxWords); descriptionLimitNumSpan.html(folderDescriptionMaxWords); } function initInputLimiter(wordsInput, limitSpan, maxLimit) { wordsInput.on('input propertychange', function () { var inputLength = wordsInput.val().length; if (inputLength > maxLimit) { if (!limitSpan.hasClass('limited')) { limitSpan.addClass('limited'); } } else { if (limitSpan.hasClass('limited')) { limitSpan.removeClass('limited'); } } if (inputLength >= maxLimit) { limitSpan.html(inputLength); } else { limitSpan.html(maxLimit); } }) } initInputLimiter( createFolderDialog.find('.folder_title_input'), createFolderDialog.find('.title_limit_num'), folderTitleMaxWords ); initInputLimiter( createFolderDialog.find('.folder_description_input'), createFolderDialog.find('.description_limit_num'), folderDescriptionMaxWords ); createFolderDialog.find('.user-col-md-cancel').on('click', function () { createFolderDialog.hide(); }); createFolderDialog.find('.user-col-md-close').on('click', function () { createFolderDialog.hide(); }); function onceBindCreateFolderClientEvent(picId) { createFolderDialog.off('click').on('click', '.user-col-md-confirm', function () { var postData = { 'title': createFolderDialog.find('.folder_title_input').val(), 'description': createFolderDialog.find('.folder_description_input').val(), 'page_id' : $("#user_pic_directory_ui_content").attr('data-page-id') }; if (checkSaveFolderData(postData)) { $.post('/?m=UserPicDirectory&a=addPicFolder', postData, function (rep) { if (rep.code > 0) { alert(rep.msg); } else { createFolderDialog.hide(); pullSimpleList(picId); } }); } }); } function customOnceBindCreateFolderClientEvent(callback) { createFolderDialog.off('click').on('click', '.user-col-md-confirm', function () { var postData = { 'title': createFolderDialog.find('.folder_title_input').val(), 'description': createFolderDialog.find('.folder_description_input').val(), 'page_id' : $("#user_pic_directory_ui_content").attr('data-page-id') }; if (checkSaveFolderData(postData)) { $.post('/?m=UserPicDirectory&a=addPicFolder', postData, function (rep) { if (rep.code > 0) { callback(false); } else { createFolderDialog.hide(); resetDialog('#user_pic_directory_create_user_pic_folder_dialog'); callback(rep) } }); } }); } uiContent.on('click', '.col-md-new ', function () { resetDialog('#user_pic_directory_create_user_pic_folder_dialog'); createFolderDialog.show(); }); uiContent.on('click', '.col-md-close', function () { ui.hideSimpleList(); }); uiContent.on('click', '[action-event-key="addPicFolder"]', function (e) { var boutique_type = sessionStorage.getItem("boutique_type") ? sessionStorage.getItem("boutique_type") : '0' ; var eventBtn = $(e.target); var url = window.location.href; var postData = { 'folder_id': eventBtn.attr('data-folder-id'), 'pic_id' : eventBtn.attr('data-pic-id'), 'albums' : $('#folder-albums').attr('data-folder-albums') || 0, 'clickFrom' : $('#folder-albums').attr('data-folder-clickFrom') || '', 'url' : url, 'boutique_type' : boutique_type }; var collected = false; if (eventBtn.hasClass('collected')) { $.post('/?m=UserPicDirectory&a=deleteInPicFolder', postData, function (rep) { console.log(rep); }); eventBtn.removeClass('collected'); eventBtn.html('收藏'); collected = false; } else { $.post('/?m=UserPicDirectory&a=addToPicFolder', postData, function (rep) { console.log(rep); }); eventBtn.addClass('collected'); eventBtn.html('已收藏'); collected = true; } //收藏完直接关闭收藏框 $('#user_pic_directory_ui_content').hide(); for (var i = 0; i < folders.length; i++) { var folder = folders[i]; if (folder.id == postData.folder_id) { folder.collected = collected; } } listener.onComplete(collected); }); return { 'ui': ui, 'listener': listener, 'customOnceBindCreateFolderClientEvent': customOnceBindCreateFolderClientEvent, 'getCollectedCount': function () { var count = 0; for (var i = 0; i < folders.length; i++) { var folder = folders[i]; if (folder.collected) { count++; } } return count; } }; })();