From 4d04eb6625d8eda25861fdd14a5e55da616cecba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Gauthier?= Date: Mon, 10 Jul 2017 15:04:29 +0200 Subject: [PATCH] Work in progress --- .../rudder/web/comet/AsyncDeployment.scala | 49 ++++++++++++++++++- .../main/webapp/style/rudder/rudder-menu.css | 16 ++++-- 2 files changed, 60 insertions(+), 5 deletions(-) diff --git a/rudder-web/src/main/scala/com/normation/rudder/web/comet/AsyncDeployment.scala b/rudder-web/src/main/scala/com/normation/rudder/web/comet/AsyncDeployment.scala index 54303c440e..05929e2e8a 100644 --- a/rudder-web/src/main/scala/com/normation/rudder/web/comet/AsyncDeployment.scala +++ b/rudder-web/src/main/scala/com/normation/rudder/web/comet/AsyncDeployment.scala @@ -71,7 +71,8 @@ class AsyncDeployment extends CometActor with CometListener with Loggable { private[this] val eventList = RudderConfig.eventListDisplayer private[this] val uuidGen = RudderConfig.stringUuidGenerator private[this] val clearCache = new ClearCache() - + private[this] val updatePTLibService = RudderConfig.updateTechniqueLibrary + private[this] val updateDynamicGroups = RudderConfig.updateDynamicGroups //current states of the deployment private[this] var deploymentStatus = DeploymentStatus(NoStatus, IdleDeployer) @@ -218,13 +219,50 @@ class AsyncDeployment extends CometActor with CometListener with Loggable { val callback = JsRaw("$('#generatePoliciesDialog').bsModal('show');") { SHtml.a( - Text("Regenerate all policies") + Regenerate all policies , callback , ("class","regeneratePolicies") ) } } + private[this] def reloadTechniques : NodeSeq = { + def process = { + updatePTLibService.update(ModificationId(uuidGen.newUuid), CurrentUser.getActor, Some("Technique library reloaded by user")) match { + case Full(x) => + //S.notice("updateLib", "The Technique library was successfully reloaded") + case e:EmptyBox => + val error = e ?~! "An error occured when updating the Technique library from file system" + logger.debug(error.messageChain, e) + //S.error("updateLib", error.msg) + } + } + { + SHtml.a( { + () => + process _ + Noop + } + , Reload Techniques + ) + } + + } + private[this] def reloadDynamicGroups : NodeSeq = { + def process = { + updateDynamicGroups.startManualUpdate + } + { + SHtml.a( { + () => + process _ + Noop + } + , Reload dynamic groups + ) + } + + } private[this] def layout = { +
  • + + {errorPopup} diff --git a/rudder-web/src/main/webapp/style/rudder/rudder-menu.css b/rudder-web/src/main/webapp/style/rudder/rudder-menu.css index ea4d4db2ed..288956e606 100644 --- a/rudder-web/src/main/webapp/style/rudder/rudder-menu.css +++ b/rudder-web/src/main/webapp/style/rudder/rudder-menu.css @@ -671,6 +671,18 @@ a.sidebar-toggle{ color:#fff; height: 100%; } +ul.dropdown-menu li.footer > a > i.fa{ + position: relative; + top: 1px; + left: 8px; + color:#999; + font-size: 16px; + margin: 0; + transition-duration:.2s; +} +ul.dropdown-menu li.footer > a > i.fa:hover{ + color:#777; +} .tw-bs .navbar-nav li.dropdown { height: 50px; } @@ -1467,9 +1479,7 @@ form .tooltip-content p { transform:rotate(-45deg); transition-duration:.2s; } -.callout-fade:hover div.marker span.glyphicon,.callout-fade:hover div.marker span.fa{ - transform:rotate(-65deg); -} + /* --- SUCCESS --- */ .callout-fade.callout-success{ border-left-color: #9bc832;