mirror of
https://github.com/documize/community.git
synced 2025-07-24 07:39:43 +02:00
Merge pull request #43 from documize/airtable-integration
initial implementation
This commit is contained in:
commit
e9def2e71f
10 changed files with 141 additions and 6 deletions
39
app/app/components/section/airtable/type-editor.js
Normal file
39
app/app/components/section/airtable/type-editor.js
Normal file
|
@ -0,0 +1,39 @@
|
|||
// Copyright 2016 Documize Inc. <legal@documize.com>. 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 <sales@documize.com>.
|
||||
//
|
||||
// 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);
|
||||
}
|
||||
}
|
||||
});
|
14
app/app/components/section/airtable/type-renderer.js
Normal file
14
app/app/components/section/airtable/type-renderer.js
Normal file
|
@ -0,0 +1,14 @@
|
|||
// Copyright 2016 Documize Inc. <legal@documize.com>. 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 <sales@documize.com>.
|
||||
//
|
||||
// https://documize.com
|
||||
|
||||
import Ember from 'ember';
|
||||
|
||||
export default Ember.Component.extend({});
|
|
@ -19,7 +19,7 @@
|
|||
display: none !important;
|
||||
}
|
||||
|
||||
.print-title, .non-printable-message{
|
||||
.print-title, .non-printable-message {
|
||||
display: block !important;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
{{#section/base-editor document=document folder=folder page=page isDirty=(action 'isDirty') onCancel=(action 'onCancel')
|
||||
onAction=(action 'onAction')}}
|
||||
<div class="input-form">
|
||||
<form>
|
||||
<div class="heading">
|
||||
<div class="title">Airtable</div>
|
||||
<div class="tip">Paste the Airtable embed code snippet</div>
|
||||
</div>
|
||||
<div class="input-control">
|
||||
<label>Embed Code</label>
|
||||
{{textarea value=data rows="3" id="airtable-embed-code" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"}}
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
{{/section/base-editor}}
|
|
@ -0,0 +1,3 @@
|
|||
<div class="non-printable">
|
||||
{{{page.body}}}
|
||||
</div>
|
|
@ -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')}}
|
||||
|
||||
<div class="pull-left" style="width: 45%;">
|
||||
<div class="pull-left" style="width: 45%;">
|
||||
<div class="input-form">
|
||||
<form>
|
||||
<div class="heading">
|
||||
|
@ -25,9 +25,9 @@
|
|||
<div class="regular-button button-blue" {{ action 'auth' }}>Authenticate</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pull-left margin-left-40" style="width: 45%;">
|
||||
<div class="pull-left margin-left-40" style="width: 45%;">
|
||||
{{#if authenticated}}
|
||||
<div class="input-form">
|
||||
<form>
|
||||
|
@ -49,6 +49,6 @@
|
|||
</form>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{/section/base-editor}}
|
||||
|
|
BIN
app/public/sections/airtable.png
Normal file
BIN
app/public/sections/airtable.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.8 KiB |
BIN
app/public/sections/airtable@2x.png
Normal file
BIN
app/public/sections/airtable@2x.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.6 KiB |
62
core/section/airtable/airtable.go
Normal file
62
core/section/airtable/airtable.go
Normal file
|
@ -0,0 +1,62 @@
|
|||
// Copyright 2016 Documize Inc. <legal@documize.com>. 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 <sales@documize.com>.
|
||||
//
|
||||
// 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 `
|
||||
// <iframe class="airtable-embed"
|
||||
// src="https://airtable.com/embed/shrFOcQ6BYrlUe62L?backgroundColor=yellow&viewControls=on"
|
||||
// frameborder="0"
|
||||
// onmousewheel=""
|
||||
// width="100%"
|
||||
// height="533"
|
||||
// style="background: transparent; border: 1px solid #ccc;"></iframe>
|
||||
// `
|
||||
}
|
|
@ -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)))
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue