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