mirror of
https://github.com/documize/community.git
synced 2025-07-19 21:29:42 +02:00
parent
accf0a2c63
commit
1a89201bd9
9 changed files with 134 additions and 0 deletions
58
domain/section/frame/frame.go
Normal file
58
domain/section/frame/frame.go
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
// 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 frame
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/http"
|
||||||
|
|
||||||
|
"github.com/documize/community/core/env"
|
||||||
|
"github.com/documize/community/domain/section/provider"
|
||||||
|
"github.com/documize/community/domain/store"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Provider represents IFRAME
|
||||||
|
type Provider struct {
|
||||||
|
Runtime *env.Runtime
|
||||||
|
Store *store.Store
|
||||||
|
}
|
||||||
|
|
||||||
|
// Meta describes us
|
||||||
|
func (*Provider) Meta() provider.TypeMeta {
|
||||||
|
section := provider.TypeMeta{}
|
||||||
|
|
||||||
|
section.ID = "1ef25a5a-7b24-470a-afca-bedd8462b7e2"
|
||||||
|
section.Title = "IFrame"
|
||||||
|
section.Description = "Embed an IFRAME code snippet"
|
||||||
|
section.ContentType = "frame"
|
||||||
|
section.PageType = "tab"
|
||||||
|
|
||||||
|
return section
|
||||||
|
}
|
||||||
|
|
||||||
|
// Command stub.
|
||||||
|
func (*Provider) Command(ctx *provider.Context, w http.ResponseWriter, r *http.Request) {
|
||||||
|
provider.WriteEmpty(w)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Render converts as-is.
|
||||||
|
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
|
||||||
|
}
|
|
@ -18,6 +18,7 @@ import (
|
||||||
"github.com/documize/community/domain/section/airtable"
|
"github.com/documize/community/domain/section/airtable"
|
||||||
"github.com/documize/community/domain/section/code"
|
"github.com/documize/community/domain/section/code"
|
||||||
"github.com/documize/community/domain/section/flowchart"
|
"github.com/documize/community/domain/section/flowchart"
|
||||||
|
"github.com/documize/community/domain/section/frame"
|
||||||
"github.com/documize/community/domain/section/gemini"
|
"github.com/documize/community/domain/section/gemini"
|
||||||
"github.com/documize/community/domain/section/jira"
|
"github.com/documize/community/domain/section/jira"
|
||||||
"github.com/documize/community/domain/section/markdown"
|
"github.com/documize/community/domain/section/markdown"
|
||||||
|
@ -48,6 +49,7 @@ func Register(rt *env.Runtime, s *store.Store) {
|
||||||
provider.Register("plantuml", &plantuml.Provider{Runtime: rt, Store: s})
|
provider.Register("plantuml", &plantuml.Provider{Runtime: rt, Store: s})
|
||||||
provider.Register("flowchart", &flowchart.Provider{Runtime: rt, Store: s})
|
provider.Register("flowchart", &flowchart.Provider{Runtime: rt, Store: s})
|
||||||
provider.Register("pdf", &pdfjs.Provider{Runtime: rt, Store: s})
|
provider.Register("pdf", &pdfjs.Provider{Runtime: rt, Store: s})
|
||||||
|
provider.Register("frame", &frame.Provider{Runtime: rt, Store: s})
|
||||||
|
|
||||||
p := provider.List()
|
p := provider.List()
|
||||||
rt.Log.Info(fmt.Sprintf("Extensions: registered %d section types", len(p)))
|
rt.Log.Info(fmt.Sprintf("Extensions: registered %d section types", len(p)))
|
||||||
|
|
41
gui/app/components/section/frame/type-editor.js
Normal file
41
gui/app/components/section/frame/type-editor.js
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
// 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 Component from '@ember/component';
|
||||||
|
|
||||||
|
export default Component.extend({
|
||||||
|
data: "",
|
||||||
|
|
||||||
|
didReceiveAttrs() {
|
||||||
|
this.set("data", this.get("meta.rawBody"));
|
||||||
|
},
|
||||||
|
|
||||||
|
actions: {
|
||||||
|
isDirty() {
|
||||||
|
return this.get('meta.rawBody') !== this.get('data');
|
||||||
|
},
|
||||||
|
|
||||||
|
onCancel() {
|
||||||
|
let cb = this.get('onCancel');
|
||||||
|
cb();
|
||||||
|
},
|
||||||
|
|
||||||
|
onAction(title) {
|
||||||
|
let page = this.get('page');
|
||||||
|
let meta = this.get('meta');
|
||||||
|
page.set('title', title);
|
||||||
|
meta.set('rawBody', this.get("data"));
|
||||||
|
|
||||||
|
let cb = this.get('onAction');
|
||||||
|
cb(page, meta);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
14
gui/app/components/section/frame/type-renderer.js
Normal file
14
gui/app/components/section/frame/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 Component from '@ember/component';
|
||||||
|
|
||||||
|
export default Component.extend({});
|
|
@ -3,6 +3,10 @@
|
||||||
line-height: 1.5rem;
|
line-height: 1.5rem;
|
||||||
color: $color-black-light-1;
|
color: $color-black-light-1;
|
||||||
|
|
||||||
|
iframe {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
table {
|
table {
|
||||||
border: 1px solid map-get($gray-shades, 300) !important;
|
border: 1px solid map-get($gray-shades, 300) !important;
|
||||||
|
|
||||||
|
|
12
gui/app/templates/components/section/frame/type-editor.hbs
Normal file
12
gui/app/templates/components/section/frame/type-editor.hbs
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{{layout/logo-heading
|
||||||
|
title="IFrame"
|
||||||
|
desc="Embed an IFrame"
|
||||||
|
icon=constants.Icon.Integrations}}
|
||||||
|
|
||||||
|
{{#section/base-editor document=document folder=folder page=page isDirty=(action "isDirty") onCancel=(action "onCancel") onAction=(action "onAction")}}
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="iframe-embed-code">IFrame embed code</label>
|
||||||
|
{{textarea value=data rows="10" id="iframe-embed-code" class="form-control mousetrap" placeholder="Enter code" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"}}
|
||||||
|
<small class="form-text text-muted">Paste the iframe code snippet</small>
|
||||||
|
</div>
|
||||||
|
{{/section/base-editor}}
|
|
@ -0,0 +1,3 @@
|
||||||
|
<div class="non-printable">
|
||||||
|
{{{page.body}}}
|
||||||
|
</div>
|
BIN
gui/public/sections/frame.png
Normal file
BIN
gui/public/sections/frame.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 255 B |
BIN
gui/public/sections/frame@2x.png
Normal file
BIN
gui/public/sections/frame@2x.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 357 B |
Loading…
Add table
Add a link
Reference in a new issue