Commit graph

1413 commits

Author SHA1 Message Date
Dominik Sander
5fbeb105b2 Update gems and configs to Rails5 2016-10-05 22:47:38 +02:00
Akinori MUSHA
44efff5a46 Fix grammar 2016-10-05 09:28:24 +09:00
Akinori MUSHA
a47c5c8a80 PushoverAgent: Treat parameter options as templates rather than default values
This should fix #1718.

While at it, character limit implementation is fixed: `slice(0..n)`
would take the first n+1 characters instead of n.
2016-10-04 21:57:30 +09:00
Dominik Sander
4309460896 Fix escape characters of events when dry running
JSONEditor double escapes escape characters to properly display them in the UI, however when dry running Agents we
actually need to send the Event's characters as they were.
Before an event containing new lines like this `Line A\nLineB` would be send as `Line A\\nLineB` to the backend. By
replacing the double escaped slashes we ensure the event is handled as it would be when not dry running.

 #1677
2016-09-30 17:06:50 +02:00
bobbysteel
1497712e04 Clarify path for a simple body_text event. (#1705)
* Clarify path for a simple body_text event. 

It's not really clear with regard to a normal agent that this is simply the name of the field.

* updated text
2016-09-23 15:36:18 -04:00
Dominik Sander
e0fa7f00d0 Merge pull request #1695 from kreuzwerker/missing-agent-warning
Rescue from AR:SubclassNotFound and allow to delete agents
2016-09-21 21:04:46 +02:00
Dominik Sander
d2b26a0684 Merge pull request #1698 from kreuzwerker/fix-form-completion
Replace jquery.serializeObject with new implementation
2016-09-21 20:58:03 +02:00
Dominik Sander
42b132017f Rescue from AR:SubclassNotFound and allow to delete agents
Especially when using Agent gems it happens that an Agent was deleted from the gem or the user removed a gem from the
configuration. Instead of failing with an Internal Server Error the user now is offered to delete all undefined agents.

`type.constantize` is needed to invoke the Rails auto_loader in development since not all Agent classes are loaded when
the application boots.
2016-09-21 20:10:49 +02:00
Dominik Sander
517e42c9d2 Replace jquery.serializeObject with new implementation
The old serializeObject function serialized checked checkboxes as an array which was not correct and with
strong_parameters enabled it triggered a `UnpermittedParameters` error.

In the AgentEditPage javascript we only need to initialize `select2` when then `#agent_type` field is a select
box (trying to call `select2` on normal text fields caused a javascript error in the feature specs)
2016-09-21 20:05:18 +02:00
Andrew Cantino
0dd1c78ae0 Ignore the fixture API key in WeatherAgent (#1694) 2016-09-20 20:31:44 -04:00
Dominik Sander
663eebc080 Add multipart file upload to PostAgent
This allows the PostAgent to receive `file_pointer` events and upload the data to a website.
2016-09-19 10:39:48 +02:00
Thiago Talma
4fdd69c6f4 interpolated response (#1682) 2016-09-15 19:15:46 -04:00
Dominik Sander
58f388d530 service_id is a valid part of the agent_params
Fixes #1685
2016-09-15 16:17:46 +02:00
Dominik Sander
b2f031003f Use strong_parameters and drop protected_attributes
* Ensure admin attribute can not be set at sign up and the agents user_id is not changeable
* Remove ACCESSIBLE_ATTRIBUTES from the User model
* Remove side effect on agent_params from AgentsController#build_agent
2016-09-12 15:54:26 +02:00
Andrew Cantino
7550274578 Remove unused contact model (#1680) 2016-09-10 10:24:23 -04:00
Thiago Talma
c3d5380f98 Option to set response code for webhook agent (#1676)
* setting for webhook response code

* some adjustments
2016-09-09 09:53:29 -04:00
Karol Bucek
c6a17c90fe can_enqueue? propagation detection that does not depend on Rails (#1672) 2016-09-09 09:50:32 -04:00
Dominik Sander
f42ad96ed6 Merge pull request #1645 from dsander/retry-twitter-action-agent
Allow TwitterUserAgent to retry failed actions
2016-09-08 20:44:20 +02:00
Dominik Sander
3e76fa0e41 Add cache_response option to completable form fields
When `cache_response` is set to `false` for completable fields the returned options will not be
cached on the client side. The default is `true`.

Clearing the cache is needed when the completable response depends on a different option of the Agent.

Usage Example:

```
form_configurable :models, roles: :completable, cache_response: false
```

* Disable the completion callback when `select2` is opened programmatically to avoid an infinite loop
* Moved the completion ajax call from `select2-open` to `select2-opening` to clear the cached results before
 `completableDefaultOptions` is called (shows the "Loading ..." message instead of the previous results)
2016-09-08 12:21:49 +02:00
Karol Bucek
8ca39a5802 minor tweaks (#1669)
* avoid unnecesary  method pollution

* production.rake typo fix

* remove un-used local variable assignment
2016-09-06 13:36:10 -04:00
Will Read
6b459ef412 Extract service option prviders for non-standard Omniauth payloads (#1655)
* Extract option prviders for non-standard Omniauth payloads

- should enable huginn_agent gem developers to add their own providers
- devs would reopen OmniauthCallbacksController and define their specific action, supplying their own option provider

* Creates a registry for option providers on the Service class

- enables huginn_agent gem developers to register their own omniauth option interpreters

* Cleans up changes to the global Service class after the spec
2016-09-04 19:39:49 -04:00
Albert Sun
6bb61065ec Allow admins to login as another user (#1659)
* switch_to_user and switch_back routes

* Uses session to store original user id
2016-09-02 15:32:38 -04:00
Géza Búza
c3ab764efc Feature/add language option to weather agent (#1544)
* Add language parameter to the weather agent

* Add text forecast for Wunderground data provider

Wunderground API returns forecast for the next few days. Returned JSON response has two types of data under the "forecast" key:
- "txt_forecast": pre-formatted text representation
- "simpleforecast": raw data representation

The "period" key contains which day the node belongs to.

Currently only "simpleforecast" is available to users of the Weather agent.
This commit appends the "txt_forecast" representation to the current data set.
2016-08-31 08:37:51 -07:00
Dominik Sander
49d3611273 Allow TwitterUserAgent to retry failed actions
Add new `emit_error_events` option which is set to `false` for all new `TwitterActionAgent`s. This will ensure the Agent
is retried when the action failed by raising an exception.

For all existing `TwitterUserAgent`s the option is set to `true` to keep the previous behavior.
2016-08-25 19:49:31 +02:00
Will Read
a6fe9743f6 EmailDigestAgent relies on received events, rather in memory (#1624)
* EmailDigestAgent relies on received events, rather than storing them in memory

- Addressing a problem where 40,000+ events were stored in one agent's memory, and the agent never loaded from the database

* Cleans up references to memory["queue"]

- incorporates suggested style and safeguards

* Adds clarification on event inclusion in email

* Use `reorder` rather than stripping away all scoping
2016-08-16 23:05:16 -04:00
Andrew Cantino
577b441382 Handle removed events when rendering logs (#1634) 2016-08-15 11:50:54 -04:00
Akinori MUSHA
9b23c28049 Merge pull request #1444 from cantino/data_output_agent_limits_events_after_ordering
DataOutputAgent limits events after ordering
2016-08-08 14:12:25 +09:00
Andrew Cantino
ddb35e8236 Fix dependency check for Tumblr gem (#1615) 2016-08-04 22:05:52 -04:00
Sascha Hagedorn
d627a18f6d Added api_key option to UserLocationAgent (#1613)
* Added `api_key` option to UserLocationAgent

The `api_key` is used on the summary page of the UserLocationAgent
as well as the event detail page to display a location on a Google
Map which requires an API key. Closes #1612

* added link to Google API key documentation
2016-08-04 21:22:59 -04:00
Andrew Cantino
b765c0c3fb DataOutputAgent cannot create events (#1608) 2016-07-26 20:19:52 -04:00
Akinori MUSHA
26a11afb24 Rephrase the description of events_list_order as suggested by @cantino 2016-07-26 21:15:06 +09:00
Darren Cauthon
9d584b6ba4 Liquid output agent (#1587)
* Start with a stripped copy of the data output agent.

* Run the data from the last event through a liquid template.

* Flatten the secret logic to allow for an easier switch to FormConfigurable.

* Switch to form configurable, and allow the content of the page to be configured.

* Allow the mime type to be changed.

* Cleanup.

* Write how this template works.

* Better default values.

* Cleanup.

* Refactor.

* Start testing.

* Test the validation.

* Test receive.

* Test the happy path through the receive web events.

* Test the authentication.

* This is actually a match.

* Refactor.

* Refactor.

* Refactor for better testing.

* Create a mode that lets the logic change. Start with a merge behavior.

* Refactor.

* Create a form configurable setting to change the mode.

* Document how the modes work.

* Wording change.

* Go with a singular secret.

* Fix typo.

* Fix the tests.

* Test cleanup.

* If not one of two types that receive events, ignore all received events.

* Set up these tests for the next set of changes.

* Isolate the method that gets the data for the liquid template.

* Look up past events to render through the liquid template.

* Implement a limit of 2 events.

* Extract a method.

* Hook the limit to options.

* Implement a limit of X events.

* Implement a date limit.

* Refactor the count limit.

* Limit by date with sql, not in-memory objects.

* This ordering is already built into the scope.

* Refactor the dates a bit.

* Put in a few checks around the date limits.

* Add the last X event options to the form and the documentation.

* Missed one bit of documentation.

* Add a view for a liquid output agent that makes it easy to retrieve the generated URL.

* This agent cannot accept events.

* Hardcode the possibilities instead of inspecting the integer.

* Do not be case sensitive on the date filter.

* Hardcode a limit of 5000, just in case no limit was provided.

* Better checks around the time period parsing.

* Test the hardcodes, and rename for consistency.

* Nevermind on that rename.

* Do not be case sensitive on this mode.

* Test that it works even when the casing on the mode is wrong.

* Here is more descriptive default content.

* Text change.

* The if is no longer necessary.

* Refactor.

* Move the limit down to 1000.

* Put a hard limit of 1000.

* Note the new event limit... limit.

* Validate for a valid event limit.

* Do not throw an error if someone types in a non-integer into this field.

* Text update.

* Typo.

* Add a link to the Liquid Templating engine.
2016-07-25 21:23:33 -04:00
Andrew Cantino
cc72f79e0b Allow PostAgent headers to interpolate event data (#1606) 2016-07-25 19:59:14 -04:00
Akinori MUSHA
8aed682baa Allow dry-run of TriggerAgent 2016-07-25 19:42:16 +09:00
Akinori MUSHA
cc8e1bb9cc Remove an unnecessary call to save() 2016-07-25 17:46:00 +09:00
Alex Jordan
c1095330ea Make HttpStatusAgent provide redirect info (#1590)
* Make HttpStatusAgent provide redirect info

* Mock to_hash for HttpStatusAgent specs

* Refactor HttpStatusAgent spec mock responses
2016-07-20 08:29:09 -04:00
Darren Cauthon
29007c9019 Add an option to fire http status events only when a change occurs. (#1582) 2016-07-14 21:12:20 -04:00
Lloyd Pick
8c0a10fc4b attribute difference agent (#1572) 2016-07-09 19:51:08 -04:00
Paul Platenius
7f0ad0703b Rename setKey to setMemoryKey, changed setMemory description 2016-07-04 22:07:53 +02:00
Paul Platenius
da833b13bb Add setMemory function to Javascript Agent 2016-07-03 22:48:45 +02:00
Lloyd Pick
c3e263d3a4 allow decimal values to be shown on the peak graph (#1574) 2016-07-01 14:47:09 -04:00
Andrew Cantino
8aef73e253 Add clarifying text to fix #1558 2016-06-30 19:15:07 -04:00
Andrew Cantino
e1a2b5ae25 Heroku now makes an empty repo with the deployment button (#1570) 2016-06-30 00:45:53 -04:00
Enfop
d26015c62b Return to Agent Events after Event show (#1555) 2016-06-22 20:43:04 -07:00
Alex Jordan
3c8d6655a3 Expand HTTP status agent (#1521)
* Add WIP support for HTTP headers

* Actually pass the header to check_this_url

* Fix an unmerged hunk

* Fix some syntax errors

* Fix an outdated variable name

* Comment on which sections do what

* Get rid of (another) unmerged hunk

* Show a form element for the header field

* Fix event emitter conditional

* Adjust tests for header logic

* Test for not returning a header

* Refactor payload generation

* Rename 'header' to 'headers'

* Add multiple header support

* Update HttpStatusAgent docs

* Fix (some) failing tests

* Fix remaining tests

* Add specs for HttpStatusAgent's header code

* Super tiny cleanups
2016-06-20 00:37:15 -07:00
Akinori MUSHA
371bfa34b7 Merge pull request #1551 from cantino/jsagent_fix_memory
Fix `this.memory(key, falsy)` not working in JavaScriptAgent
2016-06-20 12:48:44 +09:00
Andrey Yantsen
3b4b4f3761 [fix #1512] add not in comparison into Trigger Agent (#1545) 2016-06-18 16:09:54 -07:00
Enfop
5cdc37f716 DryRunMemory (#1550) 2016-06-18 15:53:58 -07:00
Akinori MUSHA
806722b4f8 Fix this.memory(key, falsy) 2016-06-16 20:15:55 +09:00
Andrew Cantino
e4e2782ebe Fix whitespace 2016-06-15 23:55:11 -07:00