From f64539553f2172338890637636f24a4e1dc4c224 Mon Sep 17 00:00:00 2001 From: Bryan Rehbein Date: Sat, 24 Oct 2015 13:04:08 -0700 Subject: [PATCH 1/6] remove 1 level of redundant folders --- .../ios/{ios => }/ios.xcodeproj/project.pbxproj | 0 .../project.xcworkspace/contents.xcworkspacedata | 0 .../UserInterfaceState.xcuserstate | Bin .../Allen.xcuserdatad/xcschemes/ios.xcscheme | 0 .../xcschemes/xcschememanagement.plist | 0 platform/native/ios/ios/{ios => }/AppDelegate.swift | 0 .../AppIcon.appiconset/Contents.json | 0 .../{ios => }/Base.lproj/LaunchScreen.storyboard | 0 .../ios/ios/{ios => }/Base.lproj/Main.storyboard | 0 platform/native/ios/ios/{ios => }/Info.plist | 0 .../native/ios/ios/{ios => }/ViewController.swift | 0 platform/native/ios/{ios => }/iosTests/Info.plist | 0 .../native/ios/{ios => }/iosTests/iosTests.swift | 0 platform/native/ios/{ios => }/iosUITests/Info.plist | 0 .../ios/{ios => }/iosUITests/iosUITests.swift | 0 15 files changed, 0 insertions(+), 0 deletions(-) rename platform/native/ios/{ios => }/ios.xcodeproj/project.pbxproj (100%) rename platform/native/ios/{ios => }/ios.xcodeproj/project.xcworkspace/contents.xcworkspacedata (100%) rename platform/native/ios/{ios => }/ios.xcodeproj/project.xcworkspace/xcuserdata/Allen.xcuserdatad/UserInterfaceState.xcuserstate (100%) rename platform/native/ios/{ios => }/ios.xcodeproj/xcuserdata/Allen.xcuserdatad/xcschemes/ios.xcscheme (100%) rename platform/native/ios/{ios => }/ios.xcodeproj/xcuserdata/Allen.xcuserdatad/xcschemes/xcschememanagement.plist (100%) rename platform/native/ios/ios/{ios => }/AppDelegate.swift (100%) rename platform/native/ios/ios/{ios => }/Assets.xcassets/AppIcon.appiconset/Contents.json (100%) rename platform/native/ios/ios/{ios => }/Base.lproj/LaunchScreen.storyboard (100%) rename platform/native/ios/ios/{ios => }/Base.lproj/Main.storyboard (100%) rename platform/native/ios/ios/{ios => }/Info.plist (100%) rename platform/native/ios/ios/{ios => }/ViewController.swift (100%) rename platform/native/ios/{ios => }/iosTests/Info.plist (100%) rename platform/native/ios/{ios => }/iosTests/iosTests.swift (100%) rename platform/native/ios/{ios => }/iosUITests/Info.plist (100%) rename platform/native/ios/{ios => }/iosUITests/iosUITests.swift (100%) diff --git a/platform/native/ios/ios/ios.xcodeproj/project.pbxproj b/platform/native/ios/ios.xcodeproj/project.pbxproj similarity index 100% rename from platform/native/ios/ios/ios.xcodeproj/project.pbxproj rename to platform/native/ios/ios.xcodeproj/project.pbxproj diff --git a/platform/native/ios/ios/ios.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/platform/native/ios/ios.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from platform/native/ios/ios/ios.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to platform/native/ios/ios.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/platform/native/ios/ios/ios.xcodeproj/project.xcworkspace/xcuserdata/Allen.xcuserdatad/UserInterfaceState.xcuserstate b/platform/native/ios/ios.xcodeproj/project.xcworkspace/xcuserdata/Allen.xcuserdatad/UserInterfaceState.xcuserstate similarity index 100% rename from platform/native/ios/ios/ios.xcodeproj/project.xcworkspace/xcuserdata/Allen.xcuserdatad/UserInterfaceState.xcuserstate rename to platform/native/ios/ios.xcodeproj/project.xcworkspace/xcuserdata/Allen.xcuserdatad/UserInterfaceState.xcuserstate diff --git a/platform/native/ios/ios/ios.xcodeproj/xcuserdata/Allen.xcuserdatad/xcschemes/ios.xcscheme b/platform/native/ios/ios.xcodeproj/xcuserdata/Allen.xcuserdatad/xcschemes/ios.xcscheme similarity index 100% rename from platform/native/ios/ios/ios.xcodeproj/xcuserdata/Allen.xcuserdatad/xcschemes/ios.xcscheme rename to platform/native/ios/ios.xcodeproj/xcuserdata/Allen.xcuserdatad/xcschemes/ios.xcscheme diff --git a/platform/native/ios/ios/ios.xcodeproj/xcuserdata/Allen.xcuserdatad/xcschemes/xcschememanagement.plist b/platform/native/ios/ios.xcodeproj/xcuserdata/Allen.xcuserdatad/xcschemes/xcschememanagement.plist similarity index 100% rename from platform/native/ios/ios/ios.xcodeproj/xcuserdata/Allen.xcuserdatad/xcschemes/xcschememanagement.plist rename to platform/native/ios/ios.xcodeproj/xcuserdata/Allen.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/platform/native/ios/ios/ios/AppDelegate.swift b/platform/native/ios/ios/AppDelegate.swift similarity index 100% rename from platform/native/ios/ios/ios/AppDelegate.swift rename to platform/native/ios/ios/AppDelegate.swift diff --git a/platform/native/ios/ios/ios/Assets.xcassets/AppIcon.appiconset/Contents.json b/platform/native/ios/ios/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from platform/native/ios/ios/ios/Assets.xcassets/AppIcon.appiconset/Contents.json rename to platform/native/ios/ios/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/platform/native/ios/ios/ios/Base.lproj/LaunchScreen.storyboard b/platform/native/ios/ios/Base.lproj/LaunchScreen.storyboard similarity index 100% rename from platform/native/ios/ios/ios/Base.lproj/LaunchScreen.storyboard rename to platform/native/ios/ios/Base.lproj/LaunchScreen.storyboard diff --git a/platform/native/ios/ios/ios/Base.lproj/Main.storyboard b/platform/native/ios/ios/Base.lproj/Main.storyboard similarity index 100% rename from platform/native/ios/ios/ios/Base.lproj/Main.storyboard rename to platform/native/ios/ios/Base.lproj/Main.storyboard diff --git a/platform/native/ios/ios/ios/Info.plist b/platform/native/ios/ios/Info.plist similarity index 100% rename from platform/native/ios/ios/ios/Info.plist rename to platform/native/ios/ios/Info.plist diff --git a/platform/native/ios/ios/ios/ViewController.swift b/platform/native/ios/ios/ViewController.swift similarity index 100% rename from platform/native/ios/ios/ios/ViewController.swift rename to platform/native/ios/ios/ViewController.swift diff --git a/platform/native/ios/ios/iosTests/Info.plist b/platform/native/ios/iosTests/Info.plist similarity index 100% rename from platform/native/ios/ios/iosTests/Info.plist rename to platform/native/ios/iosTests/Info.plist diff --git a/platform/native/ios/ios/iosTests/iosTests.swift b/platform/native/ios/iosTests/iosTests.swift similarity index 100% rename from platform/native/ios/ios/iosTests/iosTests.swift rename to platform/native/ios/iosTests/iosTests.swift diff --git a/platform/native/ios/ios/iosUITests/Info.plist b/platform/native/ios/iosUITests/Info.plist similarity index 100% rename from platform/native/ios/ios/iosUITests/Info.plist rename to platform/native/ios/iosUITests/Info.plist diff --git a/platform/native/ios/ios/iosUITests/iosUITests.swift b/platform/native/ios/iosUITests/iosUITests.swift similarity index 100% rename from platform/native/ios/ios/iosUITests/iosUITests.swift rename to platform/native/ios/iosUITests/iosUITests.swift From 0c64c5c239e5666dc6ec855b2b13cd059b7d67eb Mon Sep 17 00:00:00 2001 From: Bryan Rehbein Date: Sat, 24 Oct 2015 20:17:13 -0700 Subject: [PATCH 2/6] Schema Documentation for Actions --- docs/parse/action_schema.md | 116 ++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 docs/parse/action_schema.md diff --git a/docs/parse/action_schema.md b/docs/parse/action_schema.md new file mode 100644 index 0000000..913b61b --- /dev/null +++ b/docs/parse/action_schema.md @@ -0,0 +1,116 @@ +# Action Object + +The action object represents something that the campaign would like a supporter to do. Things like calling somebody, sending an email, tweet / retweet, post to facebook, etc. + +``` +let actionObject = PFObject(className: "Action") +``` + +### List View + +The action objects should be queried and ordered by priority descending, then by createdAt descending. + +``` +query.addDescendingOrder("priority") +query.addDescendingOrder("createdAt") +``` + +### Action Types ### + +| Action Type | Description | +| ----------- | ----------- | +| general | A general call to action with no specific integrations. | +| url | A general call to action that will open the browser to the specified url. This can be used for directing people to fill out a petition, comment on a blog post / forum, etc. | +| call | Place a phone call to the specified person. | +| email | Send an email to the specified person / people. | +| tweet | Send a tweet to your followers, the provided text should pre-populate the tweet if possible. | +| retweet | Retweet a specified tweet. | +| tweet_reply | Reply to a tweet, the provided text should pre-populate the tweet if possible. The reply should also reference the included tweet id. | +| fb_post | Post to Facebook, the provided text should pre-populate the post if possible. | +| fb_share | Share a provided url to Facebook, the provided text should pre-populate the share if possible. | +| attend | Physical presence is needed at some event, etc. The request should advise people of a common hashtag to use while attending the event. | +| avatar | Set social media avatar. | +| instagram | Post to Instagram. | + +### Object Attributes / Columns + +| Attribute | Data Type | Required | Description | +| --------- | --------- | -------- | ----------- | +| objectId | string | (auto) | Automatically generated primary key. | +| actionType | ActionType | Y | The type of action that is being called for. This drives the other fields which should be required or not based on the type. | +| title | string | N | The title of the requested action | +| message | string | Y | The text describing the action that needs to be taken. | +| thumbnailUrl | url | N | The thumbnail image that is shown in the list view for the actions. If not specified, this should default to an in-app default image. | +| imageUrl | url | N | The image that is shown in the action detail view. If this is not specified, it should not show an image on the detail screen.| +| createdAt | datetime | (auto) | The time the record was created. | +| updatedAt | datetime | (auto) | The time the recond was last updated. | + + +### Actions with additional fields + +Most actions have additional fields that are needed to fulfil the integrations, etc. + +#### Url + +| Attribute | Data Type | Required | Description | +| --------- | --------- | -------- | ----------- | +| ref | url | Y | The url to open up in the user's web-browser. (Not in-app webview) | + +#### Call + +| Attribute | Data Type | Required | Description | +| --------- | --------- | -------- | ----------- | +| ref | string | Y | The phone number (only digits, no dashes, periods, etc) this should prompt the user to dial, but not call the number without the user clicking the actual call button. (i.e. Android Dial intent) | + +#### Email + +| Attribute | Data Type | Required | Description | +| --------- | --------- | -------- | ----------- | +| subject | string | Y | The text that should pre-populate the subject line of the email. | +| body | string | Y | The text that should pre-populate the email body. | +| recipients | Array | Y | An array of email addresses that should pre-populate in the To: field of the email. | + +#### Tweet + +| Attribute | Data Type | Required | Description | +| --------- | --------- | -------- | ----------- | +| body | string | Y | The text that should pre-populate as the tweet. | + +#### Retweet + +| Attribute | Data Type | Required | Description | +| --------- | --------- | -------- | ----------- | +| ref | string | Y | The id of the tweet that needs to be retweeted. | + +#### tweet_reply + +| Attribute | Data Type | Required | Description | +| --------- | --------- | -------- | ----------- | +| body | string | Y | The text that should pre-populate the text of the reply. | +| ref | string | Y | The id of the tweet that should be replied to. | + +#### fb_post + +| Attribute | Data Type | Required | Description | +| --------- | --------- | -------- | ----------- | +| body | string | Y | The text that should pre-populate the Facebook post. | + +#### fb_share + +| Attribute | Data Type | Required | Description | +| --------- | --------- | -------- | ----------- | +| ref | string | Y | The url that needs to be shared via Facebook. | +| body | string | Y | The text that should pre-populate the Facebook share post. | + +#### avatar + +| Attribute | Data Type | Required | Description | +| --------- | --------- | -------- | ----------- | +| ref | string | Y | The url or base64 encoded image to use in-place of the user's avatar on social networks. | + +#### instagram + +| Attribute | Data Type | Required | Description | +| --------- | --------- | -------- | ----------- | +| ref | string | Y | The url or base64 encoded image to post to Instagram. | + From e4ffe2978690542521c65069a8ddf4b0c330fd5f Mon Sep 17 00:00:00 2001 From: Bryan Rehbein Date: Sat, 24 Oct 2015 20:19:24 -0700 Subject: [PATCH 3/6] added priority field --- docs/parse/action_schema.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/parse/action_schema.md b/docs/parse/action_schema.md index 913b61b..6e8a0df 100644 --- a/docs/parse/action_schema.md +++ b/docs/parse/action_schema.md @@ -44,6 +44,7 @@ query.addDescendingOrder("createdAt") | imageUrl | url | N | The image that is shown in the action detail view. If this is not specified, it should not show an image on the detail screen.| | createdAt | datetime | (auto) | The time the record was created. | | updatedAt | datetime | (auto) | The time the recond was last updated. | +| priority | number | Y | Should default to 0. Field is used to control the order of the action list. The higher the priority, the higher on the list the item is.| ### Actions with additional fields From 76baa54297db7aaa94ee8217090cde05613e96aa Mon Sep 17 00:00:00 2001 From: Bryan Rehbein Date: Sat, 24 Oct 2015 20:22:13 -0700 Subject: [PATCH 4/6] updated headers --- docs/parse/action_schema.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/parse/action_schema.md b/docs/parse/action_schema.md index 6e8a0df..d9590b0 100644 --- a/docs/parse/action_schema.md +++ b/docs/parse/action_schema.md @@ -51,19 +51,19 @@ query.addDescendingOrder("createdAt") Most actions have additional fields that are needed to fulfil the integrations, etc. -#### Url +#### Visit a Webpage: `url` | Attribute | Data Type | Required | Description | | --------- | --------- | -------- | ----------- | | ref | url | Y | The url to open up in the user's web-browser. (Not in-app webview) | -#### Call +#### Make a Phone Call: `call` | Attribute | Data Type | Required | Description | | --------- | --------- | -------- | ----------- | | ref | string | Y | The phone number (only digits, no dashes, periods, etc) this should prompt the user to dial, but not call the number without the user clicking the actual call button. (i.e. Android Dial intent) | -#### Email +#### Send an Email: `email` | Attribute | Data Type | Required | Description | | --------- | --------- | -------- | ----------- | @@ -71,45 +71,45 @@ Most actions have additional fields that are needed to fulfil the integrations, | body | string | Y | The text that should pre-populate the email body. | | recipients | Array | Y | An array of email addresses that should pre-populate in the To: field of the email. | -#### Tweet +#### Send a Tweet: `tweet` | Attribute | Data Type | Required | Description | | --------- | --------- | -------- | ----------- | | body | string | Y | The text that should pre-populate as the tweet. | -#### Retweet +#### Retweet a Message: `retweet` | Attribute | Data Type | Required | Description | | --------- | --------- | -------- | ----------- | | ref | string | Y | The id of the tweet that needs to be retweeted. | -#### tweet_reply +#### Reply to a Tweet: `tweet_reply` | Attribute | Data Type | Required | Description | | --------- | --------- | -------- | ----------- | | body | string | Y | The text that should pre-populate the text of the reply. | | ref | string | Y | The id of the tweet that should be replied to. | -#### fb_post +#### Post to Facebook: `fb_post` | Attribute | Data Type | Required | Description | | --------- | --------- | -------- | ----------- | | body | string | Y | The text that should pre-populate the Facebook post. | -#### fb_share +#### Share a Link on Facebook: `fb_share` | Attribute | Data Type | Required | Description | | --------- | --------- | -------- | ----------- | | ref | string | Y | The url that needs to be shared via Facebook. | | body | string | Y | The text that should pre-populate the Facebook share post. | -#### avatar +#### Update your Social Media Avatars: `avatar` | Attribute | Data Type | Required | Description | | --------- | --------- | -------- | ----------- | | ref | string | Y | The url or base64 encoded image to use in-place of the user's avatar on social networks. | -#### instagram +#### Post to Instagram: `instagram` | Attribute | Data Type | Required | Description | | --------- | --------- | -------- | ----------- | From 2aefcf040cfb86956931d6bf7ab439609f5f169a Mon Sep 17 00:00:00 2001 From: Allen Schober Date: Sun, 25 Oct 2015 13:36:03 -0500 Subject: [PATCH 5/6] docs - update to tweet to include URL and attend to include info for calendar invite --- docs/parse/action_schema.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/docs/parse/action_schema.md b/docs/parse/action_schema.md index d9590b0..a91ed3e 100644 --- a/docs/parse/action_schema.md +++ b/docs/parse/action_schema.md @@ -28,7 +28,7 @@ query.addDescendingOrder("createdAt") | tweet_reply | Reply to a tweet, the provided text should pre-populate the tweet if possible. The reply should also reference the included tweet id. | | fb_post | Post to Facebook, the provided text should pre-populate the post if possible. | | fb_share | Share a provided url to Facebook, the provided text should pre-populate the share if possible. | -| attend | Physical presence is needed at some event, etc. The request should advise people of a common hashtag to use while attending the event. | +| attend | Physical or virtual presence is needed at some event, etc. The request should generate a calendar event, and could advise people of a common hashtag to use while attending the event. | | avatar | Set social media avatar. | | instagram | Post to Instagram. | @@ -76,6 +76,7 @@ Most actions have additional fields that are needed to fulfil the integrations, | Attribute | Data Type | Required | Description | | --------- | --------- | -------- | ----------- | | body | string | Y | The text that should pre-populate as the tweet. | +| ref | string | N | The url that should be included in the tweet which is automatically url shortened by Twitter's t.co service. | #### Retweet a Message: `retweet` @@ -103,6 +104,16 @@ Most actions have additional fields that are needed to fulfil the integrations, | ref | string | Y | The url that needs to be shared via Facebook. | | body | string | Y | The text that should pre-populate the Facebook share post. | +#### Create Calendar Object: `attend` + +| Attribute | Data Type | Required | Description | +| --------- | --------- | -------- | ----------- | +| subject | string | Y | The text that should pre-populate the calendar object title. | +| body | string | Y | The text that should pre-populate the calendar object body. | +| startTime | string | Y | The start time formatted as a ISO-8601 date string (`yyyy-MM-dd'T'HH:mm:ssZ`) that should pre-populate the calendar object . | +| endTime | string | Y | The end time formatted as a ISO-8601 date string (`yyyy-MM-dd'T'HH:mm:ssZ`) that should pre-populate the calendar object . | +| location | string| N | The text that should pre-populate the calendar object location. | + #### Update your Social Media Avatars: `avatar` | Attribute | Data Type | Required | Description | From 80723f0b7b6404c97594eed616fb7589d63a5716 Mon Sep 17 00:00:00 2001 From: Bryan Rehbein Date: Mon, 26 Oct 2015 11:29:36 -0700 Subject: [PATCH 6/6] Update action_schema.md --- docs/parse/action_schema.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/parse/action_schema.md b/docs/parse/action_schema.md index a91ed3e..b7a7bbd 100644 --- a/docs/parse/action_schema.md +++ b/docs/parse/action_schema.md @@ -76,7 +76,6 @@ Most actions have additional fields that are needed to fulfil the integrations, | Attribute | Data Type | Required | Description | | --------- | --------- | -------- | ----------- | | body | string | Y | The text that should pre-populate as the tweet. | -| ref | string | N | The url that should be included in the tweet which is automatically url shortened by Twitter's t.co service. | #### Retweet a Message: `retweet`