Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
5050 dpurdie 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'   sdk_versions.asp
4
'   This file is designed to be injected (loaded) into a 'div' on a window
5
'
6
'   Display the SDK Versions available for the specified SDK
7
'   Allow selection of an SDK Version
8
'       - To be edited
9
'       - Allow filering of SDK Versions
10
'       - Allow state change of versions
11
'       - Allow creation of new versions
12
'   
13
%>
5080 dpurdie 14
<%
15
Option explicit
16
' Good idea to set when using redirect
17
Response.Expires = 0   ' always load the page, dont store
18
%>
19
<!--#include file="common/conf.asp"-->
20
<!--#include file="common/globals.asp"-->
21
<!--#include file="common/formating.asp"-->
22
<!--#include file="common/qstr.asp"-->
23
<!--#include file="common/common_subs.asp"-->
24
<%
25
'------------ ACCESS CONTROL ------------------
26
%>
27
<!--#include file="_access_control_general.asp"-->
28
<%
29
'------------ Variable Definition -------------
30
Dim editMode
31
Dim modifyMode
32
'------------ Constants Declaration -----------
33
'------------ Variable Init -------------------
34
editMode = "disabled"
35
modifyMode = "disabled"
36
If canActionControl("AdminSdk") Then editMode = ""
37
If canActionControl("CreateSdk") Then modifyMode = ""
38
%>
5050 dpurdie 39
<script>
5055 dpurdie 40
//# sourceURL=sdk_versions.asp
5057 dpurdie 41
 
42
//  Populate the header of this page
43
//
44
//  Get getSdkVersionDetails
45
//      When this is complete we will populate the remainder of the
46
//      page.
5050 dpurdie 47
var table;
5057 dpurdie 48
var sdkDetails = {};
49
getAjaxData (
50
    "sdk_opr_json.asp",
51
    { action: "getSdkDetails", sdk_id : <%=Request("sdk_id")%> },
52
    function(data){
53
        sdkDetails = data.aaData;
54
        $("#sdk_section_head").text( sdkDetails.SDK_NAME);
55
        detailsAvailable();
56
    });    
57
 
58
//  Basic details are available
59
//      Configure the remainder of the widgets on the page
60
function detailsAvailable()
61
{
62
    //  Configure the Summary Table
63
    table = $('#sdk_versions').DataTable({
64
            deferRender: true,
65
            dom: "rtiS",
66
            sScrollY: $( document ).height() - 300,
67
            scrollCollapse: true,
68
            processing: true,
69
            retrieve:true,
70
            serverSide: true,
71
            ajax : {
72
                url : "sdk_versions_json.asp",
73
                data : function (o){
74
                    o.sdk_id = <%=Request("sdk_id")%>;
75
                    o.sdkstateFilter = getDisplayFilter();
76
                },
5050 dpurdie 77
            },
5055 dpurdie 78
 
5057 dpurdie 79
            ordering: true,
80
             order: [[ 1, "asc" ]],
81
             columns: [
82
                { data: "SDKTAG_ID", visible : false },
83
                { data: "SDKTAG_NAME", width: "20%", className: "dt-nowrap"  },
84
                { data: "DESCRIPTION" },
85
                { data: "CREATED_STAMP_TXT", className: "dt-nowrap" },
86
                { data: "CREATOR_NAME" , className: "dt-nowrap"},
87
                { data: "SDK_STATE", width: "5%"},
88
                { data: "SDK_EDIT", orderable: false },
89
                { data: "SDK_MODIFY", orderable: false },
90
            ],
91
            });
5050 dpurdie 92
 
5055 dpurdie 93
//  Process each row of table data before it is presented to the table scroller
94
//  Process the raw Ajax data
95
//      Add 'Edit' box
96
//      Decode State
97
$('#sdk_versions').on('xhr.dt', function ( e, settings, json ) {
98
        json.aaData.forEach(function(row){
5080 dpurdie 99
            row.SDK_EDIT   = "<button <%=editMode%> class='rmbutton editSdk' data-sdktag_id='" + row.SDKTAG_ID + "' title='Edit Version Name and Description'>Edit</button>";
100
            row.SDK_MODIFY = "<button <%=modifyMode%> class='rmbutton modifySdk' data-sdktag_id='" + row.SDKTAG_ID + "' title='Modify content of the SDK'>Modify</button>";
5055 dpurdie 101
 
102
            switch (row.SDK_STATE)
103
            {
104
            case 'U' : row.SDK_STATE = 'WIP'; break; 
105
            case 'R' : row.SDK_STATE = 'Released'; break; 
106
            case 'D' : row.SDK_STATE = 'Deprecated'; break; 
107
            default  : row.SDK_STATE = 'Unknown'; break; 
108
            }
109
        });
110
    } );
111
 
112
 
5050 dpurdie 113
// Highlight selected row
114
$('#sdk_versions tbody').on( 'click', 'tr', function () {
115
    if ( $(this).hasClass('selected') ) {
116
        $(this).removeClass('selected');
117
    }
118
    else {
119
        table.$('tr.selected').removeClass('selected');
120
        $(this).addClass('selected');
121
    }
122
} );
123
 
5055 dpurdie 124
// Edit Button
125
$('#sdk_versions tbody').on( 'click', '.editSdk', function (e) {
126
     var sdktag_id = $(this).data().sdktag_id;
127
     $('#popmenu').load('sdk_version_edit.asp', {sdktag_id : sdktag_id});
128
} );
129
 
130
// Modify Button
131
$('#sdk_versions tbody').on( 'click', '.modifySdk', function (e) {
132
     var sdktag_id = $(this).data().sdktag_id;
133
     $("#sdk_versions").trigger('newPageBody', {url: 'sdk_details.asp', data : {sdktag_id : sdktag_id}});
134
} );
135
 
136
//  Double click in row - Select the SDK Version for display/edit
5051 dpurdie 137
$('#sdk_versions tbody').on( 'dblclick', 'tr', function () {
138
    $("#sdk_versions").trigger('newPageBody', {url: 'sdk_details.asp', data : {sdktag_id : table.row(this).data().SDKTAG_ID}});
139
 
140
} );
141
 
5057 dpurdie 142
//  Display control changes
143
$('#sel_display').on('change', function(){
144
    if (getDisplayFilter() == '') {
145
        $('#sel_released').prop('checked', true)
146
    }
147
    console.log("Chnage detected:" + getDisplayFilter());
148
    table.ajax.reload();
149
});
150
 
151
function getDisplayFilter()
152
{
153
    var filter="";
154
    if ($('#sel_deprecated').is(':checked')){ filter += ",'D'"; }
155
    if ($('#sel_released').is(':checked'))  { filter += ",'R'"; }
156
    if ($('#sel_wip').is(':checked'))       { filter += ",'U'"; }
157
 
158
    return filter.substring(1);
159
}
160
 
5050 dpurdie 161
//  Wire up the 'Add' button
162
//  This will pop up a dialog loaded from an external file
163
//
164
$( '#addSdkVersion' ).click(function() {
5053 dpurdie 165
    $('#popmenu').load('sdk_version_add.asp', {sdk_id : <%=Request("sdk_id")%>});
5050 dpurdie 166
    });
167
 
168
//  Listen for any trigger to force the table to be refreshed
169
$('#sdk_versions').on("sdkVersionAdded", function(){
170
    table.ajax.reload();
171
    });
5057 dpurdie 172
}
5050 dpurdie 173
 
5057 dpurdie 174
 
175
function setInfo(txt) {
176
    $("#sdkd_info").text( txt);
177
}
178
 
179
function clearInfo(txt) {
180
    $("#sdkd_info").text(" ");
181
}
182
 
183
//  getAjaxData - with error processing
184
//      url - url to fetch
185
//      data    - additional data to pass to ajax request
186
//      success - function to call on success
187
function getAjaxData( url, data, success )
188
{
189
    clearInfo();
190
    $("#sdkd_progressBar").css('visibility', 'visible');
191
    $.ajax(
192
    {
193
        url : url,
194
        type: "POST",
195
        data : data,
196
        dataType : "json",
197
        cache: false,
198
        success:function(data, textStatus, jqXHR)
199
        {
200
            //data: return data from server
201
            //console.log ("UpdateData", data);
202
            if (data.result != 0)
203
            {
204
                setInfo("Error:" + ((data.error != 0) ? data.emsgSummary : "Reason not given"));
205
                if (data.error >= 0) disableForm();
206
                return;
207
            }
208
            //  call user success function
209
            if (jQuery.isFunction(success))
210
            {
211
                success(data);
212
            }
213
        },
214
        error: function(jqXHR, textStatus, errorThrown)
215
        {
216
            setInfo("Error:" + errorThrown);
217
            //if fails
218
        },
219
        complete : function()
220
        {
221
            $("#sdkd_progressBar").css('visibility', 'hidden');
222
        }
223
    });
224
 
225
}
226
 
5050 dpurdie 227
</script>
5057 dpurdie 228
<div class=rmbutton style="position:relative;background-color:#DAD7c8;height:38px;padding:7px;margin-bottom: 7px;">
229
 
230
    <div id=sel_display style="float:left">
231
        <fieldset style="padding:2px">
232
            <legend>Display</legend>
233
            <span>Deprecated</span> <input id=sel_deprecated type=checkbox>
234
            <span>Released</span>   <input checked id=sel_released type=checkbox>
235
            <span>WIP</span>        <input checked id=sel_wip type=checkbox>
236
        </fieldset>
237
    </div>
238
 
5050 dpurdie 239
</div>
5057 dpurdie 240
 
241
 
242
<div class="form_ttl tleft" id=sdk_section_head>
243
  <!-- Section Header ---->
244
  Sdk Name
245
</div>
5050 dpurdie 246
<div class="rounded_box">
247
    <table id=sdk_versions class="full_table" >
248
        <thead>
249
        <tr class="body_col form_align">
250
          <th width="1%"> SDK&nbsp;ID
251
          <th width="10%"> Version
252
          <th> Description
5055 dpurdie 253
          <th> Created
254
          <th> By
5050 dpurdie 255
          <th width="1%"> State
256
          <th width="1%"> Edit
5055 dpurdie 257
          <th width="1%"> Mod
5050 dpurdie 258
        </thead>
259
    </table>
5057 dpurdie 260
    <div class=bg_dialog style="position:relative">&nbsp;
5050 dpurdie 261
        <span id="addSdkVersion" title="Add New SDK Version" style="float:left;">
262
            <img src="icons/btn_add.gif" width="13" height="13" align="absmiddle" border="0" hspace="3" >
263
            <a class=abtnItem>New</a>
264
        </span>
5057 dpurdie 265
 
266
  <!-- Info / Ajax Progress bar -->
267
  <div class='bg_dialog body_txt' style='float:left;min-height:1em;margin-left:1em' >
268
      <img id='sdkd_progressBar' style='visibility:hidden;position: absolute' src='icons/i_processing.gif' width='79' height='14'>
269
      <div id=sdkd_info  style='position: absolute;'></div>
270
  </div>
271
 
5050 dpurdie 272
    </div>
273
</div>