In edit client form, set boot field to read-only
Boot mode can be updated from Commands -> Set boot mode, it is more flexible to
do it from there, because you can select several clients and set the boot mode
at once.
Remove netiface selectable in clientsDetails form.
eth{0,1,2} is misleading, it does not represent the real device in the client.
And users we know always boot from the first device.
Hide this feature until there is a better design for this.
Show a more detailed description of each choice
Display an error and redirect the user if an empty list of os's was
received. Post does not work with an empty list
Add support for adding computers to a folder.
It uses a js script that when selecting a folder in the html form, it
will also select the parent of the folder. For instance, if the user
were to select a folder that is contained inside a room, the room would
also get selected. This allows the view to know which parent contains
the folder.
- Remove a table with redundant info; it was displaying server's stats,
which was already in another table
- Add last update info at the top of the page
- Make page more robust by checking if ogLive images are available.
Before this patch, page shows a traceback if the ogLive list are not available.
Allow user to change boot mode when editing a client.
First item selected is the client's current boot mode. This is so that
if the user edits the client's data, but doesnt touch bootmode, it stays
the same.
Remove id from client's bubbles in the following commands: Power
(Poweroff, Poweron, Reboot); Setup (Set boot mode, Set ogLive); Client
(Start session)
To make the string replacement, a custom jinja filter has been created
In client_details template, rename 'create' button to 'submit'.
This template is used by both client-add and client-edit commands; it
would not make sense to have a 'Create' button in client-edit.
Allow to update only images that are in the repo the client is assigned
to; if an image is inside a different repo, it will not appear in the
'Image' selector
Fix client detail form failing in some cases. It would fail if the user
wanted to view the details of a client, that had a partition using an
image that is no longer in the list of all images stored by the servers.
This could happen if the image was deleted, but the client still was using
the image in one of its partitions
Allow only the creation of images in the repository that is currently
assigned to the selected client.
This operation is still not handled in ogserver and oglive, it needs
more work behind the scenes: it needs an update in the templates and
it also needs the new ogLive builder so ogClient has control on the
samba mount.
Add, in import clients menu, a selector to select the repo to be
associated with the clients about to import
modify OG_CLIENT_DEFAULT_BOOT variable to be 'oglive'; 'pxe' is not a
valid boot mode, and ogserver would return an error
Make the partition and format form fail if the user has not added a
cache partition.
A cache partition is required to make the restoration of images work
Fix a bug that made the 'add a new partition' button unusable if all
partitions (rows) were deleted.
The reason for this bug was that the AddPartition() function would add a
new partition by cloning an already present html row element. This would
fail if no more rows were present in the table.
The solution implemented checks, previous to delete a partition, if it
is the last partition. If it is, then, instead of removing the whole
row, it just empties it.
Html button element needs to contain 'type="button"' attribute for this to
work. Otherwise, default action for the button is submit and it would
redirect after clicking.
combine repo_add_get and repo_add_post into one, action_repo_add. This
is to follow convention across all the views and to clarify that it is
an action.
rename repos_details template to repos_add. Now it is clear the purpose
of each action template; there is one for each: add, delete and update
allow the user to delete a repo by selecting one and pressing the delete
button. Previous to deletion, show the user a confirmation page (a form)
with the details of the repo to delete
the confirmation form is constructed with the fields of Repoform.
RepoForm is also used in template used to create a repo. To make both
templates work with RepoForm, RepoForm's field 'create' has been renamed to
'submit'
ogcp.js: add a function to make that, when the user selects a
repository, the server in which it is contained is automatically
checked. We need it checked so that action_repo_delete can know the
server to which it has to send the delete request. Use data-server in
repos_details.html to make this work
Validate, in action_delete_repo, that user has only selected one repo to
delete. In order to do that, action_delete_repo view needs to be able to
get a list of all selected repos. This is only possible if <input>
elements that are associated with repos info contain a different name
attribute per repo. In this case, template repos.html has been modified
to use name={repo name}-{repo_id}. After this, parse_elements() will
work and parse a set containing all selected repos.
modify html input associated to repos server in order to follow same
convention as in other templates. For example, images uses image-server;
scopes, scope-server.
The menu includes a list of the repos of each server. The user can
select a server or a repo to make changes.
As of now, the only action possible is to add a repo to selected
server.
The work contained in this commit can be structured in:
1. Add the repos menu:
- Add a 'repos' button in the menus bar (base.html).
- Add repos.html template to create the management repos menu.
- In ogcp.js, add function to store in browser's local storage which
elements of the sidebar are uncollapsed. This saves the sidebar state
after a page refresh.
- Add manage_repos() in views.py
2. Allow to add a repo:
- Add template with form to add a repo (repos_details.html)
- Create RepoForm(FlaskForm) in action_forms.py
- Add repo_add_get() and repo_add_post() in views.py
ogcp.js calls this endpoint very often, which send a request to the ogserver
through the REST API. This call is needed because javascript code cannot
directly talk to the ogserver since it does not know what the API_KEY is.
Add a filter to skip log GET /scopes/status requests.
Thanks to DaniGM for helping with this.
Add a placeholder that shows the user an example of what a valid mac
address looks like.
By now, mac needs to be specified as AABBCCDDEEFF without : for historical
reasons.