Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
5051 dpurdie 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
4
'|  sdk_details.asp
5
'|  Edit an SDK Version
6
'|
7
'=====================================================
8
%>
9
<%
10
Option explicit
11
' Good idea to set when using redirect
12
Response.Expires = 0   ' always load the page, dont store
13
%>
14
<!--#include file="common/conf.asp"-->
15
<!--#include file="common/globals.asp"-->
16
<!--#include file="common/formating.asp"-->
17
<!--#include file="common/qstr.asp"-->
18
<!--#include file="common/common_subs.asp"-->
19
<%
20
'------------ ACCESS CONTROL ------------------
21
%>
22
<!--#include file="_access_control_general.asp"-->
23
<%
24
'------------ Variable Definition -------------
25
Dim parSdkTag_id
26
 
27
'------------ Constants Declaration -----------
28
'------------ Variable Init -------------------
29
parSdkTag_id = Request("sdktag_id")
30
if parSdkTag_id = "" Then parSdkTag_id = 0
31
%>
32
<script language="JavaScript" type="text/javascript">
33
//# sourceURL=sdk_details.asp
5052 dpurdie 34
 
35
//  Get getSdkVersionDetails
36
//      When this is complete we will populate the remainder of the
37
//      page.
38
var sdkDetails = {};
39
getAjaxData (
40
    "sdk_opr_json.asp",
41
    { action: "getSdkVersionDetails", sdktag_id : <%=parSdkTag_id%> },
42
    function(data){
43
        sdkDetails = data.aaData;
44
        $("#sdkd_section_head").text( sdkDetails.SDK_NAME + " : " + sdkDetails.SDKTAG_NAME);
5053 dpurdie 45
         $("#sel_state input[name=state]").val([sdkDetails.SDK_STATE]);
5052 dpurdie 46
        detailsAvailable();
47
    });    
48
 
5054 dpurdie 49
//  Populate the bulk of the display
50
//      Called once the sdkDetails have been delivered 
5052 dpurdie 51
function detailsAvailable()
52
{
53
    //  Initial population of the Ref SDK Names   
5053 dpurdie 54
    populateSdkNames(sdkDetails.SDK_ID);
55
    populateContent(<%=parSdkTag_id%>);    
5052 dpurdie 56
 
57
    $("#sel_sdkname").change(function(){
58
        populateSdkVersions( $("#sel_sdkname").val());
59
    });
60
 
61
    $("#chk_sdkversion").change(function(){
62
        populateSdkVersions( $("#sel_sdkname").val());
63
    });
64
 
65
    $("#sel_sdkversion").change(function(){
5054 dpurdie 66
        $('#sdk_content').dataTable().api().ajax.reload();
5052 dpurdie 67
    });
68
 
69
    //  Detect change to the packages displayed
70
    //      Redisplay on change       
71
    $("#sel_exposed").change(function(){
72
        $('#sdk_content').dataTable().api().ajax.reload();
73
    });
74
 
75
    //  Detect change to the SDK State
5055 dpurdie 76
    //      Disable all clickable elements - unless a WIP
5052 dpurdie 77
    $("#sel_state input[type=radio]").change(function(){
5055 dpurdie 78
        sdkDetails.SDK_STATE = $(this).val();
79
        $('.clickable').attr('disabled',$(this).val() !== 'U');
80
 
5052 dpurdie 81
        getAjaxData (
82
            "sdk_opr_json.asp",
83
            { action: "setSdkState", sdktagId : <%=parSdkTag_id%>, sdk_state : $(this).val() }
84
            );
85
    });
5053 dpurdie 86
 
87
    // Delete the Version
88
    $("#sel_delete").on('click', function(){
89
        if ( confirm("Are you sure that you want to delete this version of the SDK") != true ) {
90
            return;
91
            }
92
 
93
        getAjaxData (
94
            "sdk_opr_json.asp",
95
            { action: "deleteSdkVersion", sdktagId : <%=parSdkTag_id%> },
96
            function(){
97
                $.event.trigger('newPageBody', {url: 'sdk_versions.asp', data : {sdk_id : sdkDetails.SDK_ID}});
98
                }
99
            );
100
    });
5051 dpurdie 101
}
102
 
5052 dpurdie 103
 
5051 dpurdie 104
//  Configure the Summary Table
5053 dpurdie 105
function populateContent(sdktag_id)
5052 dpurdie 106
{
107
    $('#sdk_content').DataTable({
108
        deferRender: true,
109
        dom: "frtiS",
5054 dpurdie 110
        sScrollY: $( document ).height() - 300,
5052 dpurdie 111
        scrollCollapse: true,
112
        processing: true,
113
        retrieve:true,
114
        serverSide: true,
5054 dpurdie 115
        ajax : {
116
            url : "sdk_content_json.asp",
117
            data : function (o){
118
                o.sdktag_id = sdktag_id;
119
                o.sdk_statefilter = $("#sel_exposed").is(':checked');
120
                var d = $("#sel_sdkversion").val();
121
                if (d != null ) {
122
                    o.sdk_reftag_id = d;
123
                }
124
            },
5052 dpurdie 125
        },
126
        "ordering": true,
127
        "order": [[ 1, "asc" ]],
5051 dpurdie 128
 
5052 dpurdie 129
         "columns": [
130
            { "data": "PV_ID", visible : false },
131
            { "data": "PKG_NAME" },
5055 dpurdie 132
            { "data": "PKG_VERSION" , width : "5%" },
133
            { "data": "REF_PKG_VERSION", width : "5%" },
134
            { "data": "REF_SDKPKG_CHECK" , width : "1%" },
135
            { "data": "SDKPKG_CHECK" , width : "1%"},
5052 dpurdie 136
        ],
137
    });
138
}
5051 dpurdie 139
 
140
 
141
//  Process each row of table data before it is presented to the table scroller
142
//  Process the raw Ajax data
143
//      Create a checkbox for the state
144
//      Add a data item to the entry - to allow traceback when saving
5055 dpurdie 145
$('#sdk_content').on('xhr.dt', function ( e, settings, json ) {
5051 dpurdie 146
        json.aaData.forEach(function(row){
5055 dpurdie 147
            if (row.SDKPKG_STATE != null) {
148
                var checked = row.SDKPKG_STATE == "E" ? 'checked' : '';
149
                var disabled = (sdkDetails.SDK_STATE === 'U' ) ? '' : ' disabled ';
150
                row.SDKPKG_CHECK = '<input type="checkbox" class=clickable '+ checked + disabled +' data-pvid='+ row.PV_ID +'>';
151
            } else {
152
                row.SDKPKG_CHECK = "";
153
            }
154
 
155
            if (row.REF_SDKPKG_STATE != null)
156
            {
157
                var checked = row.REF_SDKPKG_STATE == "E" ? 'checked' : '';
158
                row.REF_SDKPKG_CHECK = '<input type="checkbox" ' + checked + ' disabled >';
159
            } else {
160
                row.REF_SDKPKG_CHECK = "";
161
            }
162
 
5051 dpurdie 163
        });
164
    } );
165
 
166
// Process click on checkboxes within the datatable
167
//      this - a DOM node
168
//      $(this) - The jquery wrapped node
169
//
170
$('#sdk_content').on( 'click', 'tbody td :checkbox', function () {
5052 dpurdie 171
    getAjaxData (
172
        "sdk_opr_json.asp",
173
        { action : 'setSdkContentState', 
174
          sdktagId : <%=parSdkTag_id%>, 
175
          pv_id : $(this).data('pvid'), 
176
          sdkpkg_state : this.checked ? 'E' : '-' 
177
        });
178
    });
5051 dpurdie 179
 
5054 dpurdie 180
//  Populate the Reference Project
181
//      sdk_id  - Select this entry if possible
5053 dpurdie 182
function populateSdkNames(sdk_id) {
5052 dpurdie 183
    getAjaxData (
184
        "sdk_opr_json.asp",
185
        { action: "getSdkNames" },
186
        function(data){
187
            // Populate selection
188
            var $options = $("#sel_sdkname").empty();
189
            var name
190
            $options.append($("<option />").val(null).text('Select One'));
191
            $.each(data.aaData, function (index, value) {
192
                $options.append($("<option />").val(value.SDK_ID).text(value.SDK_NAME));
193
            });
5053 dpurdie 194
            $options.val(sdk_id);
195
            populateSdkVersions(sdk_id)
5052 dpurdie 196
        });    
197
}
198
 
199
//  Populate the SDK Versions selection drop down
200
//      sdk_id  - Identify the family to select
201
//
202
function populateSdkVersions(sdk_id){
203
    getAjaxData (
204
        "sdk_opr_json.asp",
205
        { action: "getSdkVersions", sdk_id : sdk_id, mode: $("#chk_sdkversion").is(':checked') },
206
        function(data){
207
            // Populate selection
208
            var $options = $("#sel_sdkversion").empty();
209
            $options.append($("<option />").val(null).text('Select One'));
210
            $.each(data.aaData, function (index, value) {
211
                $options.append($("<option />").val(value.SDKTAG_ID).text(value.SDKTAG_NAME));
212
            });
213
        });    
214
}
5051 dpurdie 215
 
5052 dpurdie 216
function setInfo(txt) {
217
    $("#sdkd_info").text( txt);
218
}
5051 dpurdie 219
 
5052 dpurdie 220
function clearInfo(txt) {
221
    $("#sdkd_info").text(" ");
222
}
223
 
224
//  getAjaxData - with error processing
225
//      url - url to fetch
226
//      data    - additional data to pass to ajax request
227
//      success - function to call on success
228
function getAjaxData( url, data, success )
229
{
230
    clearInfo();
231
    $("#sdkd_progressBar").css('visibility', 'visible');
232
    $.ajax(
233
    {
234
        url : url,
235
        type: "POST",
236
        data : data,
237
        dataType : "json",
238
        cache: false,
239
        success:function(data, textStatus, jqXHR)
5051 dpurdie 240
        {
5052 dpurdie 241
            //data: return data from server
242
            //console.log ("UpdateData", data);
243
            if (data.result != 0)
5051 dpurdie 244
            {
5052 dpurdie 245
                setInfo("Error:" + ((data.error != 0) ? data.emsgSummary : "Reason not given"));
246
                if (data.error >= 0) disableForm();
247
                return;
248
            }
249
            //  call user success function
250
            if (jQuery.isFunction(success))
5051 dpurdie 251
            {
5052 dpurdie 252
                success(data);
5051 dpurdie 253
            }
5052 dpurdie 254
        },
255
        error: function(jqXHR, textStatus, errorThrown)
256
        {
257
            setInfo("Error:" + errorThrown);
258
            //if fails
259
        },
260
        complete : function()
261
        {
262
            $("#sdkd_progressBar").css('visibility', 'hidden');
263
        }
264
    });
265
 
266
}
5051 dpurdie 267
    </script>
5052 dpurdie 268
<!-- Tool Bar -->
269
<div class=rmbutton style="position:relative;background-color:#DAD7c8;height:38px;padding:7px;margin-bottom: 7px;">
270
 
271
    <div style="float:left">
272
        <fieldset style="padding:2px">
273
            <legend>Display</legend>
274
            <span>Show Exposed</span>
275
            <input id=sel_exposed type=checkbox>
276
        </fieldset>
277
    </div>
278
 
279
    <div id=sel_state style="float:left">
280
        <fieldset style="padding:2px">
281
            <legend>State</legend>
5053 dpurdie 282
            <span>Deprecated<input name=state type=radio value=D></span>
283
            <span>Released<input name=state type=radio value=R></span>
284
            <span>WIP<input name=state type=radio value=U></span>
5052 dpurdie 285
        </fieldset>
286
    </div>
287
 
5054 dpurdie 288
    <div style="float:left;">
289
        <img id=sel_delete src="images/abtn_remove_pkg.gif" hspace="2" border="0" style="height: 25px;margin-top: 8;">
5052 dpurdie 290
    </div>
291
 
292
    <div style="float:left">
293
        <fieldset style="padding:2px">
294
            <legend>Ref Sdk</legend>
295
            <select id=sel_sdkname>
296
                <option>Select One</option>
297
            </select>
298
            <select id=sel_sdkversion>
299
            </select>
300
            <input id=chk_sdkversion type=checkbox>Show All
301
        </fieldset>
302
    </div>
303
 
304
</div>
305
 
306
<div class="form_ttl tleft" id=sdkd_section_head>
5051 dpurdie 307
  <!-- Section Header ---->
5052 dpurdie 308
</div>
5051 dpurdie 309
 
5052 dpurdie 310
<!-- Section Body ---->
311
<div class="rounded_box">
312
  <table id=sdk_content class="full_table" >
313
      <thead>
314
      <tr class="body_col form_align">
315
        <th width="1%"> PV_ID
316
        <th width="10%"> Package Name
317
        <th> Package Version
5055 dpurdie 318
        <th> Ref Version
319
        <th> Ref State
5052 dpurdie 320
        <th width="1%"> State
321
      </thead>
322
  </table>
5051 dpurdie 323
 
5052 dpurdie 324
  <!-- Info / Ajax Progress bar -->
325
  <div class='bg_dialog body_txt' style='position:relative;min-height:1em;' >
326
      <img id='sdkd_progressBar' style='visibility:hidden;position: absolute' src='icons/i_processing.gif' width='79' height='14'>
327
      <div id=sdkd_info  style='position: absolute;'></div>
328
  </div>
5051 dpurdie 329
 
5052 dpurdie 330
</div>