Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # =======================================================
- # = eProductCategoryFramework
- # Store methods for actions of product's category
- class eProductCategoryFramework
- AddTreeItems: (event) ->
- $tree = $(event.data.tree)
- $stree = $("#category_group_tree")
- ids = ''
- $tree.find(".etree-node-mark").each ->
- $node = $(this)
- ids += "," if ids.length > 0
- ids += GetNodeChildrenId $node
- CheckTreeNodeChildren $node, $stree
- $stree.append $node
- RefreshGroupList()
- ImportGroupProperties ids
- RemoveTreeItems: (event) ->
- $tree = $(event.data.tree)
- $stree = $("#group_tree")
- $tree.find(".etree-node-mark").each ->
- $node = $(this)
- data = $node.data()
- CheckTreeNodeChildren $node, $stree
- if data.parent_id is `undefined` # is root node
- $stree.append $node
- else
- # check if node have parent node
- parent = $node.parent()
- exceptNode = $node
- until parent[0] is $tree[0]
- parent.children().each ->
- curNode = $(this)
- $tree.append curNode unless curNode[0] is exceptNode[0]
- exceptNode = parent.parent()
- parent = exceptNode.parent()
- CheckTreeNodeParent exceptNode, data.parent_id, $stree
- RefreshGroupList()
- AddProperty: (category_id, item) ->
- container = "#properties_selected"
- return if $(container + " .product_category_property[data-property_id=" + item.id + "]").length > 0
- # get next index for property
- index = -1
- $(container + " .product_category_property").each ->
- curIndex = parseInt($(this).data().index)
- index = curIndex if curIndex > index
- index += 1
- $("#propertyTemplate").tmpl({ index: index, \
- category_id: category_id, \
- property_id: item.id, \
- is_main: item.is_main, \
- order: item.order, \
- text_after: item.text_after, \
- text_before: item.text_before, \
- title: item.title }).appendTo("#properties_selected");
- # AddProperty: (category_id, id) ->
- # $options = $(id).children "option:selected"
- # return if $options.length == 0
- #
- # index = -1
- # $("#properties_selected .product_category_property").each ->
- # curIndex = parseInt($(this).data().index)
- # index = curIndex if curIndex > index
- # index += 1
- # $options.each ->
- # value = $(this).val()
- # title = $(this).text()
- # $("#propertyTemplate").tmpl({ index: index, \
- # property_id: value, \
- # category_id: category_id, \
- # title: title }).appendTo("#properties_selected");
- # index += 1
- # $(this).remove()
- RemoveProperty: (object) ->
- $prop = $(object).parent()
- $prop.remove()
- UpdateShortTitleField: () ->
- title = $('#product_category_title').val()
- $short_title = $('#product_category_title_short')
- if title.length > 25
- $short_title.parents('.row').slideDown()
- else
- if $short_title.is(':visible')
- $short_title.val('')
- $short_title.parents('.row').slideUp()
- true
- CheckTreeNodeChildren = (node, tree) ->
- data = node.data()
- node.removeClass "etree-node-mark"
- node.find(".etree-node-panel").remove()
- nodeId = data.id
- children = tree.find("li[data-parent_id=" + nodeId + "]") # get child node
- node.children("ul").append children if children.length > 0 # find children nodes for node
- CheckTreeNodeParent = (node, parentId, tree) ->
- parent = tree.find("li[data-id=" + parentId + "]") # get parent node
- if parent.length is 1
- parent_ul = parent.children("ul")
- if parent_ul.length > 0
- parent_ul.append node
- else
- parent_ul = $('<ul></ul>')
- parent_ul.append node
- parent.append(parent_ul)
- parent.removeClass("etree-node-leaf")
- parent.addClass("etree-node-tree")
- else
- tree.append node
- RefreshGroupList = () ->
- ids = ""
- $("#category_group_tree li").each ->
- id = $(this).data().id
- ids += "," if ids.length > 0
- ids += id
- $("#product_category_group_set").val ids
- GetNodeChildrenId = (node) ->
- ids = node.data().id
- $(node).find("li").each ->
- ids += ","
- ids += $(this).data().id
- ids
- ImportGroupProperties = (group_ids) ->
- $.post "/console/product_property/for_groups/get", { group_ids: group_ids }, (items) ->
- for item in items
- # $("#properties_available option[value=" + item.id + "]").attr("selected", "selected")
- eProductCategoryFramework.prototype.AddProperty '0', item
- GetFormActionData = () ->
- form = $('#data_filter')
- [form.attr('action'), form.serialize()]
- ChangeBrowserUrl = (url) ->
- history.pushState(null, document.title, url)
- SendData = () ->
- [action, formData] = GetFormActionData()
- $.get(action, formData, null, 'script')
- ChangeBrowserUrl([action, formData].join('?'))
- StartSearch = (e) ->
- e.preventDefault()
- SendData()
- Init = () ->
- $('a#export').click (e) ->
- e.preventDefault()
- window.alert('product_category')
- [action, formData] = GetFormActionData()
- window.open([action + '.csv', formData].join('?'), '_blank')
- $('a#reset').click (e) ->
- $('#search').val('')
- $('#withoutmenus').prop('checked', false)
- StartSearch(e)
- $('input#search').keypress (e) ->
- return true unless e.keyCode == 13
- StartSearch(e)
- $('input#submit').click (e) ->
- StartSearch(e)
- $('#massRemoveBtn').click (e) ->
- formData = $('#data_filter').serializeArray()
- returnArray = {}
- for i in formData
- continue if i['name'] not in ['search', 'withoutmenus']
- returnArray[i['name']] = i['value']
- this.href += '?' + $.param(returnArray)
- $ ->
- window.eProductCategory = new eProductCategoryFramework()
- window.eProductCategory.Init()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement