Rev 6181 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<%@LANGUAGE="VBSCRIPT"%><%'====================================================='| sdk_details.asp'| Edit an SDK Version'|'=====================================================%><%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_login_optional.asp"--><!--#include file="_access_control_general.asp"--><!--#include file="common/globals_sdk.asp"--><%'------------ Variable Definition -------------dim modifyState'------------ Constants Declaration -----------'------------ Variable Init -------------------'------------ Before Render -------------------modifyState = "disabled"If canActionControlInProject("CreateSdk") Then modifyState = ""%><script language="JavaScript" type="text/javascript">//# sourceURL=sdk_details.asp// Get getSdkVersionDetails// When this is complete we will populate the remainder of the// page.var sdkDetails = {};getAjaxData ("sdk_opr_json.asp",{ action: "getSdkVersionDetails", sdktag_id : <%=parSdkTag_id%> },function(data){sdkDetails = data.aaData;$("#sdkd_section_head").text( sdkDetails.SDK_NAME + " : " + sdkDetails.SDKTAG_NAME);$("#sel_state").val([sdkDetails.SDK_STATE]);detailsAvailable();});// Populate the bulk of the display// Called once the sdkDetails have been deliveredfunction detailsAvailable(){// Initial population of the Ref SDK NamespopulateSdkNames(sdkDetails.SDK_ID);populateContent(<%=parSdkTag_id%>);updateClone();$("#sel_sdkname").change(function(){$("#sel_sdkversion").empty();populateSdkVersions( $("#sel_sdkname").val());updateShowDiffs();updateClone();});$("#chk_sdkversion").change(function(){populateSdkVersions( $("#sel_sdkname").val());});$("#sel_sdkversion").change(function(){$('#sdk_content').dataTable().api().ajax.reload();updateShowDiffs();updateClone();});// Detect change to the packages displayed// Redisplay on change$("#sel_exposed").change(function(){$('#sdk_content').dataTable().api().ajax.reload();});$("#sel_diff").change(function(){$('#sdk_content').dataTable().api().ajax.reload();});// Detect change to the SDK State// Disable all clickable elements - unless a WIP$("#sel_state").change(function(){sdkDetails.SDK_STATE = $(this).val();$('.clickable').attr('disabled',$(this).val() !== 'U');updateClone();getAjaxData ("sdk_opr_json.asp",{ action: "setSdkState", sdktagId : <%=parSdkTag_id%>, sdk_state : $(this).val() });});}// Configure the Summary Tablefunction populateContent(sdktag_id){table = $('#sdk_content').DataTable({deferRender: true,dom: "frti",scrollY: $( document ).height() - 300 +'px',scrollCollapse: true,processing: true,retrieve:true,paging: true,serverSide: true,scroller : true,ajax : {url : "sdk_details_json.asp",data : function (o){o.sdktag_id = sdktag_id;o.sdk_statefilter = $("#sel_exposed").is(':checked');o.sdk_difffilter = $("#sel_diff").is(':checked');var d = $("#sel_sdkversion").val();if (d != null ) {o.sdk_reftag_id = d;}},},"ordering": true,"order": [[ 1, "asc" ]],"columns": [{ "data": "PV_ID", visible : false },{ "data": "PKG_NAME" },{ "data": "PKG_VERSION" , width : "5%" },{ "data": "REF_PKG_VERSION", width : "5%" },{ "data": "REF_SDKPKG_CHECK" , width : "1%" },{ "data": "SDKPKG_CHECK" , width : "1%"},{ "data": "DIFF" , visible : false},],fnRowCallback: function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {// Highlight diffsswitch(parseInt(aData.DIFF)){case 0: break;case 3: $('td:eq(2)', nRow).css('color', 'red'); break;case 4: $('div:eq(0)', nRow).css({'background-color':'rgba(255, 0, 0, 0.5)', 'width' : '20px'}); break;default: $('td:eq(0)', nRow).css('color', 'red'); break;}},});}// Process each row of table data before it is presented to the table scroller// Process the raw Ajax data// Create a checkbox for the state// Add a data item to the entry - to allow traceback when saving$('#sdk_content').on('xhr.dt', function ( e, settings, json ) {$.each(json.aaData, function(idx,row){if (row.SDKPKG_STATE != null) {var checked = row.SDKPKG_STATE == "E" ? 'checked' : '';var disabled = (sdkDetails.SDK_STATE === 'U' ) ? '' : ' disabled ';row.SDKPKG_CHECK = '<div><input type="checkbox" class=clickable <%=modifyState%> '+ checked + disabled + ' data-pvid='+ row.PV_ID +'></div>';} else {row.SDKPKG_CHECK = "";}if (row.REF_SDKPKG_STATE != null){var checked = row.REF_SDKPKG_STATE == "E" ? 'checked' : '';row.REF_SDKPKG_CHECK = '<input type="checkbox" ' + checked + ' disabled >';} else {row.REF_SDKPKG_CHECK = "";}});} );// Maintain ShowDiff element// Only when ref sdk is presentfunction updateShowDiffs(){var el = $("#sel_diff");var val = $("#sel_sdkversion").val();if (val){el.removeAttr('disabled');}else{el.attr('disabled', 'disabled')el.attr('checked', false);}}// Maintain the Clone Action button// Allow Copy if SDK is a WIP and there is a Referenec to copy fromfunction updateClone(){var isaWip = sdkDetails.SDK_STATE === 'U';var hasaRef = $("#sel_sdkversion").val();var enable = !(isaWip && hasaRef);$('#sel_clear').prop('disabled', !isaWip);$('#sel_clone').prop('disabled', enable);$('#sel_set').prop('disabled',!isaWip);}// Process the Clone Action//$('#sel_clone').on( 'click', function () {getAjaxData ("sdk_opr_json.asp",{ action : 'cloneSdkPackages',sdktagId : <%=parSdkTag_id%>,sdk_reftag_id : $("#sel_sdkversion").val()},function(data){$('#sdk_content').dataTable().api().ajax.reload();});});// Process the Clear Action//$('#sel_clear').on( 'click', function () {getAjaxData ("sdk_opr_json.asp",{ action : 'setSdkPackages',sdktagId : <%=parSdkTag_id%>,sdkpkg_state : '-',},function(data){$('#sdk_content').dataTable().api().ajax.reload();});});// Process the Set Action//$('#sel_set').on( 'click', function () {getAjaxData ("sdk_opr_json.asp",{ action : 'setSdkPackages',sdktagId : <%=parSdkTag_id%>,sdkpkg_state : 'E',},function(data){$('#sdk_content').dataTable().api().ajax.reload();});});// Process click on checkboxes within the datatable// this - a DOM node// $(this) - The jquery wrapped node//$('#sdk_content').on( 'click', 'tbody td :checkbox', function () {getAjaxData ("sdk_opr_json.asp",{ action : 'setSdkContentState',sdktagId : <%=parSdkTag_id%>,pv_id : $(this).data('pvid'),sdkpkg_state : this.checked ? 'E' : '-'});});// Single click on row - Highlight selected row$('#sdk_content').on( 'click', 'tbody tr', function () {if ( $(this).hasClass('selected') ) {$(this).removeClass('selected');}else {table.$('tr.selected').removeClass('selected');$(this).addClass('selected');}} );// Populate the Reference Project// sdk_id - Select this entry if possiblefunction populateSdkNames(sdk_id) {getAjaxData ("sdk_opr_json.asp",{ action: "getSdkNames" },function(data){// Populate selectionvar $options = $("#sel_sdkname").empty();var name$options.append($("<option />").val(null).text('Select One'));$.each(data.aaData, function (index, value) {$options.append($("<option />").val(value.SDK_ID).text(value.SDK_NAME));});$options.val(sdk_id);populateSdkVersions(sdk_id)});}// Populate the SDK Versions selection drop down// sdk_id - Identify the family to select//function populateSdkVersions(sdk_id){getAjaxData ("sdk_opr_json.asp",{ action: "getSdkVersions", sdk_id : sdk_id, mode: $("#chk_sdkversion").is(':checked') },function(data){// Populate selectionvar $options = $("#sel_sdkversion").empty();$options.append($("<option />").val(null).text('Select One'));$.each(data.aaData, function (index, value) {$options.append($("<option />").val(value.SDKTAG_ID).text(value.SDKTAG_NAME));});});}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 server//console.log ("UpdateData", data);if (data.result != 0){setInfo("Error:" + ((data.error != 0) ? data.emsgSummary : "Reason not given"));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');}});}// Local HelpformTips.tips.sdk_state = stdTip(200, 'State','WIP - Under development. Can be modified but is not available for use by other releases.' +'<p>Release - Available for other releases to use' +'<p>Deprecated - This version of the SDK has been superceded. Not available for use.');</script><!-- Tool Bar --><div class=rmbutton style="position:relative;background-color:#DAD7c8;height:38px;padding:7px;margin-bottom: 7px;"><div style="float:left"><fieldset style="padding:2px;height:30px"><legend>Display</legend><span>Show Exposed</span><input id=sel_exposed type=checkbox><span>Show Diffs</span><input id=sel_diff type=checkbox disabled></fieldset></div><div style="float:left"><fieldset style="padding:2px;height:30px" <%=modifyState%>><legend>State</legend><select id=sel_state><option value="U">WIP</option><option value="R">Released</option><option value="D">Deprecated</option></select><%=Quick_Help("sdk_state")%></fieldset></div><div style="float:left"><fieldset style="padding:2px;height:30px"><legend>Ref Sdk</legend><select id=sel_sdkname><option>Select One</option></select><select id=sel_sdkversion></select><input id=chk_sdkversion type=checkbox>Show All</fieldset></div><div style="float:right"><fieldset style="padding:2px;height:30px"><legend>Actions</legend><button id="sel_clear" disabled title="Deselect all">Clear</button><button id="sel_clone" disabled title="Clone exposed reference packages">Merge</button><button id="sel_set" disabled title="Select all">All</button></fieldset></div></div><div class="form_ttl tleft" id=sdkd_section_head><!-- Section Header ----></div><!-- Section Body ----><div class="rounded_box"><table id=sdk_content class="full_table display" ><thead><tr class="body_col form_align"><th width="1%"> PV_ID<th width="10%"> Package Name<th> Package Version<th> Ref Version<th> Ref State<th width="1%"> State</thead></table><!-- Info / Ajax Progress bar --><div class='bg_dialog body_txt' style='position:relative;min-height: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><%If isDefined("rmDebug") Then%><div class="rmDebug" >RmDebug: <%=rmDebug%></div><%End If%></div><% Call Destroy_All_Objects %>