Define plugins as namespaced objects instead of as function calls. This
is easier to implement and manage by the framework.
New format changes for defining plugins:
Now create 2 JS files in plugin folder:
-config.js
-[pluginName].js
plugins.js (listing) format:
cloudStack.plugins = [
'testPlugin'
];
config.js format:
cloudStack.plugins.testPlugin.config = {
title: 'Test Plugin',
desc: 'Sample plugin'
};
[pluginName].js format:
cloudStack.plugins.testPlugin = function(plugin) {
//
// Plugin code goes here
//
};
Support performing actions via the autoscaler dialog. This adds
'autoscaleActions' and 'actionFilter' options to the autoscaler, which
specify and handle the actions appearing in the UI.
Performing these actions will cause a loading overlay to appear until
actions are finished, when the action bar is refreshed via the action
filter.
This change includes the new dialog box for the CloudStack Autoscaler
implementation. It is accessible by a button ('Autoscaler') that
appears under each LB rule.
This also contains changes to the multiEdit widget to support features
required for Autoscaler:
-Fixes context/data passing to custom button widgets
-Fixes data retrieval for select fields
Adds new function 'showAddNetwork' to instance wizard configuration,
which conditionally hides the 'add network form' on the select network
step. If it returns true, then show the box, otherwise false hides it.
-Remove VLAN + SG radio buttons; replace with 'Security groups'
checkbox
-Pass boolean 'zone.sgEnabled' to zoneWizard action handler, instead of
'zone.isolationMode' from before.
-Adds new radio button pair, 'isolation mode' under Advanced zone
select, allowing selection of isolation mode
-Isolation mode is disabled if 'Basic' zone is selected
-Pass isolation mode via new property 'zone.isolationMode'
Fixes a bug where the loading state is not immediataly set for the
detail view on performing certain custom UI actions, particularly
enable static NAT.
This passes a separate 'start' function to the custom widgets, which
triggers the loading state, and 'complete' when the action
completes (i.e., the server call is done)
For any list view that has a corresponding detail view, adds a tooltip
to display the compact overview of the detail view contents, including
all available actions. This avoids a user from having to click into a
new panel to see more details and actions for an item.
This will happen automatically for any list view with a 'detailView'
sub-option, and will append a new column to the end of each item
row. If 'noCompact: true' is specified in the detailView's options,
then the quick view will not be rendered.
** Note: This also removes the existing list actions for the instances
and zones tables.
Example, to show a quick view:
listView: {
detailView: {
// Specify noCompact: true to not render a quick view
//
// noCompact: true
...
},
...
}
Conflicts:
ui/scripts/ui/widgets/detailView.js
-Fixes case where 1 existing network is present, but cannot be
unchecked when 'add new network' is checked
-Fixes regression with multiple networks and VPC tiers present, where
unchecking all regular networks will select the hidden VPC network
reviewed-by: jessica
When both VPC and isolated networks are present, fix case where
unchecking first isolated networks triggers checkbox for VPC tier
network, thus making it appear as if no network is selected.
reviewed-by: jessica
Clicking the 'Virtual Router' button will show the same router tab as seen on
the VPC detail view.
-- Note that this is only clickable for admins, as users cannot view router
details in the API.
-Remove the ACL action from the tier chart item
-Adds an ACL overview list view under the VPC configure menu which
displays each tier and their total # of ACLs.
-Add ACL edit to tier detail view
- (misc) Also add IP address tab to tier detail view
For add VPN and add gateway actions: remove loading overlay to allow
user to perform other actions. The overlay is replaced with a set of
notification messages indicating the status of the job.
- Because only 1 gateway can exist per VPC, remove 'add' button from
list view and immediately show create form on click if no gateway is
present; show list view on successful creation. If there is a
gateway, go to list view immediately.
- Rename "Gateways" -> "Private Gateway"
Adds drop-down select to filter networks by VPC.
-If no VPC is selected, only show non-VPC isolated networks
-If VPC is selected, show tiers from specified VPC. Note that only one
tier/network can be checked at a time in this mode, and 'add network'
text field is hidden
If no VPN gateway exists for a VPC, then immediately show a dialog box
asking if user wants to add. If so, create VPN gateway and show list
view afterwards.
- This removes the 'add' button from the list view, moving the code up
a level in the object to siteToSiteVPN.add
- In addition there is a new function, siteToSiteVPN.preCheck, which
returns true/false. If true, then show list view immediately; if
false, show dialog and go through creation process, showing list
view afterwards.
Conflicts:
ui/scripts/vpc.js
When launching a VM via the 'add VM' button on a VPC tier, show
loading icon to the side of the VM count, so that the tier area isn't
blocked, allowing the user to add more VMs or do other actions to the
tier.
Adds a new drop-down to the enable static NAT dialog to allow selecting a tier to be associated with the VM. This is in the header of the list view.
It is defined as follows:
enableStaticNAT: {
...
action: {
noAdd: true,
custom: cloudStack.uiCustom.enableStaticNAT({
// VPC
tierSelect: function(args) {
args.response.success({
data: [
{ id: '1', description: 'VPC 1' },
{ id: '2', description: 'VPC 2' }
]
});
},
...
Add link in tooltip for site-to-site VPN, which opens a new panel
showing the list view. This draws from the existing 'siteToSiteVpn'
network subsection, so no modification should be required to the
existing list view.
After performing an action that changes state, namely starting and
stopping a tier, run through the action pre-filter again, to make sure
that the allowable actions are properly refreshed.
Conflicts:
ui/scripts/ui-custom/vpc.js
For reusability, move action filter handling for VPC tier actions to a
separate function. This allows for easier refreshing of actions after a
tier's state has changed.
** Note: this is a work-in-progress, and only contains dummy content
Implement UI for managing VPC tiers, via a custom chart-like UI list
tiers and allowing the management of VMs associated with the VPCs.
(2) When sdn.ovs.controller is false: hide isolation method dropdown. isolationmethods parameter won’t be passed to createPhysicalNetwork API.
(3) When the physical network is in Basic zone (regardless of sdn.ovs.controller) : hide isolation method dropdown. isolationmethods parameter won’t be passed to createPhysicalNetwork API.
Adds new action, upload volume, to the storage->volumes list view
header. This will present a dialog to specify URL & name of volume,
and select a VM to attach the volume to.
Server API calls are still incomplete and rely on hardcoded values.
-Add additional shortcuts for:
-Primary storage
-Secondary storgage
-Virtual routers
-System VMs
-Replace host stats with the new shortcuts
-Add 'zone' dropdown to create form for the newly added-shortcuts'
sections, to support creating these items without a zone context
On the physical resources dashboard, add a button to view all
resources for pods, clusters, and hosts. This will compile a
list view containing the resources across all zones.
In order to be able to add resources when in this zone-inspecific mode,
a zone drop-down had to be added to the create forms for
pods, clusters, and hosts.
Remove closeOnEscape from $(':ui-dialog') option calls, as they cause
JS errors breaking the projects UI. closeOnEscape is already defined
when the dialog is initialized, so these don't need to be defined
again.
-Allow for editing of traffic labels within the zone wizard; visible
by going to the create physical network(s) step and clicking the
'edit' button under each traffic type.
-Make hypervisor selection part of the create zone step, instead of
the add cluster step -- this is to allow the physical network UI to
have the selected hypervisor for the edit traffic labels dialog.
-Show drag-and-drop UI for basic zone setup, so that user can edit
traffic labels for a basic zone. Note that user can only have one
physical network here.
-Allow creation of storage traffic in a basic zone configuration, by
optionally dragging storage traffic type icon to first physical
network
Conditionally show EULA screen, only if eula.html is retrieved
successfully via AJAX call (i.e., doesn't return a 404). Otherwise,
bypass EULA and start with intro screen.
-Fix 'view all' alerts to open up a new panel with the Alerts listing
-Remove 'view all' for host alerts, as there is no relevant section to
go to for this
-Fix some localization codes
status 13589: resolved fixed
Remove actions column from 'Review' users list view -- this was having
buggy behavior due to widget limitations. User can still add/remove
afterwards by going to project detail view.
Fix back button causing erratic behavior, due to force re-populating
of form fields in each step; data only repopulates now if an item on a
previous step has changed.
status 12497: resolved fixed
-Replace broken 'My projects' with latest events listing
-Show real network stats; replace with 'Owned networks' and 'Owned IP
addresses'
status 13210: resolved fixed
Rework zone wizard:
-Support creation of multiple physical networks via drag-and-drop UI
-Support configuration of traffic types
-Allow creation of complete zone resources -- pods, clusters, hosts,
storage -- in a similar fashion to the quick install
-Add requirements to support elastic load balancer
Rework zone details page:
-Convert old zone chart into a regular zone details pane, split into
multiple tabs
-Add zone-specific resources dashboard
-Allow display of multiple physical networks
As updateResourceLimits is only available for ROOT admins, hide the
resources tab for normal users, to prevent an error message from
appearing when user tries to save form data.
-Add support to filter network offerings based on whether security
groups is checked; options then come from a separate
'securityGroupNetworkOfferings' object:
args.response.success({
domains: domainObjs,
// Non-security-group-enabled offerings
networkOfferings: networkOfferingObjs,
// Security group-enabled offerings
securityGroupNetworkOfferings: []
});
-Remove old/unused fields from wizard
-Add new info 'bubbles' to zone chart
-Add/restore Add Pod section as step 3 of zone wizard UI
-Add network offering drop-down to zone wizard, for basic zone
-Add list view for users to accept/decline invitations, found under
Projects->Invitations drop-down
-Allow project admin to remove pending invitations
-If invites are required, show pop-up after adding user, indicating
that user will be added after accpting invitation
-Hide all invitation-related UI elements if
projects.invite.required == false
-Make security groups a detail view (like virtual router details), as
there is only one security group provider per zone.
-Add a view all security groups button, to provide an alternate way to
view security groups, outside the network section
-Always unbind event if object isn't visible
-Use widget-specific refresh event for multi-edit actions, to prevent
other widgets from being refreshed unecessarily.
-Implement default network radio button for all networks
-Make all network items check boxes
-Automatically check a selected default network
NOTE: Updated server calls need still need to be implemented
-Move System VMs section to relevant are on zone chart
-Make Virtual Router provider a detail view
-Move Virtual Appliances listing to 'virtual routers' detail tab
-bug 12141: Show VM details on static NAT chart
-Move VPN actions from list view to detail view, to avoid excessive
server calls from being made (due to needing additional calls to get
VPN/network data)
-Fix network action refresh for list view and detail view