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