[View]  [Edit]  [Lock]  [References]  [Attachments]  [History]  [Home]  [Changes]  [Search]  [Help] 

[NTH] New(extensible) platform options

The "Start Coding" button has a "+" button that display platform options.
Actually it is filled with hand made(?) list of options, where the name and contribution source is known to the service.
It would be nice to have a better algorithm to fill the list of options. e.g.:
  1. have a category to present the target (Web/Android/iOS/...)
  2. have a description for each platform (short text explaining where/how the platform is used)
  3. be extensible by the user (an U8 user can design a custom platform to be presented when logged).

Implementation notes

Under each U8 user folder, we can have a file named "platforms.json" with the platforms available to the user.
The platform options are built from data in logged user and user "smalltalking".

Suggested format for platforms.json

A JSON formated file with the following fields:
field
description
namea string with the name of the platform to be presented in menu. Could be a dash separated composite name. For example: "Web-Headles", wich means "Headles platform is categorized as Web platform". See below for a real example.
descriptiona string to be popup (or shown) when the user needs more info(mouseover) about a platform
urlthe url of the source contribution to clone.
avatarurl of image representing the actual platform. If none S8 avatar is taken as default image


Default (formated)content of platforms.json
[
{"name":"Web-WI8 + UI8",
 "description":"Smalltalk tools for U8 (workspace, CHB, inspectors, references, and more) ",
 "url":"./contribution.aspx?contributionId=239&action=fork",
 "avatar":"./profile/aleReimondo/239/WI8.png"},
{"name":"Web-Headles",
 "description":"Enables booting from (multiple) external files",
 "url":"./contribution.aspx?contributionId=218&action=fork",
 "avatar":"./profile/aleReimondo/218/headless.png"},
{"name":"Web-Compact Mode",
 "description":"Image based web development. Minimalistic browsing tools",
 "url":"./contribution.aspx?contributionId=64&action=fork",
 "avatar":""},
{"name":"Mobile-Android",
 "description":"S8 for Android.",
 "url":"./contribution.aspx?contributionId=128&action=fork",
 "avatar":"./profile/smalltalking/128/a8.jpg"},
{"name":"Mobile-IOS",
 "description":"COCO8: Native application framework to write iOS native applications",
 "url":"./contribution.aspx?contributionId=343&action=fork",
 "avatar":"./profile/aleReimondo/343/coco8.png"},
{"name":"Console",
 "description":"S8 execution machinery for console",
 "url":"./contribution.aspx?contributionId=125&action=fork",
 "avatar":"./profile/smalltalking/125/console.png"},
{"name":"Node",
 "description":"Server side development using S8 + NodeJS",
 "url":"./contribution.aspx?contributionId=127&action=fork",
 "avatar":"./profile/smalltalking/127/nodejs-s8.jpg"}
]