summaryrefslogtreecommitdiff
path: root/httemplate/edit/part_pkg_taxoverride.html
blob: ba709ce6405aaff1f8023187082aface69694296 (plain)
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<% include('/elements/header-popup.html', 'Override taxes', '', 'onload="resizeFrames()"') %>

<TABLE WIDTH="100%" HEIGHT="100%">
  <TR><TD>
    <iframe name="selected" src="<% $p %>browse/tax_class.html?_type=select;magic=select;maxrecords=15;offset=<% $selected_offset %>;selected=<% $selected %>;" width="100%" frameborder="0" border="0" id="selectorSelected" scrolling="no">
</iframe>
    <BR>
  </TD></TR>

  <TR><TD>
<FORM="dummy">
  <CENTER>
    <INPUT type="submit" value="Finish" onclick="s=fetchSelected(); s.shift(); parent.document.getElementById('tax_override').value=s.toString(); parent.cClick();">
    <INPUT type="reset" value="Cancel" onclick="parent.cClick();">
  </CENTER>
</FORM>
  </TD></TR>

  <TR><TD>
    <iframe name="unselected" src="<% $p %>browse/tax_class.html?_type=select;magic=omit;maxrecords=15;offset=<% $unselected_offset %>;omit=<% $selected %>;" width="100%" frameborder="0" border="0" id="selectorUnselected" scrolling="no">
</iframe>
    <BR>
  </TD></TR>

</TABLE>
<SCRIPT>

    function resizeFrames() {
      //frames['selected'].style.height =
      //  frames['selected'].contentWindow.document.body.scrollHeight + "px";
      //frames['unselected'].style.height =
      //  frames['unselected'].contentWindow.document.body.scrollHeight + "px";
      var f = document.getElementById('selectorSelected');
      f.style.height = f.contentWindow.document.body.scrollHeight + "px";
      var f = document.getElementById('selectorUnselected');
      f.style.height = f.contentWindow.document.body.scrollHeight + "px";
    }

    function fetchOffset(search) {
      var value = 0;
      if (search.length > 1) {
        var params = search.split(';');
        for (i=0; i<params.length; i++) {
          if (params[i].substr(0,7) == 'offset=') {
            value = params[i].substr(7);
          }
        }
      }
      return value;
    }

    function fetchOffsetStrings() {
      return 'selected_offset=' +
             fetchOffset(frames['selected'].location.search) + ';' +
             'unselected_offset=' +
             fetchOffset(frames['unselected'].location.search) + ';';
    }

    function fetchSelected() {
      var i;
      var selected = new Array;
      var replace = '?';
      if (window.location.search.length > 1) {
        var search = window.location.search.substr(1).split(';');
        for (i=0; i<search.length; i++) {
          if (search[i].substr(0,9) == 'selected=') {
            selected = search[i].substr(9).split(',')
          }else if (search[i].substr(0,16) ==   'selected_offset=') {
          }else if (search[i].substr(0,18) == 'unselected_offset=') {
          }else if (search[i].length) {
            replace += search[i] + ';';
          }
        }
      }
      selected.unshift(replace);
      return selected;
    }
    function doUnselect(classnum) {
      var selected = fetchSelected();
      var search = selected.shift();
      //alert("discovered: "+selected.toString());
      var i=-1, j=-1, k=selected.length;
      while(++j < k) {
        if (!(selected[j]==classnum)) {
          selected[++i]=selected[j];
        }
      }
      selected.length = ++i;
      //alert("finished: "+selected.toString());

      search += "selected=" + selected.toString() + ';';
      window.location.search = search + fetchOffsetStrings();
    }
    function doSelect(classnum) {
      var selected = fetchSelected();
      var search = selected.shift();
      selected.push(classnum);
      search += "selected=" + selected.toString() + ';';
      window.location.search = search + fetchOffsetStrings();
    }
</SCRIPT>

<% include('/elements/footer.html') %>
<%once>

my $conf = new FS::Conf;

</%once>
<%init>

die "access denied"
  unless $FS::CurrentUser::CurrentUser->access_right('Configuration');


my $selected_offset = $1
  if $cgi->param('selected_offset') =~/^(\d+)$/;

my $unselected_offset = $1
  if $cgi->param('unselected_offset') =~/^(\d+)$/;

my $selected = $1
  if $cgi->param('selected') =~/^([,\d]+)$/;

</%init>