diff --git a/module/javascript/script_module.js b/module/javascript/script_module.js
index 78cae4b027466856a4aacb0b9d84ae7f6d304cb6..db3c69f1043ee8fb02e402906b686add1583963d 100644
--- a/module/javascript/script_module.js
+++ b/module/javascript/script_module.js
@@ -2697,6 +2697,8 @@ vitisApp.on('appMainDrtvLoaded', function () {
         var envSrvc = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(['envSrvc']);
         var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(['propertiesSrvc']);
         var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(['formSrvc']);
+        var $rootScope = angular.element(vitisApp.appMainDrtv).injector().get(["$rootScope"]);
+        var $translate = angular.element(vitisApp.appMainDrtv).injector().get(["$translate"]);
         //
         var scope = this;
         ajaxRequest({
@@ -2709,10 +2711,14 @@ vitisApp.on('appMainDrtvLoaded', function () {
                     formSrvc['getFormElementDefinition']('url_widget_file', envSrvc['sFormDefinitionName'])['visible'] = false;
                     formSrvc['getFormElementDefinition']('btn_download_widget_file', envSrvc['sFormDefinitionName'])['visible'] = false;
                     formSrvc['getFormElementDefinition']('btn_delete_widget_file', envSrvc['sFormDefinitionName'])['visible'] = false;
+                    // Affiche le message de succés.
+                    $translate("SUCCESSFUL_OPERATION").then(function (sTranslation) {
+                        $.notify(sTranslation, "success");
+                    });
 
                 } else {
                     // Affichage de la fenĂȘtre modale d'erreur.
-                    this['modalWindow']('dialog', response["data"]['errorMessage'], {'className': 'modal-danger'});
+                    $rootScope['modalWindow']('dialog', response["data"]['errorMessage'], {'className': 'modal-danger'});
                 }
             }
         });
diff --git a/web_service/ws/Workspaces.class.inc b/web_service/ws/Workspaces.class.inc
index 41a80bdce7b70978429ccb876b8bfcac63cdd189..0f342563f423b975c9cb3c384650c9dbb90cc98b 100755
--- a/web_service/ws/Workspaces.class.inc
+++ b/web_service/ws/Workspaces.class.inc
@@ -1072,20 +1072,22 @@ class Workspaces extends GTF {
                 }
             } elseif ($this->aPath[3] == "DeleteWidgetFile") {
                 unset($this->aPath[3]);
+                $aReturn = array('status' => 1, 'message' => '');
                 $oWorkspace = new Workspace($this->aPath, $this->aValues, $this->aProperties, $this->oConnection);
                 $oWorkspace->GET();
                 $sWorkspace_key = $oWorkspace->aFields["key"];
-                // Emplacement des widgets
-                $sWidgetFilePath = $this->aProperties["vas_home"] . '/ws_data/gtf/widget/' . $sWorkspace_key . ".html";
-                $bError = False;
-                if (is_file($sWidgetFilePath)) {
-                    if (!unlink($sWidgetFilePath)) {
-                        $bError = True;
-                        $this->aFields['errorMessage'] = "Failed to remove the widget " . $sWidgetFilePath;
-                    }
+                // Suppression du fichier de widget.
+                if (deleteFileFromWsDataDirTree('gtf', 'widget', '', '', $sWorkspace_key . '.html') === false) {
+                    $aReturn = array('status' => 0, 'message' => 'DELETE_FILE_ERROR_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY', 'error_code' => null);
+                    writeToErrorLog('Failed to remove the wisget file ' . $sWorkspace_key . '.html');
+                }
+                $aXmlRacineAttribute['status'] = $aReturn['status'];
+                if ($aReturn['status'] == 1)
+                    $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
+                else {
+                    $oError = new VitisError($aReturn['error_code'], $aReturn['message']);
+                    $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
                 }
-                $aXmlRacineAttribute['status'] = (int) !$bError;
-                $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
                 return $sMessage;
             }
         } else {