hobodave (owner)

Revisions

gist: 221881 Download_button fork
public
Public Clone URL: git://gist.github.com/221881.git
Embed All Files: show embed
_itemSearch.js #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
document.observe('dom:loaded', function(event) {
// I just added this to see if it was a dom loading issue
window.displayItems = function(element, items) {
// have to add function to window since I'm within this stupid observe block
        alert(typeof searchVisibility)
    term = (element == 'itemList') ? 'Results' : 'Related Items';
 
    element = $(element);
    element.childElements().invoke('remove');
 
    if (items.length == 0) {
        alert('No ' + term + ' found.');
        element.previous('div.busy').hide();
        return;
    }
 
    var resultsHTML = '<dt>Results</dt>'
 
    var item_dd_template = new Template(
        '<dd class="itemResult">' +
        '<ul class="core">' +
        '<li class="img"><a href="#{href}" title="Image" class="lightview">#{img_link_text}</a></li>' +
        '<li class="name">#{name}</li>' +
        '<li #{sizeVisible} class="size">Size: <select class="sizeInput formInputSelect">#{size_options}</select></li>' +
        '<li #{qtyVisible} class="qty">Qty: <input class="formInputText qtyInput" value="1" type="text"/>' +
        '<span class="uom"> x #{uom}</span>' +
        '</li>' +
        '<li class="add"><input id="item_add_#{id}" class="formInputSubmit" type="submit" itemid="#{id}" value="Add"/></li>' +
        '<li #{viewRelatedVisible} class="related"><input id="item_related_#{id}" class="formInputSubmit" class="formInputSubmit" type="submit" itemid="#{id}" value="View Related"/></li>' +
        '</ul>' +
        '<div class="description">#{description}</div>' +
        '</dd>'
    );
 
    var size_option_template = new Template(
      '<option value="#{id}::#{name}::#{cost}" label="#{name}">#{name}</option>'
    )
 
    items.each(function(i) {
 
        itemMap.set(i.id, i);
 
        templateData = {
            id: i.id,
            href: baseUrl+"/files/"+i.image.id+".jpg",
            name: i.name,
            uom: i.unitOfMeasure,
            description: i.description,
            img_link_text: (i.image.id) ? 'img' : '',
 
            sizeVisible: (searchVisibility.size) ? '' : 'style="display:none;"',
            qtyVisible: (searchVisibility.qty) ? '' : 'style="display:none;"',
            viewRelatedVisible: (searchVisibility.viewRelated) ? '' : 'style="display:none;"'
        }
 
        var size_options = ''
        i.availableSizes.each(function(size) {
          size_options += size_option_template.evaluate({
            id: i.id,
            name: size.name,
            cost: size.cost
          })
        })
 
        templateData.size_options = size_options
        resultsHTML += item_dd_template.evaluate(templateData)
    })
 
    element.innerHTML = resultsHTML
 
 
    $$('a.lightview').each(function(anchor) {
        new Control.Window(anchor, {
            closeOnClick: true,
            className: 'modal',
            fade: true
        })
    })
    element.previous('div.busy').hide()
 
}
})
_itemSearch.phtml #
1
2
3
4
5
6
7
    <script type="application/javascript">
    var searchVisibility = {
        size: <?= dConfig::getCompany('show.size') ? 'true' : 'false' ?>,
        qty: <?= dConfig::getCompany('show.quantity') ? 'true' : 'false' ?>,
        viewRelated: <?= dConfig::getCompany('show.view_related') ? 'true' : 'false' ?>
    }
    </script>