IGB Javascript Wish List

From Backstage Lore Wiki
Jump to: navigation, search

With Dominion releasing a new IGB; here is a compiled list of all JavaScript functionality that is desired by 3rd party developers.

Current Functionality can be found here.

Current Planned Functions

This is a tentative list based on CCP Ronin comments (src)

  • javascript:CCPEVE.ShowInfo(typeID) - implemented
  • javascript:CCPEVE.ShowRoute(systemID) - implemented as CCPEVE.showRouteTo
  • javascript:CCPEVE.ShowMap(systemID) - implemented
  • javascript:CCPEVE.ViewFitting(???) - implemented as CCPEVE.showFitting
  • javascript:CCPEVE.AskForTrust() - imlemented as CCPEVE.requestTrust(trustableUrl)


Desired Functions to Interact with the UI

Assumption is that all calls will open the appropriate window or dialog to allow the user to edit/accept the action. No calls will actually perform an action beyond this.

  • Money
    • javascript:CCPEVE.GiveMoney(characterID, amount, description) - see mockup below
    • javascript:CCPEVE.GiveMoneyFromCorp(characterID, amount, description, walletID)
  • Buddy List
    • javascript:CCPEVE.AddBuddy(characterID)
  • Mail & Chat
    • javascript:CCPEVE.NewMail(characterID, subject, body)
    • javascript:CCPEVE.NewGroupMail(groupID, subject, body)
    • javascript:CCPEVE.JoinMailList(ID) - implemented as CCPEVE.joinMailingList
    • javascript:CCPEVE.LeaveMailList(ID)
    • javascript:CCPEVE.JoinChatChannel(ID) - implemented as CCPEVE.joinChannel
    • javascript:CCPEVE.LeaveChatChannel(ID)
    • javascript:CCPEVE.StartConversation(characterID)
  • Contracts
    • javascript:CCPEVE.ShowContract(contractID) - implemented
    • javascript:CCPEVE.NewCourierContract(sourceStationID, listOfItemIDs, targetStationID, collateral, payment)
    • javascript:CCPEVE.NewPrivateCourierContract(playerID, sourceStationID, listOfItemIDs, targetStationID, collateral, payment)
    • javascript:CCPEVE.NewPrivateItemExchangeContract(playerID, stationID, listOfItemIDs, payment)
      intended to show the last page of the contract wizard (Summary) with the arguments prefilled
    • javascript:CCPEVE.GetContracts(searchstring, [regionID],[charachterID],[TypeID],[?])
      intended to show the Contracts window with the arguments prefilled. Autosearch not enabled as that would override a users "Ok" capability, aka "Search"
  • Overview
    • javascript:CCPEVE.SaveOverviewSetting(xml)
  • Market
    • javascript:CCPEVE.ShowMarketInfo(typeID) - implemented as CCPEVE.showMarketDetails
  • Starmap
    • javascript:CCPEVE.SetAutoPilotDestination(systemID) - implemented as CCPEVE.setDestination
    • javascript:CCPEVE.ClearAutoPilotDestination()
    • javascript:CCPEVE.OptimizeAutoPilotRoute()
  • Standings
    • javascript:CCPEVE.EditStandings(characterID, newStanding, reason)
    • javascript:CCPEVE.EditCorpStandings(???)
  • Fleets
    • javascript:CCPEVE.JoinFleet(fleetID)
    • javascript:CCPEVE.LeaveFleet()
    • javascript:CCPEVE.AddToWatchList(characterID)
  • Other
    • javascript:CCPEVE.ShowInfo(any ID) - implemented for type IDs (with optional second parameter for specific item IDs)
      • would be nice if the context menu worked as in the old IGB, allowing, for example, warping to celestials
    • javascript:CCPEVE.ShowContextMenu(anyID, x, y)
      where x and y are offset from IGB window.
    • javascript:CCPEVE.SetStarbasePassword('pass')

Desired Functions to Retrieve Information

  • Mail & Chat
    • javascript:CCPEVE.IsSubscribedToMailList(ID)
    • javascript:CCPEVE.GetSubscribedMailLists()
    • javascript:CCPEVE.HasJoinedChannel(ID)
    • javascript:CCPEVE.GetJoinedChannels()
  • Starmap
    • javascript:CCPEVE.GetJumpCount(systemID,...,systemID)
      returns an object array list where the object is composed of (systemID,jumpCount) (src)
    • javascript:CCPEVE.GetAutoPilotRoute()
    • javascript:CCPEVE.IsSystemOnAutoPilotRoute(systemID)
  • API Key
    • javascript:CCPEVE.GetLimitedApiKey()
      pops up a confirmation window and (if approved) returns the limited API key of the user
    • javascript:CCPEVE.GetFullApiKey()
      pops up a red flashing confirmation window and (if approved) returns the full API key of the user
  • Ship Fitting
    • javascript:CCPEVE.GetShipFitting()
      pops up a confirmation window and (if approved) returns the complete ship fitting (possibly Ship DNA string formatted)
  • Fleets
    • javascript:CCPEVE.GetFleet()
      returns the id of the current fleet your in.
    • javascript:CCPEVE.getAvailableFleets()
      Returns an array full of objects, describing what fleets the user is able of joining
    • javascript:CCPEVE.isFleetBoss()
      Returns a boolean value that tells whether the current character is on fleet and is its boss.
    • javascript:CCPEVE.getFleetMembers()
      Returns either a flat list, or a hierarchical list of current fleet members (up to implementation, latter preferred).

Desired Events

Some events would also like to be available so that a JavaScript function can be assigned to them. This would allow for more complex AJAX functions to occur between a website and the IGB.

  • CCPEVE.OnJump (alternatively CCPEVE.OnSessionChange)
    SessionChangeArguments containing the information available in the headers.
  • CCPEVE.OnDrop
    Drop arguments containing: label, typeID, itemID, quantity, ... The idea behind OnDrop is that items such as systems, contracts, pilots, ships, fittings etc can be dragged around and linked in chat text. So should those same items be able to be dragged into an IGB window and get properly referenced.
  • CCPEVE.onFleetStatusChange
    Called whenever a character joins, leaves or changes positions / attributions (boss, booster) in fleet

UI Mockups

Please note: These screenshots are mockups, i.e. suggestions how a window could look like. They do not show anything endorsed, implemented or deployed by CCP.

Transfer Money

File:TransferMoneyMockup.png

The mockup shows a possible UI for a CCPEVE.giveMoney or CCPEVE.transferMoney method.

As this method is highly prone to griefing, security measures need to be implemented. For example:

  • A five second countdown before the OK button is enabled.
  • The ISK amount to be transferred is both shown in full and shortened.
  • The character name of the recipient is hyperlinked so users can verify they're sending their money to the right person.


.

Personal tools
Namespaces

Variants
Actions
Navigation
Tools