Subversion Repositories DevTools

Rev

Rev 5506 | Rev 5751 | Go to most recent revision | Details | Compare with Previous | 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"-->
5103 dpurdie 23
<!--#include file="common/globals_sdk.asp"-->
5051 dpurdie 24
<%
25
'------------ Variable Definition -------------
5089 dpurdie 26
dim modifyState
5051 dpurdie 27
 
28
'------------ Constants Declaration -----------
29
'------------ Variable Init -------------------
5102 dpurdie 30
'------------ Before Render -------------------
5089 dpurdie 31
modifyState = "disabled"
32
If canActionControlInProject("CreateSdk") Then modifyState = ""
33
 
5051 dpurdie 34
%>
35
<script language="JavaScript" type="text/javascript">
36
//# sourceURL=sdk_details.asp
5052 dpurdie 37
 
38
//  Get getSdkVersionDetails
39
//      When this is complete we will populate the remainder of the
40
//      page.
41
var sdkDetails = {};
42
getAjaxData (
43
    "sdk_opr_json.asp",
44
    { action: "getSdkVersionDetails", sdktag_id : <%=parSdkTag_id%> },
45
    function(data){
46
        sdkDetails = data.aaData;
47
        $("#sdkd_section_head").text( sdkDetails.SDK_NAME + " : " + sdkDetails.SDKTAG_NAME);
5098 dpurdie 48
        $("#sel_state").val([sdkDetails.SDK_STATE]);
5052 dpurdie 49
        detailsAvailable();
50
    });    
51
 
5054 dpurdie 52
//  Populate the bulk of the display
53
//      Called once the sdkDetails have been delivered 
5052 dpurdie 54
function detailsAvailable()
55
{
56
    //  Initial population of the Ref SDK Names   
5053 dpurdie 57
    populateSdkNames(sdkDetails.SDK_ID);
58
    populateContent(<%=parSdkTag_id%>);    
5052 dpurdie 59
 
60
    $("#sel_sdkname").change(function(){
61
        populateSdkVersions( $("#sel_sdkname").val());
62
    });
63
 
64
    $("#chk_sdkversion").change(function(){
65
        populateSdkVersions( $("#sel_sdkname").val());
66
    });
67
 
68
    $("#sel_sdkversion").change(function(){
5054 dpurdie 69
        $('#sdk_content').dataTable().api().ajax.reload();
5052 dpurdie 70
    });
71
 
72
    //  Detect change to the packages displayed
73
    //      Redisplay on change       
74
    $("#sel_exposed").change(function(){
75
        $('#sdk_content').dataTable().api().ajax.reload();
76
    });
77
 
78
    //  Detect change to the SDK State
5055 dpurdie 79
    //      Disable all clickable elements - unless a WIP
5098 dpurdie 80
    $("#sel_state").change(function(){
5055 dpurdie 81
        sdkDetails.SDK_STATE = $(this).val();
82
        $('.clickable').attr('disabled',$(this).val() !== 'U');
83
 
5052 dpurdie 84
        getAjaxData (
85
            "sdk_opr_json.asp",
86
            { action: "setSdkState", sdktagId : <%=parSdkTag_id%>, sdk_state : $(this).val() }
87
            );
88
    });
5051 dpurdie 89
}
90
 
5052 dpurdie 91
 
5051 dpurdie 92
//  Configure the Summary Table
5053 dpurdie 93
function populateContent(sdktag_id)
5052 dpurdie 94
{
5117 dpurdie 95
    table = $('#sdk_content').DataTable({
5052 dpurdie 96
        deferRender: true,
97
        dom: "frtiS",
5054 dpurdie 98
        sScrollY: $( document ).height() - 300,
5052 dpurdie 99
        scrollCollapse: true,
100
        processing: true,
101
        retrieve:true,
102
        serverSide: true,
5054 dpurdie 103
        ajax : {
5058 dpurdie 104
            url : "sdk_details_json.asp",
5054 dpurdie 105
            data : function (o){
106
                o.sdktag_id = sdktag_id;
107
                o.sdk_statefilter = $("#sel_exposed").is(':checked');
108
                var d = $("#sel_sdkversion").val();
109
                if (d != null ) {
110
                    o.sdk_reftag_id = d;
111
                }
112
            },
5052 dpurdie 113
        },
114
        "ordering": true,
115
        "order": [[ 1, "asc" ]],
5051 dpurdie 116
 
5052 dpurdie 117
         "columns": [
118
            { "data": "PV_ID", visible : false },
119
            { "data": "PKG_NAME" },
5055 dpurdie 120
            { "data": "PKG_VERSION" , width : "5%" },
121
            { "data": "REF_PKG_VERSION", width : "5%" },
122
            { "data": "REF_SDKPKG_CHECK" , width : "1%" },
123
            { "data": "SDKPKG_CHECK" , width : "1%"},
5684 dpurdie 124
            { "data": "CHECKDIFF" , visible : false},
5052 dpurdie 125
        ],
5684 dpurdie 126
        fnRowCallback: function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
127
            // Highlight diffs
128
            if (aData.REF_PKG_VERSION != null && aData.REF_PKG_VERSION != aData.PKG_VERSION) {
129
                $('td:eq(2)', nRow).css('color', 'red');
130
            }
131
 
132
            if (aData.CHECKDIFF != null ) {
133
                $('td:eq(0)', nRow).css('color', 'red');
134
            }
135
        },
136
 
5052 dpurdie 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 ) {
5114 dpurdie 146
        $.each(json.aaData, function(idx,row){
5684 dpurdie 147
 
148
            row.CHECKDIFF = null;
149
            if (row.REF_SDKPKG_STATE != null && row.REF_SDKPKG_STATE != row.SDKPKG_STATE)
150
            {
151
                row.CHECKDIFF = '1';
152
            }
153
 
5055 dpurdie 154
            if (row.SDKPKG_STATE != null) {
155
                var checked = row.SDKPKG_STATE == "E" ? 'checked' : '';
156
                var disabled = (sdkDetails.SDK_STATE === 'U' ) ? '' : ' disabled ';
5089 dpurdie 157
                row.SDKPKG_CHECK = '<input type="checkbox" class=clickable <%=modifyState%> '+ checked + disabled + ' data-pvid='+ row.PV_ID +'>';
5055 dpurdie 158
            } else {
159
                row.SDKPKG_CHECK = "";
160
            }
161
 
162
            if (row.REF_SDKPKG_STATE != null)
163
            {
164
                var checked = row.REF_SDKPKG_STATE == "E" ? 'checked' : '';
165
                row.REF_SDKPKG_CHECK = '<input type="checkbox" ' + checked + ' disabled >';
166
            } else {
167
                row.REF_SDKPKG_CHECK = "";
168
            }
5051 dpurdie 169
        });
170
    } );
171
 
172
// Process click on checkboxes within the datatable
173
//      this - a DOM node
174
//      $(this) - The jquery wrapped node
175
//
176
$('#sdk_content').on( 'click', 'tbody td :checkbox', function () {
5052 dpurdie 177
    getAjaxData (
178
        "sdk_opr_json.asp",
179
        { action : 'setSdkContentState', 
180
          sdktagId : <%=parSdkTag_id%>, 
181
          pv_id : $(this).data('pvid'), 
182
          sdkpkg_state : this.checked ? 'E' : '-' 
183
        });
184
    });
5051 dpurdie 185
 
5117 dpurdie 186
// Single click on row - Highlight selected row
187
$('#sdk_content').on( 'click', 'tbody tr', function () {
188
    if ( $(this).hasClass('selected') ) {
189
        $(this).removeClass('selected');
190
    }
191
    else {
192
        table.$('tr.selected').removeClass('selected');
193
        $(this).addClass('selected');
194
    }
195
} );
196
 
197
 
5054 dpurdie 198
//  Populate the Reference Project
199
//      sdk_id  - Select this entry if possible
5053 dpurdie 200
function populateSdkNames(sdk_id) {
5052 dpurdie 201
    getAjaxData (
202
        "sdk_opr_json.asp",
203
        { action: "getSdkNames" },
204
        function(data){
205
            // Populate selection
206
            var $options = $("#sel_sdkname").empty();
207
            var name
208
            $options.append($("<option />").val(null).text('Select One'));
209
            $.each(data.aaData, function (index, value) {
210
                $options.append($("<option />").val(value.SDK_ID).text(value.SDK_NAME));
211
            });
5053 dpurdie 212
            $options.val(sdk_id);
213
            populateSdkVersions(sdk_id)
5052 dpurdie 214
        });    
215
}
216
 
217
//  Populate the SDK Versions selection drop down
218
//      sdk_id  - Identify the family to select
219
//
220
function populateSdkVersions(sdk_id){
221
    getAjaxData (
222
        "sdk_opr_json.asp",
223
        { action: "getSdkVersions", sdk_id : sdk_id, mode: $("#chk_sdkversion").is(':checked') },
224
        function(data){
225
            // Populate selection
226
            var $options = $("#sel_sdkversion").empty();
227
            $options.append($("<option />").val(null).text('Select One'));
228
            $.each(data.aaData, function (index, value) {
229
                $options.append($("<option />").val(value.SDKTAG_ID).text(value.SDKTAG_NAME));
230
            });
231
        });    
232
}
5051 dpurdie 233
 
5052 dpurdie 234
function setInfo(txt) {
235
    $("#sdkd_info").text( txt);
236
}
5051 dpurdie 237
 
5052 dpurdie 238
function clearInfo(txt) {
239
    $("#sdkd_info").text(" ");
240
}
241
 
242
//  getAjaxData - with error processing
243
//      url - url to fetch
244
//      data    - additional data to pass to ajax request
245
//      success - function to call on success
246
function getAjaxData( url, data, success )
247
{
248
    clearInfo();
249
    $("#sdkd_progressBar").css('visibility', 'visible');
250
    $.ajax(
251
    {
252
        url : url,
253
        type: "POST",
254
        data : data,
255
        dataType : "json",
256
        cache: false,
257
        success:function(data, textStatus, jqXHR)
5051 dpurdie 258
        {
5052 dpurdie 259
            //data: return data from server
260
            //console.log ("UpdateData", data);
261
            if (data.result != 0)
5051 dpurdie 262
            {
5052 dpurdie 263
                setInfo("Error:" + ((data.error != 0) ? data.emsgSummary : "Reason not given"));
264
                return;
265
            }
266
            //  call user success function
267
            if (jQuery.isFunction(success))
5051 dpurdie 268
            {
5052 dpurdie 269
                success(data);
5051 dpurdie 270
            }
5052 dpurdie 271
        },
272
        error: function(jqXHR, textStatus, errorThrown)
273
        {
274
            setInfo("Error:" + errorThrown);
275
            //if fails
276
        },
277
        complete : function()
278
        {
279
            $("#sdkd_progressBar").css('visibility', 'hidden');
280
        }
281
    });
282
 
283
}
5098 dpurdie 284
 
285
// Local Help
286
formTips.tips.sdk_state = stdTip(200, 'State', 
287
                                     'WIP - Under development. Can be modified but is not available for use by other releases.' +
288
                                     '<p>Release - Available for other releases to use' +
289
                                     '<p>Deprecated - This version of the SDK has been superceded. Not available for use.');
290
 
5051 dpurdie 291
    </script>
5052 dpurdie 292
<!-- Tool Bar -->
293
<div class=rmbutton style="position:relative;background-color:#DAD7c8;height:38px;padding:7px;margin-bottom: 7px;">
294
 
295
    <div style="float:left">
296
        <fieldset style="padding:2px">
297
            <legend>Display</legend>
298
            <span>Show Exposed</span>
299
            <input id=sel_exposed type=checkbox>
300
        </fieldset>
301
    </div>
302
 
5098 dpurdie 303
    <div style="float:left">
5089 dpurdie 304
        <fieldset style="padding:2px" <%=modifyState%>>
5052 dpurdie 305
            <legend>State</legend>
5098 dpurdie 306
            <select id=sel_state>
307
                <option value="U">WIP</option>
308
                <option value="R">Released</option>
309
                <option value="D">Deprecated</option>
310
            </select>
311
            <%=Quick_Help("sdk_state")%>
5052 dpurdie 312
        </fieldset>
313
    </div>
314
 
315
    <div style="float:left">
316
        <fieldset style="padding:2px">
317
            <legend>Ref Sdk</legend>
318
            <select id=sel_sdkname>
319
                <option>Select One</option>
320
            </select>
321
            <select id=sel_sdkversion>
322
            </select>
323
            <input id=chk_sdkversion type=checkbox>Show All
324
        </fieldset>
325
    </div>
326
 
327
</div>
328
 
329
<div class="form_ttl tleft" id=sdkd_section_head>
5051 dpurdie 330
  <!-- Section Header ---->
5052 dpurdie 331
</div>
5051 dpurdie 332
 
5052 dpurdie 333
<!-- Section Body ---->
334
<div class="rounded_box">
5117 dpurdie 335
  <table id=sdk_content class="full_table display" >
5052 dpurdie 336
      <thead>
337
      <tr class="body_col form_align">
338
        <th width="1%"> PV_ID
339
        <th width="10%"> Package Name
340
        <th> Package Version
5055 dpurdie 341
        <th> Ref Version
342
        <th> Ref State
5052 dpurdie 343
        <th width="1%"> State
344
      </thead>
345
  </table>
5051 dpurdie 346
 
5052 dpurdie 347
  <!-- Info / Ajax Progress bar -->
5116 dpurdie 348
  <div class='bg_dialog body_txt' style='position:relative;min-height:14px;' >
349
      <img id='sdkd_progressBar' style='visibility:hidden;position: absolute;display: block' src='icons/i_processing.gif' width='79' height='14'>
5052 dpurdie 350
      <div id=sdkd_info  style='position: absolute;'></div>
351
  </div>
5102 dpurdie 352
<%If isDefined("rmDebug") Then%>
353
    <div class="rmDebug" >RmDebug: <%=rmDebug%></div>
354
<%End If%>
5052 dpurdie 355
</div>