diff --git a/app/app/components/section/airtable/type-editor.js b/app/app/components/section/airtable/type-editor.js new file mode 100644 index 00000000..9c332333 --- /dev/null +++ b/app/app/components/section/airtable/type-editor.js @@ -0,0 +1,39 @@ +// Copyright 2016 Documize Inc. . All rights reserved. +// +// This software (Documize Community Edition) is licensed under +// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html +// +// You can operate outside the AGPL restrictions by purchasing +// Documize Enterprise Edition and obtaining a commercial license +// by contacting . +// +// https://documize.com + +import Ember from 'ember'; + +export default Ember.Component.extend({ + data: "", + + didReceiveAttrs() { + this.set("data", this.get("meta.rawBody")); + }, + + actions: { + isDirty() { + return this.get('meta.rawBody') !== this.get('data'); + }, + + onCancel() { + this.attrs.onCancel(); + }, + + onAction(title) { + let page = this.get('page'); + let meta = this.get('meta'); + page.set('title', title); + meta.set('rawBody', this.get("data")); + + this.attrs.onAction(page, meta); + } + } +}); diff --git a/app/app/components/section/airtable/type-renderer.js b/app/app/components/section/airtable/type-renderer.js new file mode 100644 index 00000000..a5417462 --- /dev/null +++ b/app/app/components/section/airtable/type-renderer.js @@ -0,0 +1,14 @@ +// Copyright 2016 Documize Inc. . All rights reserved. +// +// This software (Documize Community Edition) is licensed under +// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html +// +// You can operate outside the AGPL restrictions by purchasing +// Documize Enterprise Edition and obtaining a commercial license +// by contacting . +// +// https://documize.com + +import Ember from 'ember'; + +export default Ember.Component.extend({}); \ No newline at end of file diff --git a/app/app/styles/print.scss b/app/app/styles/print.scss index 48c8a469..fe484f00 100644 --- a/app/app/styles/print.scss +++ b/app/app/styles/print.scss @@ -19,7 +19,7 @@ display: none !important; } - .print-title, .non-printable-message{ + .print-title, .non-printable-message { display: block !important; } } diff --git a/app/app/templates/components/section/airtable/type-editor.hbs b/app/app/templates/components/section/airtable/type-editor.hbs new file mode 100644 index 00000000..7f9c9bec --- /dev/null +++ b/app/app/templates/components/section/airtable/type-editor.hbs @@ -0,0 +1,15 @@ +{{#section/base-editor document=document folder=folder page=page isDirty=(action 'isDirty') onCancel=(action 'onCancel') + onAction=(action 'onAction')}} +
+
+
+
Airtable
+
Paste the Airtable embed code snippet
+
+
+ + {{textarea value=data rows="3" id="airtable-embed-code" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"}} +
+
+
+{{/section/base-editor}} diff --git a/app/app/templates/components/section/airtable/type-renderer.hbs b/app/app/templates/components/section/airtable/type-renderer.hbs new file mode 100644 index 00000000..24600468 --- /dev/null +++ b/app/app/templates/components/section/airtable/type-renderer.hbs @@ -0,0 +1,3 @@ +
+ {{{page.body}}} +
diff --git a/app/app/templates/components/section/gemini/type-editor.hbs b/app/app/templates/components/section/gemini/type-editor.hbs index 3cfb085d..99c0068d 100644 --- a/app/app/templates/components/section/gemini/type-editor.hbs +++ b/app/app/templates/components/section/gemini/type-editor.hbs @@ -1,6 +1,6 @@ {{#section/base-editor document=document folder=folder page=page busy=waiting tip="Gemini enterprise issue and ticketing software (https://www.countersoft.com)" isDirty=(action 'isDirty') onCancel=(action 'onCancel') onAction=(action 'onAction')}} -
+
@@ -25,9 +25,9 @@
Authenticate
-
+
-
+
{{#if authenticated}}
@@ -49,6 +49,6 @@
{{/if}} -
+
{{/section/base-editor}} diff --git a/app/public/sections/airtable.png b/app/public/sections/airtable.png new file mode 100644 index 00000000..0ed906e2 Binary files /dev/null and b/app/public/sections/airtable.png differ diff --git a/app/public/sections/airtable@2x.png b/app/public/sections/airtable@2x.png new file mode 100644 index 00000000..806c11b4 Binary files /dev/null and b/app/public/sections/airtable@2x.png differ diff --git a/core/section/airtable/airtable.go b/core/section/airtable/airtable.go new file mode 100644 index 00000000..0a356574 --- /dev/null +++ b/core/section/airtable/airtable.go @@ -0,0 +1,62 @@ +// Copyright 2016 Documize Inc. . All rights reserved. +// +// This software (Documize Community Edition) is licensed under +// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html +// +// You can operate outside the AGPL restrictions by purchasing +// Documize Enterprise Edition and obtaining a commercial license +// by contacting . +// +// https://documize.com + +package airtable + +import ( + "net/http" + + "github.com/documize/community/core/section/provider" +) + +// Provider represents Airtable +type Provider struct { +} + +// Meta describes us +func (*Provider) Meta() provider.TypeMeta { + section := provider.TypeMeta{} + + section.ID = "3cfa411e-73bf-474c-841a-effd6b00fdd8" + section.Title = "Airtable" + section.Description = "Databases, tables, views" + section.ContentType = "airtable" + + return section +} + +// Command stub. +func (*Provider) Command(ctx *provider.Context, w http.ResponseWriter, r *http.Request) { + provider.WriteEmpty(w) +} + +// Render converts markdown data into HTML suitable for browser rendering. +func (*Provider) Render(ctx *provider.Context, config, data string) string { + return embed(config, data) +} + +// Refresh just sends back data as-is. +func (*Provider) Refresh(ctx *provider.Context, config, data string) string { + return embed(config, data) +} + +func embed(config, data string) string { + return data + // return ` + // + // ` +} diff --git a/core/section/register.go b/core/section/register.go index 005056bd..c6dded39 100644 --- a/core/section/register.go +++ b/core/section/register.go @@ -14,6 +14,8 @@ package section import ( "fmt" + "github.com/documize/community/core/log" + "github.com/documize/community/core/section/airtable" "github.com/documize/community/core/section/code" "github.com/documize/community/core/section/gemini" "github.com/documize/community/core/section/github" @@ -23,7 +25,6 @@ import ( "github.com/documize/community/core/section/table" "github.com/documize/community/core/section/trello" "github.com/documize/community/core/section/wysiwyg" - "github.com/documize/community/core/log" ) // Register sections @@ -36,6 +37,7 @@ func Register() { provider.Register("table", &table.Provider{}) provider.Register("trello", &trello.Provider{}) provider.Register("wysiwyg", &wysiwyg.Provider{}) + provider.Register("airtable", &airtable.Provider{}) p := provider.List() log.Info(fmt.Sprintf("Documize registered %d smart sections", len(p))) }