Subversion Repositories DevTools

Rev

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