Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Add missing event domain

...

Code Block
languagejavascript
themeConfluence
select when web pageview url "/archives/"
  foreach [1, 2, 3] setting (x)

...

Code Block
languagejavascript
themeConfluence
select when web pageview url "/archives/"
  foreach f.pick("$..store") setting (x)

...

Code Block
languagejavascript
themeConfluence
select when web pageview url "/archives/"
  foreach {"a" : 1, "b" : 2, "c" : 3} setting (v,n,v)

This would bind a, b, and c to n along with 1, 2, and 3 to v on each successive iteration through the loop.

...

titleEngine Compatibility

...

.

You can have more than one loop in a rule by simply nesting one foreach inside another:

Code Block
languagejavascript
themeConfluence
select when web pageview url "/archives/"
  foreach [1, 2, 3] setting (x)
    foreach ["a", "b", "c"] setting (y)

...

Code Block
languagejavascript
themeConfluence
rule using_foreach {
   select when web pageview url ".*"
      foreach items setting (d)
      pre {
         h = d.pick("$.header") + " using foreach";
         c = d.pick("$.content");
         domain = page:url("domain");
      }
      if(domain eq d.pick("$.page")) then
        notify(h,c);
 }

...

Code Block
languagejavascript
themeConfluence
rule using_foreach_with_filter {
   select when web pageview url ".*"
      foreach items.filter(
               function(x) {page:url("domain") eq
                            x.pick("$.page")}) 
         setting (d)
      pre {
         h = d.pick("$.header") + " using foreach";
         c = d.pick("$.content");
         domain = page:url("domain");
      }
      if(domain eq d.pick("$.page")) then
        notify(h,c);
 }

...

Code Block
languagejavascript
themeConfluence
rule without_foreach {
   select when web pageview url ".*"
   pre {
     dom = page:url("domain");
     item = site_data.pick(
            "$..items[?(@.page eq '"+dom+"')]");
     content = item.pick("$..content");
     header = item.pick("$..header")
        + " without foreach";
   }
   if(dom eq item.pick("$..page")) then
     notify(header,content);
}

...

Code Block
languagejavascript
themeConfluence
rule prepend {
   select when web pageview url "windley.com"
     foreach replacements.pick("$.replacements")
             setting (r)
     pre {
       sel = r.pick("$.selector");
       new_text = r.pick("$.text");
     }
     prepend(sel,new_text);
}

...