GUACAMOLE-320: Merge Ensure blank values for text attributes are interpreted equivalently to null.
diff --git a/extensions/guacamole-auth-cas/.gitignore b/extensions/guacamole-auth-cas/.gitignore
index c3a023f..30eb487 100644
--- a/extensions/guacamole-auth-cas/.gitignore
+++ b/extensions/guacamole-auth-cas/.gitignore
@@ -1,3 +1,3 @@
*~
target/
-META-INF/
+src/main/resources/generated/
diff --git a/extensions/guacamole-auth-cas/pom.xml b/extensions/guacamole-auth-cas/pom.xml
index af129f2..e76c50b 100644
--- a/extensions/guacamole-auth-cas/pom.xml
+++ b/extensions/guacamole-auth-cas/pom.xml
@@ -53,6 +53,85 @@
</configuration>
</plugin>
+ <!-- Pre-cache Angular templates with maven-angular-plugin -->
+ <plugin>
+ <groupId>com.keithbranton.mojo</groupId>
+ <artifactId>angular-maven-plugin</artifactId>
+ <version>0.3.2</version>
+ <executions>
+ <execution>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>html2js</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <sourceDir>${basedir}/src/main/resources</sourceDir>
+ <include>**/*.html</include>
+ <target>${basedir}/src/main/resources/generated/templates-main/templates.js</target>
+ <prefix>app/ext/guac-cas</prefix>
+ </configuration>
+ </plugin>
+
+ <!-- JS/CSS Minification Plugin -->
+ <plugin>
+ <groupId>com.samaxes.maven</groupId>
+ <artifactId>minify-maven-plugin</artifactId>
+ <version>1.7.5</version>
+ <executions>
+ <execution>
+ <id>default-cli</id>
+ <configuration>
+ <charset>UTF-8</charset>
+
+ <webappSourceDir>${basedir}/src/main/resources</webappSourceDir>
+ <webappTargetDir>${project.build.directory}/classes</webappTargetDir>
+
+ <cssSourceDir>/</cssSourceDir>
+ <cssTargetDir>/</cssTargetDir>
+ <cssFinalFile>cas.css</cssFinalFile>
+
+ <cssSourceFiles>
+ <cssSourceFile>license.txt</cssSourceFile>
+ </cssSourceFiles>
+
+ <cssSourceIncludes>
+ <cssSourceInclude>**/*.css</cssSourceInclude>
+ </cssSourceIncludes>
+
+ <jsSourceDir>/</jsSourceDir>
+ <jsTargetDir>/</jsTargetDir>
+ <jsFinalFile>cas.js</jsFinalFile>
+
+ <jsSourceFiles>
+ <jsSourceFile>license.txt</jsSourceFile>
+ </jsSourceFiles>
+
+ <jsSourceIncludes>
+ <jsSourceInclude>**/*.js</jsSourceInclude>
+ </jsSourceIncludes>
+
+ <!-- Do not minify and include tests -->
+ <jsSourceExcludes>
+ <jsSourceExclude>**/*.test.js</jsSourceExclude>
+ </jsSourceExcludes>
+ <jsEngine>CLOSURE</jsEngine>
+
+ <!-- Disable warnings for JSDoc annotations -->
+ <closureWarningLevels>
+ <misplacedTypeAnnotation>OFF</misplacedTypeAnnotation>
+ <nonStandardJsDocs>OFF</nonStandardJsDocs>
+ </closureWarningLevels>
+
+ </configuration>
+ <goals>
+ <goal>minify</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
<!-- Copy dependencies prior to packaging -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -105,6 +184,7 @@
<excludes>
<exclude>**/*.json</exclude>
<exclude>src/licenses/**/*</exclude>
+ <exclude>src/main/resources/templates/*.html</exclude>
</excludes>
</configuration>
diff --git a/extensions/guacamole-auth-cas/src/main/resources/casConfig.js b/extensions/guacamole-auth-cas/src/main/resources/config/casConfig.js
similarity index 93%
rename from extensions/guacamole-auth-cas/src/main/resources/casConfig.js
rename to extensions/guacamole-auth-cas/src/main/resources/config/casConfig.js
index 76ee755..95356f7 100644
--- a/extensions/guacamole-auth-cas/src/main/resources/casConfig.js
+++ b/extensions/guacamole-auth-cas/src/main/resources/config/casConfig.js
@@ -25,7 +25,7 @@
// Define field for ticket from CAS service
formServiceProvider.registerFieldType("GUAC_CAS_TICKET", {
- templateUrl : '',
+ templateUrl : 'app/ext/guac-cas/templates/casTicketField.html',
controller : 'guacCASController',
module : 'guacCAS'
});
diff --git a/extensions/guacamole-auth-cas/src/main/resources/casController.js b/extensions/guacamole-auth-cas/src/main/resources/controllers/casController.js
similarity index 100%
rename from extensions/guacamole-auth-cas/src/main/resources/casController.js
rename to extensions/guacamole-auth-cas/src/main/resources/controllers/casController.js
diff --git a/extensions/guacamole-auth-cas/src/main/resources/guac-manifest.json b/extensions/guacamole-auth-cas/src/main/resources/guac-manifest.json
index fd963a2..d241e38 100644
--- a/extensions/guacamole-auth-cas/src/main/resources/guac-manifest.json
+++ b/extensions/guacamole-auth-cas/src/main/resources/guac-manifest.json
@@ -14,9 +14,15 @@
],
"js" : [
- "casModule.js",
- "casController.js",
- "casConfig.js"
- ]
+ "cas.min.js"
+ ],
+
+ "css" : [
+ "cas.min.css"
+ ],
+
+ "resources" : {
+ "templates/casTicketField.html" : "text/html"
+ }
}
diff --git a/extensions/guacamole-auth-cas/src/main/resources/casConfig.js b/extensions/guacamole-auth-cas/src/main/resources/license.txt
similarity index 66%
copy from extensions/guacamole-auth-cas/src/main/resources/casConfig.js
copy to extensions/guacamole-auth-cas/src/main/resources/license.txt
index 76ee755..042f3ce 100644
--- a/extensions/guacamole-auth-cas/src/main/resources/casConfig.js
+++ b/extensions/guacamole-auth-cas/src/main/resources/license.txt
@@ -16,18 +16,3 @@
* specific language governing permissions and limitations
* under the License.
*/
-
-/**
- * Config block which registers CAS-specific field types.
- */
-angular.module('guacCAS').config(['formServiceProvider',
- function guacCASConfig(formServiceProvider) {
-
- // Define field for ticket from CAS service
- formServiceProvider.registerFieldType("GUAC_CAS_TICKET", {
- templateUrl : '',
- controller : 'guacCASController',
- module : 'guacCAS'
- });
-
-}]);
diff --git a/extensions/guacamole-auth-cas/src/main/resources/casConfig.js b/extensions/guacamole-auth-cas/src/main/resources/styles/cas.css
similarity index 66%
copy from extensions/guacamole-auth-cas/src/main/resources/casConfig.js
copy to extensions/guacamole-auth-cas/src/main/resources/styles/cas.css
index 76ee755..6c775d2 100644
--- a/extensions/guacamole-auth-cas/src/main/resources/casConfig.js
+++ b/extensions/guacamole-auth-cas/src/main/resources/styles/cas.css
@@ -17,17 +17,19 @@
* under the License.
*/
-/**
- * Config block which registers CAS-specific field types.
- */
-angular.module('guacCAS').config(['formServiceProvider',
- function guacCASConfig(formServiceProvider) {
+.cas-ticket-field-container {
+ height: 100%;
+ width: 100%;
+ position: fixed;
+ left: 0;
+ top: 0;
+ display: table;
+ background: white;
+}
- // Define field for ticket from CAS service
- formServiceProvider.registerFieldType("GUAC_CAS_TICKET", {
- templateUrl : '',
- controller : 'guacCASController',
- module : 'guacCAS'
- });
-
-}]);
+.cas-ticket-field {
+ width: 100%;
+ display: table-cell;
+ vertical-align: middle;
+ text-align: center;
+}
diff --git a/extensions/guacamole-auth-cas/src/main/resources/templates/casTicketField.html b/extensions/guacamole-auth-cas/src/main/resources/templates/casTicketField.html
new file mode 100644
index 0000000..55ca4bb
--- /dev/null
+++ b/extensions/guacamole-auth-cas/src/main/resources/templates/casTicketField.html
@@ -0,0 +1,5 @@
+<div class="cas-ticket-field-container">
+ <div class="cas-ticket-field">
+ <p>{{ 'LOGIN.INFO_CAS_REDIRECT_PENDING' | translate }}</p>
+ </div>
+</div>
diff --git a/extensions/guacamole-auth-cas/src/main/resources/translations/en.json b/extensions/guacamole-auth-cas/src/main/resources/translations/en.json
index dfda606..29d1363 100644
--- a/extensions/guacamole-auth-cas/src/main/resources/translations/en.json
+++ b/extensions/guacamole-auth-cas/src/main/resources/translations/en.json
@@ -6,7 +6,7 @@
"LOGIN" : {
"FIELD_HEADER_TICKET" : "",
- "INFO_CAS_REDIRECT_PENDING" : "Please wait, redirecting to CAS authentication."
+ "INFO_CAS_REDIRECT_PENDING" : "Please wait, redirecting to CAS authentication..."
}
}