-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add custom content to Snackbar nomad helper warning when nomad_helper…
…_url doesn't exists - Window contains more detailed instruction how to configure nomad_helper_url (reference #54)
- Loading branch information
1 parent
d9c749b
commit b7fae26
Showing
6 changed files
with
266 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
59 changes: 59 additions & 0 deletions
59
...t/apacheRoyaleTemplatedApp/view/controls/snackbarNomadHelperUrl/SnackbarNomadHelperUrl.as
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
package view.controls.snackbarNomadHelperUrl | ||
{ | ||
import org.apache.royale.jewel.Snackbar; | ||
import view.controls.snackbarNomadHelperUrl.beads.SnackbarNomadHelperUrlModel; | ||
|
||
public class SnackbarNomadHelperUrl extends Snackbar | ||
{ | ||
public function SnackbarNomadHelperUrl() | ||
{ | ||
super(); | ||
|
||
this.typeNames = "jewel snackbar layout SnackbarNomadHelperUrl"; | ||
} | ||
|
||
public static function show(dataDirectory:String, nomadBaseUrl:String, configurationNomadUrl:String, parent:Object = null):SnackbarNomadHelperUrl | ||
{ | ||
var snackbar:SnackbarNomadHelperUrl = new SnackbarNomadHelperUrl(); | ||
snackbar.message = ""; | ||
snackbar.duration = 0; | ||
snackbar.action = "Close"; | ||
snackbar.dataDirectory = dataDirectory; | ||
snackbar.nomadBaseUrl = nomadBaseUrl; | ||
snackbar.configurationNomadUrl = configurationNomadUrl; | ||
|
||
snackbar.show(parent); | ||
return snackbar; | ||
} | ||
|
||
public function get dataDirectory():String | ||
{ | ||
return SnackbarNomadHelperUrlModel(model).dataDirectory; | ||
} | ||
|
||
public function set dataDirectory(value:String):void | ||
{ | ||
SnackbarNomadHelperUrlModel(model).dataDirectory = value; | ||
} | ||
|
||
public function get nomadBaseUrl():String | ||
{ | ||
return SnackbarNomadHelperUrlModel(model).nomadBaseUrl; | ||
} | ||
|
||
public function set nomadBaseUrl(value:String):void | ||
{ | ||
SnackbarNomadHelperUrlModel(model).nomadBaseUrl = value; | ||
} | ||
|
||
public function get configurationNomadUrl():String | ||
{ | ||
return SnackbarNomadHelperUrlModel(model).configurationNomadUrl; | ||
} | ||
|
||
public function set configurationNomadUrl(value:String):void | ||
{ | ||
SnackbarNomadHelperUrlModel(model).configurationNomadUrl = value; | ||
} | ||
} | ||
} |
85 changes: 85 additions & 0 deletions
85
...oyaleTemplatedApp/view/controls/snackbarNomadHelperUrl/SnackbarNomadHelperUrlContent.mxml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<j:VGroup xmlns:fx="http://ns.adobe.com/mxml/2009" | ||
xmlns:j="library://ns.apache.org/royale/jewel" xmlns:html="library://ns.apache.org/royale/html" xmlns:js="library://ns.apache.org/royale/basic" | ||
initComplete="snackbarContentInitComplete(event)" percentWidth="100"> | ||
<j:beads> | ||
<js:ContainerDataBinding /> | ||
</j:beads> | ||
<fx:Script> | ||
<![CDATA[ | ||
import utils.ClipboardText; | ||
import org.apache.royale.net.navigateToURL; | ||
import org.apache.royale.net.URLRequest; | ||
public var dataDirectory:String = ""; | ||
public var nomadBaseUrl:String = ""; | ||
[Bindable] | ||
public var configurationNomadUrl:String = ""; | ||
private function snackbarContentInitComplete(event:Event):void | ||
{ | ||
firstMessage.html = "Copy " + dataDirectory + "/domino/html/Super.Human.Portal/js-release/resources/nomadhelper.html to /opt/hcl/domino/notes/latest/linux/nomad-files"; | ||
secondMessage.html = "Update nomad_helper_url to " + nomadBaseUrl + "/nomadhelper.html in SuperHumanPortal.nsf"; | ||
} | ||
private function onFirstMessageCopyClick(event:MouseEvent):void | ||
{ | ||
ClipboardText.copyToClipboard(dataDirectory + "/domino/html/Super.Human.Portal/js-release/resources/nomadhelper.html to /opt/hcl/domino/notes/latest/linux/nomad-files"); | ||
} | ||
private function onSecondMessageCopyClick(event:MouseEvent):void | ||
{ | ||
ClipboardText.copyToClipboard(nomadBaseUrl + "/nomadhelper.html"); | ||
} | ||
private function onOpenInNomadClick(event:MouseEvent):void | ||
{ | ||
if (!configurationNomadUrl) return; | ||
navigateToURL(new URLRequest(configurationNomadUrl), "_blank"); | ||
} | ||
]]> | ||
</fx:Script> | ||
<j:Label multiline="true" | ||
text="This link is currently configured to open in a separate HCL Nomad Web window. For the best user experience, the administrator needs to setup nomadhelper.nsf like this:"/> | ||
<html:Ul percentWidth="100"> | ||
<html:Li> | ||
<html:style> | ||
<js:SimpleCSSStyles paddingBottom="5"/> | ||
</html:style> | ||
<j:HGroup percentWidth="100" itemsVerticalAlign="itemsCenter"> | ||
<j:Label localId="firstMessage" | ||
multiline="true"/> | ||
<j:IconButton localId="firstMessageCopyToClipboard" click="onFirstMessageCopyClick(event)"> | ||
<j:icon> | ||
<js:MaterialIcon text="{MaterialIconType.CONTENT_COPY}"> | ||
<js:style> | ||
<js:SimpleCSSStyles fontSize="16"/> | ||
</js:style> | ||
</js:MaterialIcon> | ||
</j:icon> | ||
</j:IconButton> | ||
</j:HGroup> | ||
</html:Li> | ||
<html:Li> | ||
<j:VGroup percentWidth="100" itemsHorizontalAlign="itemsRight"> | ||
<j:HGroup percentWidth="100" itemsVerticalAlign="itemsCenter"> | ||
<j:Label localId="secondMessage" multiline="true"/> | ||
<j:IconButton localId="secondMessageCopyToClipboard" click="onSecondMessageCopyClick(event)"> | ||
<j:icon> | ||
<js:MaterialIcon text="{MaterialIconType.CONTENT_COPY}"> | ||
<js:style> | ||
<js:SimpleCSSStyles fontSize="16"/> | ||
</js:style> | ||
</js:MaterialIcon> | ||
</j:icon> | ||
</j:IconButton> | ||
</j:HGroup> | ||
<html:Div text="Open in Nomad" click="onOpenInNomadClick(event)" className="jewel snackbar-action"> | ||
<html:beads> | ||
<j:Disabled disabled="{configurationNomadUrl == null || configurationNomadUrl == ''}"/> | ||
</html:beads> | ||
</html:Div> | ||
</j:VGroup> | ||
</html:Li> | ||
</html:Ul> | ||
</j:VGroup> |
16 changes: 16 additions & 0 deletions
16
...aleTemplatedApp/view/controls/snackbarNomadHelperUrl/beads/SnackbarNomadHelperUrlModel.as
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
package view.controls.snackbarNomadHelperUrl.beads | ||
{ | ||
import org.apache.royale.jewel.beads.models.SnackbarModel; | ||
|
||
public class SnackbarNomadHelperUrlModel extends SnackbarModel | ||
{ | ||
public function SnackbarNomadHelperUrlModel() | ||
{ | ||
super(); | ||
} | ||
|
||
public var dataDirectory:String; | ||
public var nomadBaseUrl:String; | ||
public var configurationNomadUrl:String; | ||
} | ||
} |
88 changes: 88 additions & 0 deletions
88
...yaleTemplatedApp/view/controls/snackbarNomadHelperUrl/beads/SnackbarNomadHelperUrlView.as
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
package view.controls.snackbarNomadHelperUrl.beads | ||
{ | ||
import org.apache.royale.jewel.beads.views.SnackbarView; | ||
import org.apache.royale.core.IStrand; | ||
import org.apache.royale.html.elements.Div; | ||
import org.apache.royale.jewel.beads.models.SnackbarModel; | ||
import org.apache.royale.jewel.Snackbar; | ||
import view.controls.snackbarNomadHelperUrl.SnackbarNomadHelperUrlContent; | ||
|
||
public class SnackbarNomadHelperUrlView extends SnackbarView | ||
{ | ||
public function SnackbarNomadHelperUrlView() | ||
{ | ||
super(); | ||
} | ||
|
||
override public function set strand(value:IStrand):void | ||
{ | ||
super.strand = value; | ||
|
||
var model:SnackbarNomadHelperUrlModel = host.model as SnackbarNomadHelperUrlModel; | ||
model.addEventListener("messageChange", messageChangeHandler); | ||
model.addEventListener("actionChange", actionChangeHandler); | ||
|
||
var content:NodeList = host.element.getElementsByClassName("snackbar-content"); | ||
host.element.removeChild(content.item(0)); | ||
|
||
var snackbarMessage:SnackbarNomadHelperUrlContent = new SnackbarNomadHelperUrlContent(); | ||
snackbarMessage.className = "jewel snackbar-message"; | ||
snackbarMessage.nomadBaseUrl = model.nomadBaseUrl; | ||
snackbarMessage.dataDirectory = model.dataDirectory; | ||
snackbarMessage.configurationNomadUrl = model.configurationNomadUrl; | ||
|
||
var snackbarContent:Div = new Div(); | ||
snackbarContent.className = "jewel snackbar-content"; | ||
snackbarContent.addElement(snackbarMessage); | ||
host.addElement(snackbarContent); | ||
|
||
this.actionElement = null; | ||
if (model.action) | ||
{ | ||
actionChangeHandler(null); | ||
} | ||
} | ||
|
||
/** | ||
* Update the text when message changed. | ||
*/ | ||
protected function messageChangeHandler(event:Event):void { | ||
COMPILE::JS | ||
{ | ||
// HTMLElement(host.element.firstChild.firstChild).innerHTML = SnackbarModel(host.model).message; | ||
} | ||
} | ||
|
||
/** | ||
* Show the action element or remove it, based on action text. | ||
*/ | ||
protected function actionChangeHandler(event:Event):void { | ||
var model:SnackbarModel = host.model as SnackbarModel; | ||
|
||
if (model.action) { | ||
if (!actionElement) { | ||
actionElement = document.createElement("div"); | ||
actionElement.className = "jewel snackbar-action"; | ||
actionElement.addEventListener("click", actionClickHandler); | ||
host.element.firstChild.appendChild(actionElement); | ||
} | ||
actionElement.innerText = model.action; | ||
} else { | ||
if (actionElement) { | ||
actionElement.removeEventListener("click", actionClickHandler); | ||
host.element.firstChild.removeChild(actionElement); | ||
actionElement = null; | ||
} | ||
} | ||
} | ||
|
||
/** | ||
* Trigger event and dismiss the host when action clicked. | ||
*/ | ||
protected function actionClickHandler(event:Event):void { | ||
actionElement.removeEventListener("click", actionClickHandler); | ||
host.dispatchEvent(new Event(Snackbar.ACTION)); | ||
SnackbarModel(host.model).duration = -1; // set -1 to dismiss | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters