tree 2941204c711af947cc472dce8c404377af6a0b98
parent 80705e80a8abdb91e99ee3ff97be13368c9a4981
author Josh Thompson <jfthomps@ncsu.edu> 1557239053 -0400
committer Josh Thompson <jfthomps@ncsu.edu> 1557239053 -0400

VCL-1114 - miscellaneous small web updates

code.js: cleaned up whitespace

dashboard.js: modified updateNewReservations: added VM Host to displayed data

requests.js: cleaned up whitespace

computer.js:
-added Computer.prototype.ipsort: correctly sorts IP addresses
-modified initPage: set resourcestore.comparatorMap for IPaddress and privateIPaddress to ipsort
-modified refreshcompdata: set resourcestore.comparatorMap for IPaddress and privateIPaddress to ipsort

image.js:
-added initAddDialog: sets adauthenable checkbox to be disabled if user has no access to AD Domains
-modified submitCreateUpdateImage: added call to initAddDialog when adding a new image

vm.js:
-modified VMtoHostCB, vmFromHostCB, and reloadVMhostCB to check for data.items.failed being 'invaliddata'
-modified vmFromHost: cleaned up whitespace

index.php: cleaned up initialization of $user, $mysqli_link_vcl, and $mysqli_link_acct

blockallocations.php:
-modified getCurrentBlockHTML: increased width of viewtimesDialog DataGrid
-modified getUserCurrentBlockHTML: increased width of viewtimesDialog DataGrid and Date, Start, and End inputs
-modified processBlockAllocationInput: added regular expression match for $slots

computer.php:
-modified AJsubmitCompProvisioningChange: updated query to ignore reservations in 'complete' state; added check for $nowids being empty; initialized $msg before conditionals
-modified AJshowReservationHistory: added Request ID and IP Address to returned data

conf-default.php: changed calls to create_function to use function() instead

dashboard.php:
-modified dashboard: added 3rd argument for call to addWidget for status to alert users to hover over items for a description
-modified getStatusData: added 'Active Short Reservations'; added tooltip for 'Active Reservations'; added queries to get count of active reservations less than 24 hours in duration
-modified getNewReservationData: added vmhost to returned data

doxyfile.xmlrpc: removed Doxygen generated comments (there was some discussion on one of the ASF lists that including the comments was a license violation since Doxygen is GPL licensed)

help.php:
-modified submitHelpForm:
  -updated NAMEERR message to state that both first and last names need to be specified
  -updated calls to prettyDatetime to remove 2nd and 3rd arguments
  -added login history to email message
  -added call to getHelpEmail to get email address to send message to
-added getHelpEmail: gets help email address for specified affiliation

image.php:
-modified addEditDialogHTML: removed width specifications for description, usage, and imgcomments textareas and advancedoptions TitlePane; added "(MB)" after "Required RAM" so users know correct units
-modified validateResourceData: added default value of 0 for maxinitialtime; changed check of $return['addomainid'] not matching $extraaddomainid from != to !==

privileges.php:
-modified viewNodes: cleaned up old code at top of function
-modified userLookup: added Max Overlapping Reservations and owned images to displayed user data

requests.php:
-modified viewRequests: added checks to prevent image capture options from being displayed for images with OSinstalltype 'none'
-moved AJfetchRouterDNS from serverprofiles.php to here
-modified AJnewRequest and AJsubmitEditRequest: removed MAC address references from error message returned when $availablerc == -3 since MAC address cannot be specified
-modified AJsetImageProduction and AJsubmitSetImageProduction: set $prettyimage based on the first entry in $data['reservations'] when processing an imaging reservation

resource.php: modified AJstartImage: added addomainvals to returned data

serverprofiles.php: moved AJfetchRouterDNS from here to requests.php

states.php:
-uncommented AJfetchRouterDNS from $noHTMLwrappers
-moved AJfetchRouterDNS $action array entries from serverProfiles to reservations

statistics.php: modified viewStatistics: added OS type to statistics of each image

utils.php:
-modified initGlobals:
  -removed global references to $semid, $AUTHERROR
  -added global reference to $submitErr and $submitErrMsg
  -corrected typo: changed $crytpkey -> $cryptkey
  -changed calls to create_function to use function() instead
-modified checkAccess
  -removed global references to $noHTMLwrappers, $docreaders
  -added check for HTTP_X_USER not being submitted for xmlrpccall
-modified maintenanceCheck: changed call to fgetss to fgets and added separate call to strip_tags
-modified main: removed global reference to $mode
-modified abort: changed font tag setting color to red to use span with class of rederrormsg
-modified getUserResources: removed initialization of $return to array()
-modified encryptSecretKey and decryptSecretKey: changed calls to create_function to use function() instead
-modified getUserInfo: removed initialization of $user to array()
-modified updateUserData: removed $type as it wasn't used
-modified isAvailable: added additional return when check for enough RAM on hosts results in no VMs available; changed debug reference number for case of IP address already being in use as 18 was already used elsewhere
-modified debugIsAvailable: removed global reference to $user; changed case id for IP address already being in use from 18 to 24; added case 23
-modified allocComputer: removed global reference to $requestInfo
-modified checkOverlap: removed global reference to $user
-modified addRequest: removed setting $qh from call to doQuery when doing insert
-modified findManagementNode: removed global reference to $HTMLheader
-modified deleteRequest: removed setting $qh from call to doQuery when doing update
-modified moveReservationsOffComputer: removed global reference to $user
-removed getDepartmentName
-modified getMnsFromImage: removed outer foreach when getting mapped managementnode groups as the data from it wasn't used and just caused the 3 lines in it to be run multiple times with the same data
-modified findAvailableTimes: modified query finding slots available after reservations over to ignore reservations in failed, complete, or reload
-modified sendHeaders: removed global reference to $oldmode
-modified printHTMLHeader: removed global references to $oldmode, $docreaders, and $actions
-modified getDojoHTML: removed commented out case for serverProfiles; removed commented out call to populateProfileStore for viewRequests case

vm.php:
-modified vmhostdata: removed continuation for AJchangeVMprofile from returned data since it is not used
-modified AJvmToHost, AJvmFromHost, AJcancelVMmove, and AJnewProfile: cleaned up old code at top of each function

xmlrpcWrappers.php: cleaned up whitespace

ldapauth.php: changed call to create_function to use function() instead
