Ticket #7031 (closed: fixed)

Opened 7 years ago

Last modified 5 years ago

Provide delete functionality to ScriptRepository

Reported by: Gesner Passos Owned by: Gesner Passos
Priority: critical Milestone: Release 2.6
Component: GUI Keywords: ScriptRepository
Cc: Blocked By:
Blocking: Tester: Samuel Jackson

Description (last modified by Nick Draper) (diff)

Users requested to be able to delete some scripts from the central repository.

This may be done with certain restriction.

From now, it is required that the user is the author of the script to be able to delete it.

Change History

comment:1 Changed 7 years ago by Gesner Passos

Tester:

Before doing anything, check that your property UploaderWebServer is http://upload.mantidproject.org/scriptrepository/payload/publish_debug. Otherwise, you may end up removing real files from the scriptrepository. Assuming that you do not want to dirty the scriptrepository git history.

The word _debug, means, that the upload and delete will occur on sandbox repository! Bear this in mind, to correctly evaluate errors in the process.

Happy path:

  • Open ScriptRepository (File->ScriptRepository)
  • if it is not installed, install it.
  • Download reflectometry/README.md
  • Open this file and change something, and close it.
  • Click Reload on ScriptRepository interface.
  • You are able to upload. Upload this file (it will upload to the sandbox -> this is necessary, because we need the same path inside the sandbox and scriptrepository, to be able to simulate deleting one entry from the scriptrepository).

This was the necessary steps, to be able to start testing this ticket.

  • Now, click on its delete icon
  • Let's test first that you give up deleting
    • press NO -> the file is not removed, and nothing changes.
  • Now, let's test that you want to delete it only locally.
    • press YES without checking the checkbox
    • the file is removed from the folder, and the icon is changed to allow you to download the file again (because now, it is only available at the central repository).
  • Download the file again.
  • Click on delete icon
  • Now, let's test that you want to delete it remotely, but you are lazy and do not want to give a reason for deleting it:
    • Check the checkbox, but leave the comment empty.
    • click yes
    • You will be informed that you are not allowed to delete it without reason (commit message)
  • Now, you are furious, and you want to delete it:
    • click on delete
    • check the checkbox
    • fill the reason: because I want to!
    • click yes
    • wait a little, you will not see this file any more -> check that it does not exist in sandbox either.
  • Restart mantid and be angry, it will apear again -> to be downloaded(because it was not removed from scriptrepository, only from sandbox).

comment:2 Changed 7 years ago by Gesner Passos

  • Status changed from new to accepted

comment:3 Changed 7 years ago by Gesner Passos

Extend the interface of ScriptRepository for removing files

Add two new methods to ScriptRepository to allow removing files locally and from the central repository.

re #7031

Changeset: f0f0901e076d2006b7588cd161126ff47d33fbf8

comment:4 Changed 7 years ago by Gesner Passos

Definition of the unit test for removing methods

Creation of the unit test to ensure the functioning of removing files locally and remotelly.

re #7031

Changeset: f35c0b4d52884b681366b74a29885b1799061073

comment:5 Changed 7 years ago by Gesner Passos

Implementation of removing files ScriptRepository

Implements the remove and remove_local methods.

re #7031

Changeset: a6ed4ab4310e8cc9be1b86d05d606e3139e5c107

comment:6 Changed 7 years ago by Gesner Passos

local empty folder returns status remote_only

a unit test to trigger this effect.

re #7031

Changeset: c6d829d6b0644a52001876b4cd4ec31207ccc629

comment:7 Changed 7 years ago by Gesner Passos

Solve the issue of empty folder

It also allows removing local folders recursively

re #7031

Changeset: 72ea93a2b694be40f87915d677e3e3b67c41f92c

comment:8 Changed 7 years ago by Gesner Passos

Provide the delete functionality to RepoModel

Extend RepoModel to support the delete entry functionality.

re #7031

Changeset: ac7fc3da23ebfad6fc9f893ee5c4d48faf5729c0

comment:9 Changed 7 years ago by Gesner Passos

Add trash icon to Mantid

It will be used for the delete functionality.

re #7031

Changeset: 16029fcc34cad9fb0f344e46cca2d343e79d77cd

comment:10 Changed 7 years ago by Gesner Passos

Delegate to Delete functionality

extends ScriptRepositoryView to provide interface to delete functionality

re #7031

Changeset: cb91d346fb51a66100eb21c3830153878c71f163

comment:11 Changed 7 years ago by Gesner Passos

  • Status changed from accepted to verify
  • Resolution set to fixed

comment:12 Changed 7 years ago by Nick Draper

  • Status changed from verify to verifying
  • Tester set to Nick Draper

comment:13 Changed 7 years ago by Nick Draper

I think this can only sensibly be tested on the live repo, unless we create a debug download mechanism as well, the upload and download need to match.

For using the live report, just use your own area under the users directory and keep things small.

comment:14 Changed 7 years ago by Nick Draper

  • Status changed from verifying to reopened
  • Resolution fixed deleted

Changes:

  1. Get rid of the local file deletion. I don't think users will expect this, make delete only delete from the repository.
  2. when you upload even small files it seems quite slow before the icons tells you it is done.
  3. After deleting the icon still tells you the file is up to date on the repo.

comment:15 Changed 7 years ago by Gesner Passos

Improve the delete functionality

This commit deals with 2 points:

  • when you upload even small files it seems quite slow before the icons tells you it is done:
    • It is still slow the interection with the server.But now, it updates the icon as soon as the upload thread finishes.
  • After deleting the icon still tells you the file is up to date on the repo.
    • This used to occur if the user clicked on reload button while uploading. Now, this button is disabled.

re #7031

Changeset: 45b3387dab56c6e3dbc6878a43457b7c73adde21

comment:16 Changed 7 years ago by Gesner Passos

Change the requirement for deleting entries from ScriptRepository

Request "Get rid of the local file deletion. I don't think users will expect this, make delete only delete from the repository."

The script repository will not remove files locally. The ScriptRepository.h indicates this change and ScriptRepositoryTestImpl.h translate the current requirement on removing entries from repository.

re #7031

Changeset: 3a1d335a1c6f5e6d05170b9d35d43d64ff95698d

comment:17 Changed 7 years ago by Gesner Passos

Implement the new requirement for deleting entry

re #7031

Changeset: 9893062e46df838fe62b6ba75ad95a9e4af9002a

comment:18 Changed 7 years ago by Gesner Passos

Adapt the RepoModel to the new requirement on deleting entries

re #7031

Changeset: 5bed083f3ccba6aed7bf90d3d1b444b36b278455

comment:19 Changed 7 years ago by Gesner Passos

Allow the ScriptRepository Widget to be resized in a better way.

re #7031

Changeset: d846a698924968aa2e69f6bf15faf619f7f5fb19

comment:20 Changed 7 years ago by Gesner Passos

  • Status changed from reopened to accepted

comment:21 Changed 7 years ago by Gesner Passos

Improve responsiveness and fast change the icon

Sometimes it used to take much time to change the icons of upload/donwload trash, working and so on. It was a problem of emiting the indexes.

Now the connection is better. And the icons changes as soon as the upload, delete, download are finished.

re #7031

Changeset: cb8e4a7f2459b17c6005d135867b0ceb657d33ed

comment:22 Changed 7 years ago by Gesner Passos

  • Status changed from accepted to verify
  • Resolution set to fixed

comment:23 Changed 7 years ago by Samuel Jackson

  • Status changed from verify to verifying
  • Tester changed from Nick Draper to Samuel Jackson

comment:24 Changed 7 years ago by Samuel Jackson

Merge remote-tracking branch 'origin/feature/7031_deleting_scripts'

Conflicts:

Code/Mantid/MantidQt/API/inc/MantidQtAPI/ScriptRepositoryView.ui

Refs #7031

Changeset: a7dfa655bfa13b10753e0014fec3fd95ec2d11de

comment:25 Changed 7 years ago by Gesner Passos

Fix merge conflict on ScriptRepositoryView.ui

re #7031

Changeset: c2ac5af04135f9c7b7c61888b430320ab593e509

comment:26 Changed 7 years ago by Samuel Jackson

  • Status changed from verifying to closed

comment:27 Changed 7 years ago by Nick Draper

  • Component changed from Mantid to Framework

comment:28 Changed 7 years ago by Nick Draper

  • Component changed from Framework to User Interface
  • Description modified (diff)

comment:29 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 7877

Note: See TracTickets for help on using tickets.