Rev 5117 | Rev 5814 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<%@LANGUAGE="VBSCRIPT"%><%' sdk_versions.asp' This file is designed to be injected (loaded) into a 'div' on a window'' Display the SDK Versions available for the specified SDK' Allow selection of an SDK Version' - To be edited' - Allow filering of SDK Versions' - Allow state change of versions' - Allow creation of new versions'%><%Option explicit' Good idea to set when using redirectResponse.Expires = 0 ' always load the page, dont store%><!--#include file="common/conf.asp"--><!--#include file="common/globals.asp"--><!--#include file="common/formating.asp"--><!--#include file="common/qstr.asp"--><!--#include file="common/common_subs.asp"--><%'------------ ACCESS CONTROL ------------------%><!--#include file="_access_control_general.asp"--><!--#include file="common/globals_sdk.asp"--><%'------------ Variable Definition -------------Dim editMode'------------ Constants Declaration -----------'------------ Variable Init -------------------editMode = "disabled"If canActionControl("AdminSdk") Then editMode = ""%><script>//# sourceURL=sdk_versions.asp// Populate the header of this page//// Get getSdkVersionDetails// When this is complete we will populate the remainder of the// page.var table;var sdkDetails = {};getAjaxData ("sdk_opr_json.asp",{ action: "getSdkDetails", sdk_id : <%=parSdk_id%> },function(data){sdkDetails = data.aaData;$("#sdk_section_head").text( sdkDetails.SDK_NAME);detailsAvailable();});// Basic details are available// Configure the remainder of the widgets on the pagefunction detailsAvailable(){// Configure the Summary Tabletable = $('#sdk_versions').DataTable({deferRender: true,dom: "rtiS",sScrollY: $( document ).height() - 300,scrollCollapse: true,processing: true,retrieve:true,serverSide: true,ajax : {url : "sdk_versions_json.asp",data : function (o){o.sdk_id = <%=parSdk_id%>;o.sdkstateFilter = getDisplayFilter();}},ordering: true,order: [[ 1, "asc" ]],columns: [{ data: "SDKTAG_ID", visible : false },{ data: "SDKTAG_NAME", width: "20%", className: "dt-nowrap" },{ data: "DESCRIPTION" },{ data: "CREATED_STAMP_TXT", className: "dt-nowrap" },{ data: "CREATOR_NAME" , className: "dt-nowrap"},{ data: "SDK_STATE_TEXT", width: "5%"},{ data: "SDK_CONTROLS", orderable: false, width: "5%",className: "dt-nowrap" }],// Add class to rows that we want to highlightcreatedRow : function( row, data, index) {$(row).addClass('mainTable');}});// Process each row of table data before it is presented to the table scroller// Process the raw Ajax data// Add 'Edit' box// Decode State$('#sdk_versions').on('xhr.dt', function ( e, settings, json ) {$.each(json.aaData, function(idx,row){switch (row.SDK_STATE){case 'U' : row.SDK_STATE_TEXT = 'WIP'; break;case 'R' : row.SDK_STATE_TEXT = 'Released'; break;case 'D' : row.SDK_STATE_TEXT = 'Deprecated'; break;default : row.SDK_STATE_TEXT = 'Unknown:' + row.SDK_STATE; break;}row.SDK_CONTROLS = '';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' />";<%If canActionControlInProject("CreateSdk") Then %>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' / >";<%Else%>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' / >";<%End If%>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' />";<%If canActionControlInProject("CreateSdk") Then %>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' />";<%Else%>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' />";<%End If%>});} );// Highlight selected row// Need to handle nested tables. Just highlight mainTable$('#sdk_versions tbody').on( 'click', 'tr', function () {if ($(this).hasClass('mainTable')) {if ( $(this).hasClass('selected') ) {$(this).removeClass('selected');}else {table.$('tr.selected').removeClass('selected');$(this).addClass('selected');}}} );// Edit Button$('#sdk_versions tbody').on( 'click', '.editSdk', function (e) {var sdktag_id = $(this).data().sdktag_id;$('#popmenu').load('sdk_version_edit.asp', {sdktag_id : sdktag_id});} );// Modify Button$('#sdk_versions tbody').on( 'click', '.modifySdk', function (e) {var sdktag_id = $(this).data().sdktag_id;$("#sdk_versions").trigger('newPageBody', {url: 'sdk_details.asp', data : {sdktag_id : sdktag_id}});} );// Show Button// Add/remove child rows and adjust size of the parent scroll window$('#sdk_versions tbody').on( 'click', '.showUse', function (e) {var sdktag_id = $(this).data().sdktag_id;var tr = $(this).closest('tr');var row = table.row( tr );var sb = $('#sdk_versions_wrapper .dataTables_scrollBody');var th = sb.height();var button = $(this);if ( row.child.isShown() ) {// Hide existing datavar h = row.child().height();row.child.hide();sb.height(th - h);//button.text('Show');}else {// Fetch and display datagetAjaxData ("sdk_opr_json.asp",{ action: "getSdkUsage", sdktag_id : sdktag_id },function(data){var txt = '<div style="border: black 1px solid;margin:10px 30px;"><table>';if ( data.aaData.length <= 0 ) {txt += 'No users found';}else {txt += '<tr><th>Project<th>Release';$.each(data.aaData, function(idx,item){txt += '<tr><td>' + '<a href="'+"rtree.asp?proj_id=" + item.PROJ_ID+'">'+ item.PROJ_NAME +'</a>';txt += '<td>' + '<a href="'+"dependencies.asp?rtag_id=" + item.RTAG_ID+'">'+item.RTAG_NAME+'</a>';});}txt += '</table></div>';row.child(txt).show();var h = row.child().height();sb.height( h + th);//button.text('Hide');});}});// Delete Button$('#sdk_versions tbody').on( 'click', '.delSdk', function (e) {var sdktag_id = $(this).data().sdktag_id;if ( confirm("Are you sure that you want to delete this version of the SDK") != true ) {return;}getAjaxData ("sdk_opr_json.asp",{ action: "deleteSdkVersion", sdktagId : sdktag_id },function(data){if (data.useCount > 0 ){alert("Not deleted. SDK is in use");} else {$.event.trigger('newPageBody', {url: 'sdk_versions.asp', data : {sdk_id : <%=parSdk_id%>}});}});} );// Double click in row - Select the SDK Version for display/edit//$('#sdk_versions tbody').on( 'dblclick', 'tr', function () {// $("#sdk_versions").trigger('newPageBody', {url: 'sdk_details.asp', data : {sdktag_id : table.row(this).data().SDKTAG_ID}});//} );// Display control changes$('#sel_display').on('change', function(){if (getDisplayFilter() == '') {$('#sel_released').prop('checked', true)}table.ajax.reload();});function getDisplayFilter(){var filter="";if ($('#sel_deprecated').is(':checked')){ filter += ",'D'"; }if ($('#sel_released').is(':checked')) { filter += ",'R'"; }if ($('#sel_wip').is(':checked')) { filter += ",'U'"; }return filter.substring(1);}// Wire up the 'Add' button// This will pop up a dialog loaded from an external file//$( '#addSdkVersion' ).click(function() {$('#popmenu').load('sdk_version_add.asp', {sdk_id : <%=parSdk_id%>});});// Listen for any trigger to force the table to be refreshed$('#sdk_versions').on("sdkVersionAdded", function(){table.ajax.reload();});}function setInfo(txt) {$("#sdkd_info").text( txt);}function clearInfo(txt) {$("#sdkd_info").text(" ");}// getAjaxData - with error processing// url - url to fetch// data - additional data to pass to ajax request// success - function to call on successfunction getAjaxData( url, data, success ){clearInfo();$("#sdkd_progressBar").css('visibility', 'visible');$.ajax({url : url,type: "POST",data : data,dataType : "json",cache: false,success:function(data, textStatus, jqXHR){//data: return data from serverif (data.result != 0){setInfo("Error:" + ((data.error != 0) ? data.emsgSummary : "Reason not given"));if (data.error >= 0) disableForm();return;}// call user success functionif (jQuery.isFunction(success)){success(data);}},error: function(jqXHR, textStatus, errorThrown){setInfo("Error:" + errorThrown);//if fails},complete : function(){$("#sdkd_progressBar").css('visibility', 'hidden');}});}</script><div class=rmbutton style="position:relative;background-color:#DAD7c8;height:38px;padding:7px;margin-bottom: 7px;"><div id=sel_display style="float:left"><fieldset style="padding:2px"><legend>Display</legend><span>Deprecated</span> <input id=sel_deprecated type=checkbox><span>Released</span> <input checked id=sel_released type=checkbox><span>WIP</span> <input checked id=sel_wip type=checkbox></fieldset></div></div><div class="form_ttl tleft" id=sdk_section_head><!-- Section Header ---->Sdk Name</div><div class="rounded_box"><table id=sdk_versions class="full_table display" ><thead><tr class="body_col form_align"><th width="1%"> SDK ID<th width="10%"> Version<th> Description<th> Created<th> By<th> State<th> Configure</thead></table><div class=bg_dialog style="position:relative"> <%If canActionControlInProject("CreateSdk") Then %><span id="addSdkVersion" title="Add New SDK Version" style="float:left;"><img src="icons/btn_add.gif" width="13" height="13" align="absmiddle" border="0" hspace="3" ><a class=abtnItem>New</a></span><%End If%><!-- Info / Ajax Progress bar --><div class='bg_dialog body_txt' style='float:left;min-height:1em;margin-left:14px' ><img id='sdkd_progressBar' style='visibility:hidden;position:absolute;display:block' src='icons/i_processing.gif' width='79' height='14'><div id=sdkd_info style='position: absolute;'></div></div></div><%If isDefined("rmDebug") Then%><div class="rmDebug" >RmDebug: <%=rmDebug%></div><%End If%></div>