Merge pull request #127 from fossunited/livecode-cleanup
refactor: removed the portal pages for showing sketches
This commit is contained in:
@@ -1,28 +0,0 @@
|
|||||||
{% extends "templates/base.html" %}
|
|
||||||
{% from "www/macros/livecode.html" import LiveCodeEditor, LiveCodeEditorJS %}
|
|
||||||
|
|
||||||
{% block title %}Sketches{% endblock %}
|
|
||||||
{% block head_include %}
|
|
||||||
<meta name="description" content="Sketches" />
|
|
||||||
<meta name="keywords" content="sketches" />
|
|
||||||
<link rel="stylesheet" href="/assets/css/lms.css">
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block content %}
|
|
||||||
<section class="top-section" style="padding: 1rem 0rem;">
|
|
||||||
<div class='container pb-5'>
|
|
||||||
<h1>Recent Sketches</h1>
|
|
||||||
|
|
||||||
<a href="/sketches/new" class="btn btn-primary">Create a New Sketch</a>
|
|
||||||
</div>
|
|
||||||
<div class='container'>
|
|
||||||
<div class="row">
|
|
||||||
{% for sketch in sketches %}
|
|
||||||
<div class="col-md-3">
|
|
||||||
{{ widgets.SketchTeaser(sketch=sketch) }}
|
|
||||||
</div>
|
|
||||||
{% endfor %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
{% endblock %}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
import frappe
|
|
||||||
from community.lms.models import Sketch
|
|
||||||
|
|
||||||
def get_context(context):
|
|
||||||
context.no_cache = 1
|
|
||||||
context.sketches = Sketch.get_recent_sketches()
|
|
||||||
|
|
||||||
@@ -1,112 +0,0 @@
|
|||||||
{% extends "templates/base.html" %}
|
|
||||||
{% from "www/macros/livecode.html" import LiveCodeEditorLarge, LiveCodeEditorJS with context %}
|
|
||||||
|
|
||||||
{% block title %}{{sketch.title}}{% endblock %}
|
|
||||||
{% block head_include %}
|
|
||||||
<meta name="description" content="Sketch {{sketch.title}}" />
|
|
||||||
<meta name="keywords" content="sketch {{sketch.title}}" />
|
|
||||||
<style>
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="{{ livecode_url }}/static/codemirror/lib/codemirror.css">
|
|
||||||
<link rel="stylesheet" href="/assets/css/lms.css">
|
|
||||||
|
|
||||||
<script src="{{ livecode_url }}/static/codemirror/lib/codemirror.js"></script>
|
|
||||||
<script src="{{ livecode_url }}/static/codemirror/mode/python/python.js"></script>
|
|
||||||
<script src="{{ livecode_url }}/static/codemirror/keymap/sublime.js"></script>
|
|
||||||
|
|
||||||
<script src="{{ livecode_url }}/static/codemirror/addon/edit/matchbrackets.js"></script>
|
|
||||||
<script src="{{ livecode_url }}/static/codemirror/addon/comment/comment.js"></script>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block content %}
|
|
||||||
<section class="top-section" style="padding: 1rem 0rem;">
|
|
||||||
<div class='container pb-5'>
|
|
||||||
<nav aria-label="breadcrumb">
|
|
||||||
<ol class="breadcrumb">
|
|
||||||
<li class="breadcrumb-item" aria-current="page"><a href="/sketches">Sketches</a></li>
|
|
||||||
</ol>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
<div class="sketch-header">
|
|
||||||
{% if editable %}
|
|
||||||
<div class="form-row">
|
|
||||||
<div class="col-lg-8 col-md-6">
|
|
||||||
<input type="text" id="sketch-title" name="title" class="form-control" value="{{ sketch.title }}">
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-4 col-md-6">
|
|
||||||
<button type="submit" id="sketch-save" class="btn-save btn btn-primary">Save</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% else %}
|
|
||||||
<h1 class="sketch-title">{{sketch.title}}</h1>
|
|
||||||
<div class="sketch-owner-wrapper">By <span class="sketch-owner">{{sketch.get_owner_name()}}</span></div>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{% if sketch.is_new() and not editable %}
|
|
||||||
<div class="alert alert-warning">
|
|
||||||
Please login to save this sketch.
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<div class="sketch-editor">
|
|
||||||
{{LiveCodeEditorLarge(sketch.name, sketch.code) }}
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{%- block script %}
|
|
||||||
{{ super() }}
|
|
||||||
{{ LiveCodeEditorJS() }}
|
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
var sketch_name = {{ sketch.name | tojson }};
|
|
||||||
|
|
||||||
function saveSketch() {
|
|
||||||
var title = $("#sketch-title").val()
|
|
||||||
var code = livecodeEditors[0].codemirror.doc.getValue()
|
|
||||||
frappe.call('community.lms.doctype.lms_sketch.lms_sketch.save_sketch', {
|
|
||||||
name: sketch_name,
|
|
||||||
title: title,
|
|
||||||
code: code
|
|
||||||
})
|
|
||||||
.then(r => {
|
|
||||||
var msg = r.message;
|
|
||||||
if (!msg.ok) {
|
|
||||||
var error = msg.error || "Save failed."
|
|
||||||
frappe.msgprint({
|
|
||||||
"title": "Error",
|
|
||||||
"indicator": "red",
|
|
||||||
"message": error
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else if (msg.status == "created") {
|
|
||||||
var path = "/sketches/sketch?sketch=" + msg.name;
|
|
||||||
var url = window.location.protocol + "//" + window.location.host + path
|
|
||||||
window.history.pushState({path: url}, '', url);
|
|
||||||
sketch_name = name;
|
|
||||||
|
|
||||||
frappe.msgprint({
|
|
||||||
"title": "Notification",
|
|
||||||
"indicator": "green",
|
|
||||||
"message": "New sketch has been saved!"
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else if (msg.status == "updated") {
|
|
||||||
frappe.msgprint({
|
|
||||||
"title": "Notification",
|
|
||||||
"indicator": "green",
|
|
||||||
"message": "The sketch has been saved!"
|
|
||||||
});
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
$(function() {
|
|
||||||
$("#sketch-save").click(function() {
|
|
||||||
saveSketch();
|
|
||||||
});
|
|
||||||
})
|
|
||||||
</script>
|
|
||||||
{%- endblock %}
|
|
||||||
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
import frappe
|
|
||||||
|
|
||||||
def get_context(context):
|
|
||||||
context.no_cache = 1
|
|
||||||
|
|
||||||
try:
|
|
||||||
sketch_id = frappe.form_dict["sketch"]
|
|
||||||
except KeyError:
|
|
||||||
context.template = "www/404.html"
|
|
||||||
return
|
|
||||||
|
|
||||||
sketch = get_sketch(sketch_id)
|
|
||||||
if not sketch:
|
|
||||||
context.template = "www/404.html"
|
|
||||||
return
|
|
||||||
|
|
||||||
context.sketch = sketch
|
|
||||||
context.livecode_url = get_livecode_url()
|
|
||||||
context.editable = is_editable(context.sketch, frappe.session.user)
|
|
||||||
|
|
||||||
def is_editable(sketch, user):
|
|
||||||
if sketch.is_new():
|
|
||||||
# new sketches can be editable by any logged in user
|
|
||||||
return user != "Guest"
|
|
||||||
else:
|
|
||||||
# existing sketches are editable by the owner
|
|
||||||
return sketch.owner == user
|
|
||||||
|
|
||||||
def get_livecode_url():
|
|
||||||
doc = frappe.get_doc("LMS Settings")
|
|
||||||
return doc.livecode_url
|
|
||||||
|
|
||||||
def get_sketch(sketch_id):
|
|
||||||
if sketch_id == 'new':
|
|
||||||
sketch = frappe.new_doc('LMS Sketch')
|
|
||||||
sketch.name = "new"
|
|
||||||
sketch.title = "New Sketch"
|
|
||||||
sketch.code = "circle(100, 100, 50)"
|
|
||||||
return sketch
|
|
||||||
|
|
||||||
try:
|
|
||||||
name = "SKETCH-" + sketch_id
|
|
||||||
return frappe.get_doc('LMS Sketch', name)
|
|
||||||
except frappe.exceptions.DoesNotExistError:
|
|
||||||
return
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user