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"-->
5103 dpurdie 28
<!--#include file="common/globals_sdk.asp"-->
5080 dpurdie 29
<%
30
'------------ Variable Definition -------------
31
Dim editMode
32
'------------ Constants Declaration -----------
33
'------------ Variable Init -------------------
34
editMode = "disabled"
35
If canActionControl("AdminSdk") Then editMode = ""
5103 dpurdie 36
 
5080 dpurdie 37
%>
5050 dpurdie 38
<script>
5055 dpurdie 39
//# sourceURL=sdk_versions.asp
5057 dpurdie 40
 
41
//  Populate the header of this page
42
//
43
//  Get getSdkVersionDetails
44
//      When this is complete we will populate the remainder of the
45
//      page.
5050 dpurdie 46
var table;
5057 dpurdie 47
var sdkDetails = {};
48
getAjaxData (
49
    "sdk_opr_json.asp",
5102 dpurdie 50
    { action: "getSdkDetails", sdk_id : <%=parSdk_id%> },
5057 dpurdie 51
    function(data){
52
        sdkDetails = data.aaData;
53
        $("#sdk_section_head").text( sdkDetails.SDK_NAME);
54
        detailsAvailable();
55
    });    
56
 
57
//  Basic details are available
58
//      Configure the remainder of the widgets on the page
59
function detailsAvailable()
60
{
61
    //  Configure the Summary Table
62
    table = $('#sdk_versions').DataTable({
63
            deferRender: true,
64
            dom: "rtiS",
65
            sScrollY: $( document ).height() - 300,
66
            scrollCollapse: true,
67
            processing: true,
68
            retrieve:true,
69
            serverSide: true,
70
            ajax : {
71
                url : "sdk_versions_json.asp",
72
                data : function (o){
5102 dpurdie 73
                    o.sdk_id = <%=parSdk_id%>;
5057 dpurdie 74
                    o.sdkstateFilter = getDisplayFilter();
5114 dpurdie 75
                }
5050 dpurdie 76
            },
5055 dpurdie 77
 
5057 dpurdie 78
            ordering: true,
79
             order: [[ 1, "asc" ]],
80
             columns: [
81
                { data: "SDKTAG_ID", visible : false },
82
                { data: "SDKTAG_NAME", width: "20%", className: "dt-nowrap"  },
83
                { data: "DESCRIPTION" },
84
                { data: "CREATED_STAMP_TXT", className: "dt-nowrap" },
85
                { data: "CREATOR_NAME" , className: "dt-nowrap"},
86
                { data: "SDK_STATE", width: "5%"},
5116 dpurdie 87
                { data: "SDK_CONTROLS", orderable: false, width: "5%",className: "dt-nowrap" }
5057 dpurdie 88
            ],
5099 dpurdie 89
            //  Add class to rows that we want to highlight
90
            createdRow : function( row, data, index) {
91
                $(row).addClass('mainTable');
5114 dpurdie 92
                }
5057 dpurdie 93
            });
5050 dpurdie 94
 
5055 dpurdie 95
//  Process each row of table data before it is presented to the table scroller
96
//  Process the raw Ajax data
97
//      Add 'Edit' box
98
//      Decode State
99
$('#sdk_versions').on('xhr.dt', function ( e, settings, json ) {
5114 dpurdie 100
        $.each(json.aaData, function(idx,row){
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
            }
5116 dpurdie 109
            row.SDK_CONTROLS  = '';
110
            row.SDK_CONTROLS += "<img <%=editMode%> class='rmbutton editSdk' data-sdktag_id='" + row.SDKTAG_ID + "' title='Edit Version Name and Description' src='images/i_memo.gif' />";
111
<%If canActionControlInProject("CreateSdk") Then %>
112
            row.SDK_CONTROLS += "<img class='rmbutton modifySdk' data-sdktag_id='" + row.SDKTAG_ID + "' title='Modify content of the SDK' style='margin-left:3px' src='images/i_edit.gif' / >";
113
<%Else%>
114
            row.SDK_CONTROLS += "<img class='rmbutton modifySdk' data-sdktag_id='" + row.SDKTAG_ID + "' title='View content of the SDK' style='margin-left:3px' src='images/i_drill_down.gif' / >";
115
<%End If%>
116
            row.SDK_CONTROLS += "<img class='rmbutton showUse' data-sdktag_id='" + row.SDKTAG_ID + "' title='Show Users of this SDK' style='margin-left:3px' src='images/i_dependency.gif' />";
117
<%If canActionControlInProject("CreateSdk") Then %>
118
            row.SDK_CONTROLS += "<img class='rmbutton delSdk' disabled data-sdktag_id='" + row.SDKTAG_ID + "' title='Delete this version' style='margin-left:3px' src='images/i_delete.gif' />";
119
<%Else%>
120
            row.SDK_CONTROLS += "<img class='rmbutton NodelSdk' disabled data-sdktag_id='" + row.SDKTAG_ID + "' title='Delete this version' style='margin-left:3px' src='images/i_delete_disable.gif' />";
121
<%End If%>
5098 dpurdie 122
 
5055 dpurdie 123
        });
124
    } );
125
 
126
 
5050 dpurdie 127
// Highlight selected row
5099 dpurdie 128
//  Need to handle nested tables. Just highlight mainTable
5050 dpurdie 129
$('#sdk_versions tbody').on( 'click', 'tr', function () {
5099 dpurdie 130
    if ($(this).hasClass('mainTable')) {
131
        if ( $(this).hasClass('selected') ) {
132
            $(this).removeClass('selected');
133
        }
134
        else {
135
            table.$('tr.selected').removeClass('selected');
136
            $(this).addClass('selected');
137
        }
5050 dpurdie 138
    }
139
} );
140
 
5055 dpurdie 141
// Edit Button
142
$('#sdk_versions tbody').on( 'click', '.editSdk', function (e) {
143
     var sdktag_id = $(this).data().sdktag_id;
144
     $('#popmenu').load('sdk_version_edit.asp', {sdktag_id : sdktag_id});
145
} );
146
 
147
// Modify Button
148
$('#sdk_versions tbody').on( 'click', '.modifySdk', function (e) {
149
     var sdktag_id = $(this).data().sdktag_id;
150
     $("#sdk_versions").trigger('newPageBody', {url: 'sdk_details.asp', data : {sdktag_id : sdktag_id}});
151
} );
152
 
5098 dpurdie 153
// Show Button
5099 dpurdie 154
//  Add/remove child rows and adjust size of the parent scroll window
5098 dpurdie 155
$('#sdk_versions tbody').on( 'click', '.showUse', function (e) {
156
     var sdktag_id = $(this).data().sdktag_id;
5099 dpurdie 157
     var tr = $(this).closest('tr');
158
     var row = table.row( tr );
159
     var sb = $('#sdk_versions_wrapper .dataTables_scrollBody');
160
     var th = sb.height();
5102 dpurdie 161
     var button = $(this);
5098 dpurdie 162
 
5099 dpurdie 163
     if ( row.child.isShown() ) {
164
        //  Hide existing data
165
        var h = row.child().height();
166
        row.child.hide();
167
        sb.height(th - h);
5116 dpurdie 168
        //button.text('Show');
5099 dpurdie 169
     }
170
     else {
171
        // Fetch and display data
172
        getAjaxData (
173
            "sdk_opr_json.asp",
174
            { action: "getSdkUsage", sdktag_id : sdktag_id },
175
            function(data){
176
                var txt = '<div style="border: black 1px solid;margin:10px 30px;"><table>';                
177
                if ( data.aaData.length <= 0 ) {
178
                    txt += 'No users found';
179
                }
180
                else {
181
                    txt += '<tr><th>Project<th>Release';
5114 dpurdie 182
                    $.each(data.aaData, function(idx,item){
5099 dpurdie 183
                        txt += '<tr><td>' + '<a href="'+"rtree.asp?proj_id=" + item.PROJ_ID+'">'+ item.PROJ_NAME +'</a>';
184
                        txt += '<td>' +   '<a href="'+"dependencies.asp?rtag_id=" + item.RTAG_ID+'">'+item.RTAG_NAME+'</a>';
185
                    });
186
                }
187
                txt += '</table></div>';
188
                row.child(txt).show();
189
                var h = row.child().height();
190
                sb.height( h + th);
5116 dpurdie 191
                //button.text('Hide');
5099 dpurdie 192
            });
193
    }        
194
});
5098 dpurdie 195
 
5116 dpurdie 196
// Delete Button
197
$('#sdk_versions tbody').on( 'click', '.delSdk', function (e) {
198
     var sdktag_id = $(this).data().sdktag_id;
199
     if ( confirm("Are you sure that you want to delete this version of the SDK") != true ) {
200
         return;
201
     }
5099 dpurdie 202
 
5116 dpurdie 203
     getAjaxData (
204
         "sdk_opr_json.asp",
205
         { action: "deleteSdkVersion", sdktagId : sdktag_id },
206
         function(data){
207
             if (data.useCount > 0 ){
208
                 alert("Not deleted. SDK is in use");
209
             } else {
210
                 $.event.trigger('newPageBody', {url: 'sdk_versions.asp', data : {sdk_id : <%=parSdk_id%>}});
211
             }
212
         });
213
} );
214
 
215
 
5055 dpurdie 216
//  Double click in row - Select the SDK Version for display/edit
5051 dpurdie 217
$('#sdk_versions tbody').on( 'dblclick', 'tr', function () {
218
    $("#sdk_versions").trigger('newPageBody', {url: 'sdk_details.asp', data : {sdktag_id : table.row(this).data().SDKTAG_ID}});
219
 
220
} );
221
 
5057 dpurdie 222
//  Display control changes
223
$('#sel_display').on('change', function(){
224
    if (getDisplayFilter() == '') {
225
        $('#sel_released').prop('checked', true)
226
    }
227
    table.ajax.reload();
228
});
229
 
230
function getDisplayFilter()
231
{
232
    var filter="";
233
    if ($('#sel_deprecated').is(':checked')){ filter += ",'D'"; }
234
    if ($('#sel_released').is(':checked'))  { filter += ",'R'"; }
235
    if ($('#sel_wip').is(':checked'))       { filter += ",'U'"; }
236
 
237
    return filter.substring(1);
238
}
239
 
5050 dpurdie 240
//  Wire up the 'Add' button
241
//  This will pop up a dialog loaded from an external file
242
//
243
$( '#addSdkVersion' ).click(function() {
5102 dpurdie 244
    $('#popmenu').load('sdk_version_add.asp', {sdk_id : <%=parSdk_id%>});
5050 dpurdie 245
    });
246
 
247
//  Listen for any trigger to force the table to be refreshed
248
$('#sdk_versions').on("sdkVersionAdded", function(){
249
    table.ajax.reload();
250
    });
5057 dpurdie 251
}
5050 dpurdie 252
 
5057 dpurdie 253
 
254
function setInfo(txt) {
255
    $("#sdkd_info").text( txt);
256
}
257
 
258
function clearInfo(txt) {
259
    $("#sdkd_info").text(" ");
260
}
261
 
262
//  getAjaxData - with error processing
263
//      url - url to fetch
264
//      data    - additional data to pass to ajax request
265
//      success - function to call on success
266
function getAjaxData( url, data, success )
267
{
268
    clearInfo();
269
    $("#sdkd_progressBar").css('visibility', 'visible');
270
    $.ajax(
271
    {
272
        url : url,
273
        type: "POST",
274
        data : data,
275
        dataType : "json",
276
        cache: false,
277
        success:function(data, textStatus, jqXHR)
278
        {
279
            //data: return data from server
280
            if (data.result != 0)
281
            {
282
                setInfo("Error:" + ((data.error != 0) ? data.emsgSummary : "Reason not given"));
283
                if (data.error >= 0) disableForm();
284
                return;
285
            }
286
            //  call user success function
287
            if (jQuery.isFunction(success))
288
            {
289
                success(data);
290
            }
291
        },
292
        error: function(jqXHR, textStatus, errorThrown)
293
        {
294
            setInfo("Error:" + errorThrown);
295
            //if fails
296
        },
297
        complete : function()
298
        {
299
            $("#sdkd_progressBar").css('visibility', 'hidden');
300
        }
301
    });
302
 
303
}
304
 
5050 dpurdie 305
</script>
5057 dpurdie 306
<div class=rmbutton style="position:relative;background-color:#DAD7c8;height:38px;padding:7px;margin-bottom: 7px;">
307
 
308
    <div id=sel_display style="float:left">
309
        <fieldset style="padding:2px">
310
            <legend>Display</legend>
311
            <span>Deprecated</span> <input id=sel_deprecated type=checkbox>
312
            <span>Released</span>   <input checked id=sel_released type=checkbox>
313
            <span>WIP</span>        <input checked id=sel_wip type=checkbox>
314
        </fieldset>
315
    </div>
316
 
5050 dpurdie 317
</div>
5057 dpurdie 318
 
319
<div class="form_ttl tleft" id=sdk_section_head>
320
  <!-- Section Header ---->
321
  Sdk Name
322
</div>
5050 dpurdie 323
<div class="rounded_box">
324
    <table id=sdk_versions class="full_table" >
325
        <thead>
326
        <tr class="body_col form_align">
327
          <th width="1%"> SDK&nbsp;ID
328
          <th width="10%"> Version
329
          <th> Description
5055 dpurdie 330
          <th> Created
331
          <th> By
5116 dpurdie 332
          <th> State
333
          <th> Configure
5050 dpurdie 334
        </thead>
335
    </table>
5057 dpurdie 336
    <div class=bg_dialog style="position:relative">&nbsp;
5089 dpurdie 337
<%If canActionControlInProject("CreateSdk") Then %>
5050 dpurdie 338
        <span id="addSdkVersion" title="Add New SDK Version" style="float:left;">
339
            <img src="icons/btn_add.gif" width="13" height="13" align="absmiddle" border="0" hspace="3" >
340
            <a class=abtnItem>New</a>
341
        </span>
5089 dpurdie 342
<%End If%>
5057 dpurdie 343
  <!-- Info / Ajax Progress bar -->
5116 dpurdie 344
  <div class='bg_dialog body_txt' style='float:left;min-height:1em;margin-left:14px' >
345
      <img id='sdkd_progressBar' style='visibility:hidden;position:absolute;display:block' src='icons/i_processing.gif' width='79' height='14'>
5057 dpurdie 346
      <div id=sdkd_info  style='position: absolute;'></div>
347
  </div>
348
 
5050 dpurdie 349
    </div>
5098 dpurdie 350
<%If isDefined("rmDebug") Then%>
5097 dpurdie 351
    <div class="rmDebug" >RmDebug: <%=rmDebug%></div>
352
<%End If%>
5050 dpurdie 353
</div>