Re: AngularJS issue upgrading authentication provider from 0.9.14 to 1.0.0

2019-06-18 Thread Mark Nolan
Perfect!

I was actually quite happy with the interpolation binding (fixing the
identifier on each line) and had no idea it wasn't allowed!

Many thanks,
M.
.


On Tue, 18 Jun 2019 at 19:45, Mike Jumper  wrote:

> On Tue, Jun 18, 2019 at 11:14 AM Mark Nolan  wrote:
>
> > ...
> > The browser console shows this:
> >
> > angular.js:14800 Error: [$parse:syntax]
> >
> >
> http://errors.angularjs.org/1.6.9/$parse/syntax?p0=%7B=invalid%20key=17=xxxAuthGcpStop(%7B%7Bitem.identifier%7D%7D)=%7Bitem.identifier%7D%7D
> > )
> > at angular.js:88
> > at q.throwError (angular.js:15358)
> > at q.object (angular.js:15347)
> > at q.primary (angular.js:15236)
> > at q.unary (angular.js:15224)
> > at q.multiplicative (angular.js:15211)
> > at q.additive (angular.js:15202)
> > at q.relational (angular.js:15193)
> > at q.equality (angular.js:15184)
> > at q.logicalAND (angular.js:15176) " > height="100%" viewBox="0 0 16 24" fit="" focusable="false" xmlns="
> > http://www.w3.org/2000/svg; preserveAspectRatio="xMidYMid meet"
> > class="xxx-icon xxx-enabled"
> > ng-click="xxxAuthGcpStop({{item.identifier}})">"
> >
>
> Did you mean:
>
> ng-click="xxxAuthGcpStop(item.identifier)"
>
> ?
>
> For AngularJS, depending on the directive, you'll find things like
> some-attribute="{{ angular expression }}" and some-attribute="angular
> expression". The ngClick directive is one of the latter. The double braces
> introduce an angular expression, when necessary, but are not valid syntax
> _within_ an angular expression.
>
> - Mike
>


Re: AngularJS issue upgrading authentication provider from 0.9.14 to 1.0.0

2019-06-18 Thread Mike Jumper
On Tue, Jun 18, 2019 at 11:14 AM Mark Nolan  wrote:

> ...
> The browser console shows this:
>
> angular.js:14800 Error: [$parse:syntax]
>
> http://errors.angularjs.org/1.6.9/$parse/syntax?p0=%7B=invalid%20key=17=xxxAuthGcpStop(%7B%7Bitem.identifier%7D%7D)=%7Bitem.identifier%7D%7D
> )
> at angular.js:88
> at q.throwError (angular.js:15358)
> at q.object (angular.js:15347)
> at q.primary (angular.js:15236)
> at q.unary (angular.js:15224)
> at q.multiplicative (angular.js:15211)
> at q.additive (angular.js:15202)
> at q.relational (angular.js:15193)
> at q.equality (angular.js:15184)
> at q.logicalAND (angular.js:15176) " height="100%" viewBox="0 0 16 24" fit="" focusable="false" xmlns="
> http://www.w3.org/2000/svg; preserveAspectRatio="xMidYMid meet"
> class="xxx-icon xxx-enabled"
> ng-click="xxxAuthGcpStop({{item.identifier}})">"
>

Did you mean:

ng-click="xxxAuthGcpStop(item.identifier)"

?

For AngularJS, depending on the directive, you'll find things like
some-attribute="{{ angular expression }}" and some-attribute="angular
expression". The ngClick directive is one of the latter. The double braces
introduce an angular expression, when necessary, but are not valid syntax
_within_ an angular expression.

- Mike


AngularJS issue upgrading authentication provider from 0.9.14 to 1.0.0

2019-06-18 Thread Mark Nolan
I am getting multiple parse errors from AngularJS. I know 1.0.0 upgraded
AngularJS and I'm off to look through the notes now, but if anyone knows
what causes this, you could save me a lot of time!

Everything I know about AngularJS I have learned by looking at what
Guacamole does or through writing this extension. I do have a lot of
experience with Angular, so I am somewhat familiar with the concepts. I
don't really have any decent development tools for AngularJS, however, so
everything is a little opaque. Plus, I think it is fairly difficult to
bootstrap a test environment that looks like Guacamole ;)

The authentication provider adds start and stop buttons and a status
indicator. The service itself links these to GCP to start and stop the VMs.
This panel of controls appears to the left of each connection in the list
of connections. The panel does display, but it isn't doing anything on
click (not even erroring).

The browser console shows this:

angular.js:14800 Error: [$parse:syntax]
http://errors.angularjs.org/1.6.9/$parse/syntax?p0=%7B=invalid%20key=17=xxxAuthGcpStop(%7B%7Bitem.identifier%7D%7D)=%7Bitem.identifier%7D%7D
)
at angular.js:88
at q.throwError (angular.js:15358)
at q.object (angular.js:15347)
at q.primary (angular.js:15236)
at q.unary (angular.js:15224)
at q.multiplicative (angular.js:15211)
at q.additive (angular.js:15202)
at q.relational (angular.js:15193)
at q.equality (angular.js:15184)
at q.logicalAND (angular.js:15176) "http://www.w3.org/2000/svg; preserveAspectRatio="xMidYMid meet"
class="xxx-icon xxx-enabled"
ng-click="xxxAuthGcpStop({{item.identifier}})">"

The actual template is huge, so I am reluctant to include the whole thing
here, but this is an excerpt:

http://www.w3.org/2000/svg; preserveAspectRatio="xMidYMid meet"
class="xxx-icon xxx-enabled" ng-click="xxxAuthGcpStop({{item.identifier}})">

Stop Instance



And it is part of a directive that is used like this:




My initial guess was that 1.0.0 changed the use of item.identifier, as that
is what the error message suggested to me, but they have reasonable values
in the document when I look through developer tools. The next most likely
option is that it cannot find the method that is bound to the ng-click.
Unless I find something else, that is my next avenue of investigation.

Thanks,
Mark.
.