mirror of
https://github.com/documize/community.git
synced 2025-07-19 05:09: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/code"
|
||||
"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/jira"
|
||||
"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("flowchart", &flowchart.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()
|
||||
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;
|
||||
color: $color-black-light-1;
|
||||
|
||||
iframe {
|
||||
border: none;
|
||||
}
|
||||
|
||||
table {
|
||||
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