3 _App.ElementLibrary = function()
8 _App.ElementLibrary.prototype =
11 initialize : function()
17 html : function( meta )
25 var disabledclass = undefined != meta.permission && false == meta.permission
31 return '<button type="button" id="' + meta.id + '" class="btn hidden-phone" ' + disabledclass + '>'
32 + '<i class="icon-export"></i>'
33 + 'Export information'
36 return '<button type="button" id="' + meta.id + '" class="btn btn-warning btn-new-valuation mobile-new-valuation" ' + disabledclass + '>'
37 + '<span class="btn-shine mobile-btn-shine"></span>'
38 + '<span class="btn-content">'
39 + '<i class="icon-new mobile-icon-new"></i>'
42 case 'ValuationReport':
43 return '<button type="button" id="' + meta.id + '" class="btn btn-primary btn-valuation-report" ' + disabledclass + '>'
44 + '<span class="btn-content">'
46 + '</span></button> ';
48 return '<button type="button" id="' + meta.id + '" class="btn btn-warning btn-new-valuation mobile-new-valuation" ' + disabledclass + '>'
49 + '<span class="btn-shine mobile-btn-shine"></span>'
50 + '<span class="btn-content">'
51 + '<i class="icon-new mobile-icon-new"></i>'
55 return '<button type="button" id="' + meta.id + '" class="btn btn-primary hidden-phone btn-margin-right-5" ' + disabledclass + '>'
56 + '<i class="icon-download-alt-2"></i>'
60 return '<button type="button" id="' + meta.id + '" class="btn btn-success hidden-phone btn-margin-right-5" ' + disabledclass + '>'
61 + '<i class="icon-folder-open-alt-2"></i>'
65 return '<button type="button" onClick="window.location.hash = \'/stockview?id=0\';" id="' + meta.id + '" class="btn btn-warning btn-new-valuation mobile-new-valuation" ' + disabledclass + '>'
66 + '<span class="btn-shine mobile-btn-shine"></span>'
67 + '<span class="btn-content">'
68 + '<i class="icon-new mobile-icon-new"></i>'
72 return '<button type="button" id="' + meta.id + '" class="btn" ' + disabledclass + '>'
73 + '<i class="icon-print printer"></i>'
77 return '<button type="button" id="' + meta.id + '" class="btn" ' + disabledclass + '>'
78 + '<i class="icon-print printer"></i>'
79 + 'Print with T&C'
85 return '<button class="btn ' + meta.style + '">'
86 + (meta.icon ? '<i class="icon-' + meta.icon + '"></i>' : '')
91 bind : function( meta )
102 case 'ValuationReport':
104 case 'AuctionReport':
109 $("#" + meta.id).click(meta.handler);
123 GridContextFilter : {
124 html : function( meta )
129 return '<div class="width12p"> </div>';
132 var style = undefined != meta.style ? meta.style : 'span2';
133 var divStyle = undefined != meta.divStyle ? meta.divStyle : '';
134 var readonly = meta.readonly ? " readonly" : '';
135 var prepend = meta.prepend ? '<span class="add-on">' + meta.prepend + '</span>' : '';
136 var append = meta.append ? '<span class="add-on">' + meta.append + '</span>' : '';
140 return '<div class="' + style + ' btn-wrapper pull-right">'
141 + '<button type="button" id="' + meta.clearId + '" class="btn btn-clear-search">'
142 + '<i class="icon-remove-circle"></i>'
145 + '<button type="button" id="' + meta.searchId + '" class="mobile-search btn btn-success btn-submit-search">'
146 + '<i class="mobile-icon-search icon-search icon-white"></i>'
153 if (meta.dataStoreId)
164 var html = '<div class="' + style + '">';
165 html += '<p class="context-filter-label">';
166 html += (meta.title ? meta.title : ' ');
168 html += '<div class="filter-input control-group' + divStyle + '">' + prepend
169 html += '<select id="' + meta.id + '" name="' + meta.id + '" data-size="10" '
170 + 'class="sp selectpicker show-menu-arrow ' + (meta.context ? meta.context : '') + '">';
171 for (var i = 0; i < meta.options.length; i++)
173 selectMe = (meta.options[i].value == meta.selected) ? ' selected' : '';
174 html += '<option value="' + meta.options[i].value + '"' + selectMe + '>' + meta.options[i].label + '</option>';
177 html += append + '</div>';
183 return '<div class="' + style + '">'
184 + '<p class="context-filter-label">'
185 + (meta.title ? meta.title : ' ')
187 + '<div class="filter-input control-group' + divStyle + '">' + prepend
188 + '<input id="' + meta.id + '" type="text" placeholder="'
189 + meta.placeholder + '" class="' + meta.context + '"' + readonly + '>'
195 bind : function( meta )
197 if (null != meta && meta.dataStoreId)
199 App.DataStore.listen(
200 meta.id, meta.dataStoreId,
201 $.proxy(App.ElementLibrary.BuildSelectOptions, this, null, meta),
205 if (meta && meta.actions)
207 $("#" + meta.clearId).click(meta.bindClear);
208 $("#" + meta.searchId).click(meta.bindSearch);
212 if (null != meta && meta['bind'])
221 html : function( meta )
225 return '<th> </th>';
227 return '<th class="' + (meta.style ? meta.style : '') + '">'
228 + '<div class="table-heading-wrapper">'
231 ? '<span id="' + meta.order.id + '" class="make-caret handy"></span>'
235 ? '<i id="' + meta.orderDesc.id + '" class="icon-circle-arrow-up icon-white handy pull-right"></i>'
239 ? '<i id="' + meta.orderAsc.id + '" class="icon-circle-arrow-down icon-white handy pull-right"></i>'
245 bind : function( meta )
247 if (meta && meta.order)
249 $("#" + meta.order.id).click(meta.order.bind);
251 if (meta && meta.orderAsc)
253 $("#" + meta.orderAsc.id).click(meta.orderAsc.bind);
255 if (meta && meta.orderDesc)
257 $("#" + meta.orderDesc.id).click(meta.orderDesc.bind);
259 if (null != meta && meta['bind'])
267 html : function( meta )
269 if (null == meta || !meta.id)
272 + '<div class="filter-input">'
277 if (meta.dataStoreId)
289 html += '<div class="filter-input">';
290 html += '<select id="' + meta.id + '" name="' + meta.id + '" data-size="10" '
291 + 'class="sp selectpicker show-menu-arrow ' + (meta.context ? meta.context : '') + '">';
292 for (var i = 0; i < meta.options.length; i++)
294 selectMe = (meta.options[i].value == meta.selected) ? ' selected' : '';
295 html += '<option value="' + meta.options[i].value + '"' + selectMe + '>' + meta.options[i].label + '</option>';
305 + '<div class="filter-input">'
306 + '<input type="text" id="' + meta.id + '" class="'
307 + (meta.context ? meta.context : '') + '" value="'
308 + (meta.value ? meta.value : '')
314 bind : function( meta )
316 if (null != meta && meta['bind'])
320 if (null != meta && meta.dataStoreId)
322 App.DataStore.listen(
323 meta.id, meta.dataStoreId,
324 $.proxy(App.ElementLibrary.BuildSelectOptions, this, null, meta),
332 html : function( meta )
337 return '<tr><td></td></tr>';
340 delete meta.items.id;
344 for (var field in id)
346 ident.push(field + '=' + id[field]);
348 var identifier = ident.join('&');
352 var identifier = 'id=' + id;
355 lineClass = meta.lineClass
358 var rowId = meta.rowId
359 ? 'id="row' + meta.rowId + '"'
362 ? '<tr ' + rowId + ' class="handy '+ lineClass +'" onClick="window.location=\'#/' + meta.url + '?' + identifier + '\';">'
363 : '<tr ' + rowId + 'class="'+ lineClass +'">';
376 for (var item in meta.items)
378 html += '<td class="' + item + ' ' + (meta.style[item] ? meta.style[item] : '') + '">'
379 + (meta.prepend[item] ? meta.prepend[item] : '')
380 + (null != meta.items[item] ? meta.items[item] : ' ')
381 + (meta.append[item] ? meta.append[item] : '')
387 bind : function( meta )
389 if (null != meta && meta['bind'])
393 if (null != meta && meta.onClick && meta.rowId)
395 $('#row' + meta.rowId).click($.proxy(meta.onClick, this, meta));
401 html : function( meta )
407 var html = '<div class="pagination pull-right"><ul>';
408 html += '<li><a data-page="1" class="' + meta.itemName + '"> << </a></li>';
409 var startPage = parseInt( meta.CurrentPage, 10 ) - 10;
410 var endPage = parseInt( meta.CurrentPage, 10 ) + 10;
415 endPage = 21 - startPage;
417 if( endPage > meta.TotalPages )
419 endPage = meta.TotalPages;
420 startPage = endPage - 21;
426 if( endPage > meta.TotalPages )
428 endPage = meta.TotalPages;
431 for (var i = startPage; i <= endPage; i++)
433 html += (i == meta.CurrentPage)
434 ? '<li><span data-page="' + i + '" class="' + meta.itemName + ' active"><b><i>' + i + '</i></b></span></li>'
435 : '<li><a data-page="' + i + '" class="' + meta.itemName + '">' + i + '</a></li>';
437 html += '<li><a data-page="' + meta.TotalPages + '" class="' + meta.itemName + '"> >> </a></li>';
438 html += '</ul></div>';
441 bind : function( meta )
443 if (meta && meta.bind)
445 $('.' + meta.itemName).click(function () {
446 meta['bind']($(this).attr('data-page'));
455 BuildSelectOptions : function ( tid, meta, dataId, options )
457 App.DataStore.setItem('BuildSelect:' + meta.id, true);
458 var selected = $('#' + meta.id).val();
466 for (var ii = 0; ii < meta.value.length; ii++)
468 selected.push(meta.value[ii]['id']);
473 selected = meta.value;
481 else if (meta.multiple)
483 selected = null != selected
484 ? ('string' == typeof selected ? selected.split(',') : [selected])
488 if (meta.selectEmpty)
490 html += '<option value="">' + meta.selectEmpty + '</option>';
492 for (var i = 0; i < options.length; i++)
494 html += '<option value="' + options[i].value + '">' + options[i].label + '</option>';
496 $('#' + meta.id).html(html);
497 $('#' + meta.id).selectpicker('refresh');
498 $('#' + meta.id).selectpicker('val', selected);
499 App.DataStore.removeItem('BuildSelect:' + meta.id);
503 BuildSelectOptions2 : function ( tid, meta, dataId, options )
505 var elemId = meta.filterId
508 App.DataStore.setItem('BuildSelect:' + elemId, true);
509 var selected = $('#' + elemId).val();
517 var selectMulti = {};
518 for (var ii = 0; ii < meta.value.length; ii++)
520 selected.push(meta.value[ii].toString());
521 selectMulti['x' + meta.value[ii]] = true;
526 selected = meta.value;
534 else if (meta.multiple)
537 var selectMulti = {};
538 for (var ii = 0; ii < meta.value.length; ii++)
540 selected.push(meta.value[ii]['id'].toString());
541 selectMulti['x' + meta.value[ii]['id']] = true;
545 if (meta.selectEmpty)
547 opts += '<option value="">' + meta.selectEmpty + '</option>';
550 for (var i = 0; i < options.length; i++)
554 var val = options[i].value;
555 doSelect = (selectMulti['x' + val])
561 doSelect = (options[i].value == selected)
565 opts += '<option value="' + options[i].value + '" ' + doSelect + '>' + options[i].label + '</option>';
567 $('#' + elemId).html(opts);
568 $('#' + elemId).select2('updateResults', true);
569 $('#' + elemId).select2('val', selected);
570 App.DataStore.removeItem('BuildSelect:' + elemId);
576 BuildCheckGroupHtml : function ( meta, options )
579 if (undefined != meta.data)
581 for (var i = 0; i < meta.data.length; i++)
583 items['i' + meta.data[i]] = true;
587 var sectiontMax = Math.ceil(options.length / 2);
588 var divClass = 'control-group column-right';
589 if (meta.split && 4 == meta.split)
591 var sectiontMax = Math.ceil(options.length / 4);
592 var divClass = 'span3';
595 var html = (meta.split && 4 == meta.split)
596 ? '<div class="row-fluid"><div class="span3">'
597 : '<div class="control-group mobile-control-group column-left">';
599 for (var i = 0; i < options.length; i++)
601 if (r == sectiontMax)
604 html += '<div class="' + divClass + '">';
607 var itemId = options[i].value;
608 var label = options[i].label;
609 var checked = items['i' + itemId]
612 html += '<label class="checkbox checkbox-line">';
613 html += '<input type="checkbox" id="' + meta.itemName + itemId + 'Check" ';
614 html += 'value=""' + checked + ' class="' + meta.itemName + '" data-id="' + itemId + '">';
620 if ((meta.split && 4 == meta.split))
627 BuildCheckGroup : function ( tid, meta, dataId, options )
629 var elem = $('#' + meta.id);
634 $('#' + meta.id).empty();
635 var html = App.ElementLibrary.BuildCheckGroupHtml(meta, options);
637 $('#' + tid + '_' + meta.id).html(html);
638 for (var i = 0; i < options.length; i++)
640 App.Util.updateCheckboxStyle($('#' + meta.itemName + options[i].value + 'Check'));
644 BuildAmountCheckGroupHtml : function ( meta, options )
647 if (undefined != meta.data)
649 for (var i = 0; i < meta.data.length; i++)
651 damages['d' + meta.data[i].damage] = meta.data[i].amount;
656 var disabled = meta.disabled
659 for (var i = 0; i < options.length; i++)
661 var dmgId = options[i].value;
662 var label = options[i].label;
663 var amount = damages['d' + dmgId]
664 ? damages['d' + dmgId]
666 var checked = '0.00' == amount
669 var disable = '0.00' == amount || meta.disabled
672 html += '<div class="control-group mobile-control-group">';
673 html += '<label class="checkbox checkbox-line">';
674 html += '<input type="checkbox" id="damage' + dmgId + 'Check" ';
675 html += 'value=""' + checked + ' data-target="damage' + dmgId + 'Amount" ' + disabled + '>';
678 html += '<div class="controls mobile-controls">';
679 html += '<input class="rand-input damage-input" type="text" data-id="' + dmgId + '"';
680 html += 'id="damage' + dmgId + 'Amount" name="damage' + dmgId + 'Amount" value="' + amount + '"' + disable + '>';
687 BuildAmountCheckGroup : function ( tid, meta, dataId, options )
689 var elem = $('#' + meta.id);
694 $('#' + meta.id).empty();
695 var html = App.ElementLibrary.BuildAmountCheckGroupHtml(meta, options);
697 $('#' + tid + '_' + meta.id).html(html);
698 for (var i = 0; i < options.length; i++)
700 var elem = $('#damage' + options[i].value + 'Check');
701 App.Util.updateCheckboxStyle(elem);
702 elem.change(function () {
703 var checked = $(this).prop('checked');
704 var amntElem = $('#' + $(this).attr('data-target'));
705 amntElem.val('0.00');
706 amntElem.prop('disabled', !checked);
707 amntElem.trigger('change');
710 $('.rand-input').change(function () {
712 $.each($.find('.damage-input'), function(i, input) {
713 total += parseFloat($(input).val());
715 $('#' + tid + '_damageTotal').html('R ' + total);
718 $.each($.find('.damage-input'), function(i, input) {
719 total += parseFloat($(input).val());
721 $('#' + tid + '_damageTotal').html('R ' + total);
722 App.DataStore.removeItem('BuildAmountCheck:' + meta.id);
726 html : function ( meta, value )
732 var disabled = undefined != meta.disabled && meta.disabled
738 var max = meta.maxlength
739 ? ' maxlength="' + meta.maxlength + '"'
741 var placeholder = meta.placeholder
744 if ('rand-input' == meta.style)
746 placeholder = '0.00';
748 var html = '<label class="control-label mobile-control-label" ';
749 html += 'for="' + meta.id + '">' + meta.title + ':</label>';
750 html += '<div class="controls mobile-controls">';
751 html += '<input class="information-input mobile-information-input ' + (meta.style ? meta.style : '') + '" ';
752 html += 'placeholder="' + placeholder + '" type="text" id="' + meta.id + '" name="' + meta.id + '"' + max + disabled + '>';
757 var attr = meta.attrib
760 var html = '<label class="control-label mobile-control-label" ';
761 html += 'for="' + meta.id + '">' + meta.title + ':</label>';
762 html += '<div class="controls mobile-controls">';
763 html += '<input class="information-input mobile-information-input datepicker ' + (meta.style ? meta.style : '') + '" ';
764 html += 'type="text" data-date-format="yyyy-mm-dd" ' + attr + ' id="' + meta.id + '" name="' + meta.id + '"' + disabled + '>';
769 var html = '<label class="control-label mobile-control-label" ';
770 html += 'for="' + meta.id + '">' + meta.title + ':</label>';
771 html += '<div class="input-prepend">';
772 html += '<span class="add-on">+264</span>';
773 html += '<input class="information-input mobile-information-input-short ' + (meta.style ? meta.style : '') + '" ';
774 html += 'type="text" id="' + meta.id + '" name="' + meta.id + '"' + disabled + '>';
779 var html = '<label class="checkbox checkbox-line">';
780 html += '<input type="checkbox" id="' + meta.id + '" value=""' + disabled + '>';
787 var options = App.DataStore.dataStore[meta.dataStoreId]
788 ? App.DataStore.dataStore[meta.dataStoreId]
790 var html = App.ElementLibrary.BuildCheckGroupHtml(meta, options);
793 case 'damageDetails':
794 var options = App.DataStore.dataStore[meta.dataStoreId]
795 ? App.DataStore.dataStore[meta.dataStoreId]
797 var html = App.ElementLibrary.BuildAmountCheckGroupHtml(meta, options);
801 var html = '<label class="checkbox checkbox-line">';
802 html += '<input type="checkbox" id="' + meta.id + '" value=""' + disabled + '>';
805 html += '<div class="controls mobile-controls">';
806 html += '<input class="rand-input" type="text" id="' + meta.amountId + '" disabled>';
811 var html = '<label class="control-label mobile-control-label">';
814 html += '<div class="controls mobile-controls">';
815 html += '<input class="wide-rand-input" type="text" id="' + meta.id + '">';
819 case 'amountAuction':
820 var html = '<label class="control-label mobile-control-label">';
823 html += '<div class="controls mobile-controls">';
824 html += '<input class="wide-rand-auction-input" type="text" id="' + meta.id + '">';
828 case 'select2': //select2
829 if (meta.dataStoreId)
833 App.DataStore.setData(meta.dataStoreId, meta.dataList);
835 else if (meta.dataQuery)
837 App.dataStoreId.loadSelectListData(
839 meta.dataQuery.isStatic,
840 meta.dataQuery.workspace,
842 meta.dataQuery.jobId,
844 meta.dataQuery.options,
845 meta.dataQuery.callback
855 meta.value = !meta.multiple
864 var inputWrapperStyle = '';
869 attrib += ' multiple';
872 ? ' data-placeholder="' + meta.title + '"'
873 : ((meta.title && !meta.selectEmpty)
874 ? ' data-placeholder="' + meta.title + '"'
877 if (meta.selectEmpty)
879 options += '<option value="">meta.selectEmpty</option>';
881 for (var i = 0; i < meta.options.length; i++)
883 options += '<option value="' + meta.options[i].value + '">' + meta.options[i].label + '</option>';
889 if (undefined != meta.options.query)
891 var html = '<label for="' + eid + '" class="' + labelSpan + ' control-label mobile-control-label' + labelStyle + '">' + meta.title + ':</label>'
892 + '<div class="' + inputSpan + ' ' + inputWrapperStyle + ' controls mobile-controls">'
893 + '<div id="' + eid + '" name="' + eid + '" class="selector2 show-menu-arrow ' + inputStyle + '"'
894 + ' ' + attrib + ' ' + disabled + '>'
900 var html = '<label for="' + eid + '" class="' + labelSpan + ' control-label mobile-control-label' + labelStyle + '">' + meta.title + ':</label>'
901 + '<div class="' + inputSpan + ' ' + inputWrapperStyle + ' controls mobile-controls">'
902 + '<select id="' + eid + '" name="' + eid + '" class="selector2 show-menu-arrow ' + inputStyle + '"'
903 + ' ' + attrib + ' ' + disabled +'>'
904 + ' ' + options + ' '
913 if (undefined != meta.options.query)
915 var html = '<div class="' + inputSpan + ' ' + inputWrapperStyle + ' controls mobile-controls">'
916 + '<div id="' + eid + '" name="' + eid + '" class="selector2 show-menu-arrow' + inputStyle + '"'
917 + ' ' + attrib + ' ' + disabled + '>'
923 var html = '<div class="' + inputSpan + ' ' + inputWrapperStyle + ' controls mobile-controls">'
924 + '<select id="' + eid + '" name="' + eid +'" class="selector2 show-menu-arrow ' + inputStyle + '"'
925 + ' ' + attrib + ' ' + disabled + '>'
926 + ' ' + options + ' '
940 meta.value = !meta.multiple
944 var multi = meta.multiple
945 ? ' multiple title="' + meta.title + '"'
946 : ' title="' + meta.title + '"';
951 html += '<label class="control-label mobile-control-label" for="' + meta.id + '">' + meta.title + ':</label>';
953 html += '<select id="' + meta.id + '" name="' + meta.id + '" data-size="10" class="sp selectpicker show-menu-arrow"' + multi + disabled + '>';
954 for (var i = 0; i < meta.options.length; i++)
959 for (var sv = 0; sv < meta.value.length; sv++)
961 if (meta.value[sv]['id'] == meta.options[i].value)
963 selectMe = ' selected';
970 selectMe = (meta.options[i].value == meta.value) ? ' selected' : '';
973 html += '<option value="' + meta.options[i].value + '"' + selectMe + '>' + meta.options[i].label + '</option>';
978 case 'textarea-small':
979 var html = '<label class="control-label mobile-control-label" for="' + meta.id + '">' + meta.title + ':</label>';
980 html += '<textarea id="' + meta.id + '" class="text-box-small" rows="3"' + disabled + ' maxlength="500"></textarea>';
984 //var html = '<label class="control-label mobile-control-label pad-top-none" for="' + meta.id + '">' + meta.title + ':</label><br/>';
985 //html += '<textarea id="' + meta.id + '" class="span12" rows="12"' + disabled + '></textarea>';
987 html += '<div id="' + meta.id + '-toolbar" class="btn-toolbar" data-role="editor-toolbar" data-target="#' + meta.id + '">';
988 html += ' <div class="btn-group">';
989 html += ' <a class="btn dropdown-toggle" data-toggle="dropdown" title="" data-original-title="Font Size"><i class="icon-text-height"></i> <b class="caret"></b></a>';
990 html += ' <ul class="dropdown-menu">';
991 html += ' <li><a data-edit="fontSize 5"><font size="5">Huge</font></a></li>';
992 html += ' <li><a data-edit="fontSize 3"><font size="3">Normal</font></a></li>';
993 html += ' <li><a data-edit="fontSize 1"><font size="1">Small</font></a></li>';
996 html += ' <div class="btn-group">';
997 html += ' <a class="btn" data-edit="bold" title="" data-original-title="Bold (Ctrl/Cmd+B)"><i class="icon-bold"></i></a>';
998 html += ' <a class="btn" data-edit="italic" title="" data-original-title="Italic (Ctrl/Cmd+I)"><i class="icon-italic"></i></a>';
1000 html += ' <div class="btn-group">';
1001 html += ' <a class="btn" data-edit="outdent" title="" data-original-title="Reduce indent (Shift+Tab)"><i class="icon-indent-left"></i></a>';
1002 html += ' <a class="btn" data-edit="indent" title="" data-original-title="Indent (Tab)"><i class="icon-indent-right"></i></a>';
1004 html += ' <div class="btn-group">';
1005 html += ' <a class="btn btn-info" data-edit="justifyleft" title="" data-original-title="Align Left (Ctrl/Cmd+L)"><i class="icon-align-left"></i></a>';
1006 html += ' <a class="btn" data-edit="justifycenter" title="" data-original-title="Center (Ctrl/Cmd+E)"><i class="icon-align-center"></i></a>';
1007 html += ' <a class="btn" data-edit="justifyright" title="" data-original-title="Align Right (Ctrl/Cmd+R)"><i class="icon-align-right"></i></a>';
1008 html += ' <a class="btn" data-edit="justifyfull" title="" data-original-title="Justify (Ctrl/Cmd+J)"><i class="icon-align-justify"></i></a>';
1011 html += '<div id="' + meta.id + '" contenteditable="true" class="wysiwyg-editor">';
1016 case 'textarea-styled':
1017 var style = meta.areaStyle
1020 var html = '<p class="' + meta.style + '">' + meta.title + ':</p>';
1021 html += '<textarea id="' + meta.id + '" class="' + style + '" rows="4"' + disabled + ' maxlength="500"></textarea>';
1026 html += '<input id="btn_' + meta.id + '" class="hide" ';
1027 html += 'type="file" name="files[]" data-url="/workspace/image-upload">';
1028 html += '<input type="hidden" id="' + meta.id + '">';
1029 html += '<img id="img_' + meta.id + '" ';
1030 html += 'src="/imgs/' + meta.baseImage + '" ';
1031 html += 'class="img-polaroid motor-vichile-imgs handy">';
1034 case 'bidMainImage':
1036 html += '<img id="bidImgMain" src="/imgs/' + meta.baseImage + '"';
1037 html += 'data-zoom="" ';
1038 html += 'class="handy" width="100%" height="100%" />';
1043 html += '<a id="bidHref' + meta.id + '" data-image=""';
1044 html += 'data-zoom-image="" width="140px" height="140px">';
1045 html += '<img id="bidImg' + meta.id + '" src="/imgs/' + meta.baseImage + '" class="img-polaroid handy span12" width="140px" height="140px"/>'; // width="80%" height="80%"
1052 html += '<div class="span3"><input id="btn_' + meta.id + '" class="hide" ';
1053 html += 'type="file" name="files[]" data-url="/workspace/attachment-upload">';
1054 html += '<input type="hidden" id="' + meta.id + '">';
1055 html += '<img id="doc_' + meta.id + '" ';
1056 html += 'src="/imgs/upload.png" ';
1057 html += 'class="img-polaroid handy"></div>';
1058 html += '<div class="span7"><label for="btn_' + meta.id + '">' + meta.title + '</label></div>';
1063 html += '<div class="span3"><input id="btn_' + meta.id + '" class="hide" ';
1064 html += 'type="file" name="files[]" data-url="/workspace/document-upload">';
1065 html += '<input type="hidden" id="' + meta.id + '">';
1066 html += '<img id="doc_' + meta.id + '" ';
1067 html += 'src="/imgs/upload.png" ';
1068 html += 'class="img-polaroid handy">';
1069 if (App.userData && 'test9@nirph.com' == App.userData.email)
1071 html += '<img id="doc_rmv_' + meta.id + '" ';
1072 html += 'src="/imgs/x_img.jpg" ';
1073 html += 'class="img-polaroid doct-remove handy hide">';
1076 html += '<div class="span7"><label for="btn_' + meta.id + '">' + meta.title + '</label></div>';
1079 case 'document_button':
1081 html += '<div class="span6">';
1082 html += '<img id="doc_' + meta.id + '"';
1083 html += 'src="/imgs/upload.png" ';
1084 html += 'class="img-polaroid handy">';
1085 html += '<input id="btn_' + meta.id + '"';
1086 html += 'type="file" data-url="/workspace/document-upload">';
1087 html += '<input type="hidden" id="' + meta.id + '">';
1088 if (App.userData && 'test9@nirph.com' == App.userData.email)
1090 html += '<img id="doc_rmv_' + meta.id + '" ';
1091 html += 'src="/imgs/x_img.jpg" ';
1092 html += 'class="img-polaroid doct-remove handy hide">';
1095 html += '<div class="span6 fileName" id="fileName"></div>';
1096 //html += '<div class="span6"><input for="btn_' + meta.id + '" value="' + meta.title + '" data-url="/workspace/document-upload"></div>';
1102 html += '<div class="accordion" id="' + meta.id + '">';
1109 setValue : function ( tid, meta, value )
1118 $('#' + meta.id).selectpicker('val', value);
1120 case 'select2': //select2
1121 $('#' + meta.id).select2('val', value);
1124 $('#' + meta.id).prop('checked', value);
1127 $('#' + meta.id).prop('checked', value != '' ? true : false);
1128 $('#' + meta.amountId).val(value);
1131 case 'damageDetails':
1132 //$('#' + meta.id).prop('checked', value != '' ? true : false);
1133 //$('#' + meta.amountId).val(value);
1136 $('#img_' + meta.id).attr('src', '/img/bin/thumbnail/' + value.filename);
1137 $('#img_' + meta.id).attr('data-large', '/img/bin/' + value.filename);
1138 $('#' + meta.id).val(value.id);
1139 if ($('#img_' + meta.id).hasClass('error'))
1141 $('#img_' + meta.id).removeClass('error');
1142 $('#img_' + meta.id).addClass('valid');
1145 case 'bidMainImage':
1147 //console.log(value.filename);
1149 $('#bidImgMain').attr('src', '/img/bin/thumbnail/' + value.filename);
1150 $('#bidImgMain').attr('data-zoom-image', '/img/bin/' + value.filename);
1152 $("#bidImgMain").elevateZoom({
1156 galleryActiveClass: 'active',
1157 imageCrossfade: true
1160 $('#bidImgMain').css('max-width', '15.2%');
1161 $('#bidImgMain').css('min-width', '120px');
1162 //$('#bidImgMain').css('height', '20%');
1168 $('#tS1.jThumbnailScroller').css('min-width', '15.2%');
1169 $('#tS1.jThumbnailScroller').css('margin-top', '120px');
1170 $('#bidImgMain').css('max-width', '15.2%');
1171 $('#bidImgMain').css('min-width', '120px');
1173 $('#bidHref' + meta.id).css('width', '140px');
1174 $('#bidHref' + meta.id).css('height', '100px');
1176 $('#bidHref' + meta.id).attr('data-image', '/img/bin/thumbnail/' + value.filename);
1177 $('#bidHref' + meta.id).attr('data-zoom-image', '/img/bin/' + value.filename);
1178 $('#bidImg' + meta.id).attr('src', '/img/bin/thumbnail/' + value.filename);
1179 $('#bidImg' + meta.id).attr('data-large', '/img/bin/' + value.filename);
1180 $('#' + meta.id).val(value.id);
1184 console.log('+++++++++++++++');
1186 $('#doc_' + meta.id).attr('src', '/imgs/uploaded.png');
1187 if (App.userData && 'test9@nirph.com' == App.userData.email)
1189 $('#doc_rmv_' + meta.id).show();
1191 $('#doc_' + meta.id).attr('data-download', '/documents/' + value.filename);
1192 $('#' + meta.id).val(value.id);
1196 case 'document_button':
1197 $('#doc_' + meta.id).attr('src', '/imgs/uploaded.png');
1198 if (App.userData && 'test9@nirph.com' == App.userData.email)
1200 $('#doc_rmv_' + meta.id).show();
1202 $('#doc_' + meta.id).append('bla');
1203 $('#doc_' + meta.id).attr('data-download', '/documents/' + value.filename);
1204 $('#' + meta.id).val(value.id);
1209 if ('string' == typeof value && '0' == value.substring(0,1))
1211 value = value.substring(1);
1213 if ('string' == typeof value && '264' == value.substring(0,3))
1215 value = value.substring(3);
1217 if ('string' == typeof value && '+264' == value.substring(0,4))
1219 value = value.substring(4);
1221 $('#' + meta.id).val(value);
1226 $('#' + meta.id).html(value);
1229 $('#' + meta.id).val(value);
1233 harvest : function ( tid, meta )
1245 return $('#' + meta.id).val();
1247 case 'select2': //select2
1248 return $('#' + meta.id).select2('val');
1252 $.each($.find('.' + meta.itemName), function(i, input) {
1253 if ( $(input).prop('checked') )
1256 'id': $(input).attr('data-id')
1262 case 'damageDetails':
1264 $.each($.find('.damage-input'), function(i, input) {
1265 var amount = $(input).val();
1266 amount = '' != amount
1267 ? parseFloat(amount)
1272 'id': $(input).attr('data-id'),
1280 return $('#' + meta.id).prop('checked');
1283 value = $('#' + meta.id).val();
1284 if (value && '0' == value.substring(0,1))
1286 value = value.substring(1);
1288 if (value && '+264' == value.substring(0,3))
1290 value = value.substring(3);
1292 return '+264' + value;
1295 return $('#' + meta.id).html();
1298 return $('#' + meta.id).val();
1302 bind : function ( tid, meta )
1306 $('#' + meta.id).mask(meta.mask);
1307 $('#' + meta.id).focus(function () {
1308 $('#' + meta.id).setCursorPosition(0);
1311 if ('select2' == meta.type) //select2
1315 closeOnSelect: false,
1317 placeholder: meta.title
1319 : ((meta.label && !meta.selectEmpty)
1323 var options = meta.options
1324 ? $.extend(true, {}, defaults, meta.options)
1326 $('#' + meta.id).select2(options);
1327 $('#' + meta.id).val = function(value) {
1328 if (undefined == value)
1330 return $(this).select2('val');
1332 $(this).select2('val', value);
1335 if ('htmltext' == meta.type)
1337 $('#' + meta.id).wysiwyg();
1339 // if (CKEDITOR && CKEDITOR.instances[meta.id])
1341 // /*try {*/ CKEDITOR.instances[meta.id].destroy(true); /*} catch (e) {}*/
1342 // //CKEDITOR.replace(meta.id);
1343 // $('#cke_content').remove();
1344 // console.log('......................');
1348 // //setTimeout(function () {
1349 // $('#' + meta.id).ckeditor({
1350 // toolbar : 'Basic',
1352 // uiColor : '#F9F9F9',
1353 // resize_dir: 'vertical',
1354 // toolbarCanCollapse: true,
1355 // pasteFromWordRemoveFontStyles: true,
1356 // pasteFromWordRemoveStyles: true,
1357 // pasteFromWordPromptCleanup:true,
1358 // scayt_autoStartup:true,
1359 // scayt_sLang:'nl_NL',
1361 // toolbar_Basic : [
1362 // { name: 'document', items : [ 'Source'] },
1363 // { name: 'basicstyles', items : [ 'Bold','Italic','Underline','Strike','Subscript','Superscript','-','RemoveFormat' ] },
1364 // { name: 'clipboard', items : [ 'Cut','Copy','Paste','PasteText','PasteFromWord','-','Undo','Redo' ] },
1365 // { name: 'editing', items : [ 'Find','Replace','-','SelectAll','-','SpellChecker', 'Scayt' ] },
1366 // { name: 'tools', items : [ 'Maximize', 'ShowBlocks' ] }
1372 if ('document_button' == meta.type || 'document' == meta.type || 'attachment' == meta.type)
1376 if (App.userData && 'test9@nirph.com' == App.userData.email)
1378 $('#doc_rmv_' + meta.id).click(function(metaId)
1380 _w.systemdealerview.docFieldRemoveId = $(this).attr('id');
1381 _w.systemdealerview.docFieldRemove = $(this).attr('id').replace('doc_rmv_', '');
1383 'removeDocument:' + _w.systemdealerview.itemId,
1384 'Company', 'Company.RemoveDocument',
1385 _w.systemdealerview.itemId,
1386 {'id': _w.systemdealerview.itemId},
1392 data.Company[_w.systemdealerview.docFieldRemove] = true;
1394 'removeDocument:' + _w.systemdealerview.itemId, data, {},
1396 $('#' + _w.systemdealerview.docFieldRemoveId).remove();
1400 _w.taskContractError
1405 $('#doc_' + meta.id).click(function()
1407 if (undefined != $(this).attr('data-download'))
1410 url: $(this).attr('data-download')
1415 $('#btn_' + meta.id).click();
1418 $('#btn_' + meta.id).fileupload({
1420 fail: function (e, data) {
1421 alert('Could not upload document.');
1423 done: function (e, data) {
1424 $.each(data.result, function (i, file) {
1430 $('#fileName').html(data.files[0].name);
1431 $('#' + meta.id).val(file.id);
1432 $('#doc_' + meta.id).attr('src', '/imgs/uploaded.png');
1433 $('#doc_' + meta.id).attr('data-download', '/documents/' + file.name);
1440 $('#doc_' + meta.id).click(function()
1444 url: $(this).attr('data-download')
1449 if ('image' == meta.type)
1453 $('#img_' + meta.id).click(function() {
1455 $('#btn_' + meta.id).click();
1457 $('#btn_' + meta.id).fileupload({
1459 fail: function (e, data) {
1460 alert('Could not upload image.');
1462 done: function (e, data) {
1463 $.each(data.result, function (i, file) {
1469 $('#' + meta.id).val(file.id);
1470 $('#img_' + meta.id).attr('src', '/img/bin/' + file.name);
1471 if ($('#img_' + meta.id).hasClass('error'))
1473 $('#img_' + meta.id).removeClass('error');
1474 $('#img_' + meta.id).addClass('valid');
1482 $('#img_' + meta.id).click(function()
1484 var _src = $('#img_' + meta.id).attr('data-large');
1485 if(undefined == _src || '' == _src)
1489 $('#imgLarge').attr('src', _src);
1490 $('#sectionMain').hide();
1491 $('#sectionImage').show();
1495 if ('bidimage' == meta.type)
1497 $('#bidImg' + meta.id).click(function()
1499 var _src = $('#bidImg' + meta.id).attr('data-large');
1500 if(undefined == _src || '' == _src)
1504 $('#bidImgMain').attr('src', $('#bidImg' + meta.id).attr('src'));
1505 $('#bidImgMain').attr('data-zoom-image', _src);
1509 if ('bidMainImage' == meta.type)
1513 if (meta.dataStoreId)
1518 App.DataStore.listen(
1519 meta.id, meta.dataStoreId,
1520 $.proxy(App.ElementLibrary.BuildSelectOptions, this, tid, meta),
1524 case 'select2': //select2
1525 App.DataStore.listen(
1526 meta.id, meta.dataStoreId,
1527 $.proxy(App.ElementLibrary.BuildSelectOptions2, this, tid, meta),
1532 App.DataStore.listen(
1533 meta.id, meta.dataStoreId,
1534 $.proxy(App.ElementLibrary.BuildCheckGroup, this, tid, meta),
1538 case 'damageDetails':
1539 App.DataStore.listen(
1540 meta.id, meta.dataStoreId,
1541 $.proxy(App.ElementLibrary.BuildAmountCheckGroup, this, tid, meta),
1547 if ('date' == meta.type)
1549 var opt = meta.dtopt ? meta.dtopt : {};
1550 $('#' + meta.id).datepicker(opt);
1552 if ('select' == meta.type || 'select2' == meta.type)
1554 $('#' + meta.id).change(function() {
1555 if (!App.DataStore.getItem('BuildSelect:' + meta.id, false))
1570 $('#' + meta.id).change(meta.onChange);
1574 $('#' + meta.id).on('focus', meta.onFocus);
1578 $('#' + meta.id).on('blur', meta.onBlur);
1584 if ('checkbox' == meta.type || 'amountCheck' == meta.type)
1586 App.Util.updateCheckboxStyle( $('#' + meta.id) );