autoEdit 2 Documentation
1.0.13
1.0.13
  • Introduction
  • Overview
    • Intro
      • Development approach
      • from 1.0.5 to 1.0.6
    • Architecture Overview
      • Lo fi Design Sketches
      • High fidelity sketches in HTML
    • Support the project
    • documentation section template
    • Build / Deployment
      • Deployment/build for Mac OS X
      • Deployment / Build for Linux
      • Deployment / Build for Windows
      • Travis CI continuous build
        • previous travis setup
  • R&D Doc
    • About R&D doc section
    • Transcription & Media Processing
      • Transcription json
      • Transcriber
        • audio to video
        • STT sdks
          • IBM Watson STT
          • Gentle STT
          • Pocketsphinx
      • Video preview conversion
      • Read metadata
    • Hypertranscript
    • Selections, Annotations, Papercuts
      • Selections
      • Annotations
      • Tags
    • Paper-edit
      • Paper-edit json
      • search-filter
      • drag-and-drop
      • Preview Paper-edit video
    • Export
      • EDL export
      • XML export
      • mp4 export
  • Appendix
    • Dev configuration
    • Current db setup
    • EDL Format
    • Reusable components
    • Prerequisites
    • Testing
    • Updating automated documentation
    • ffmpeg and ffprobe in electron
    • Adding STT services
  • Appendix - Data structures
    • IBM Watson json specs
    • Gentle Json transcription specs
    • Pocketsphinx results
    • autoEdit transcription Json
  • QA List
    • QA Intro
  • Adobe Panel
    • autoEdit Adobe CEP Panel dev setup
      • Adobe Extensions HostList codes
    • autoEdit Adobe CEP Panel integration overview
    • Jsx functions for Adobe CEP autoEdit adobe Panel
    • Packaging and distributing Adobe CEP Extensions
      • Packaging signing Adobe CEP Panel in details
      • Submit to Adobe
  • Project Page
    • Build project page
    • Build/update demo front end page
  • Roadmap
    • Improvements
    • Roadmap
      • Paper-editing Roadmap
      • Extra Features Roadmap
      • Future Roadmap
        • Live video editing
        • Social Media Export
        • Translate transcriptions
        • Web app
          • Multi-user collaboration
        • Searchable Editable Archive
        • NLP insights
        • Slack/Chat bot integration
        • Interactive dev tool
        • Phone mms integration with twillio
        • B-roll computational photography
Powered by GitBook
On this page
  • Component/part description
  • Related projects.
  • Implementations Options considered
  • sortable
  • vuejs
  • dragula
  • Option: Jquery UI multisortable
  • Option: Sortable
  • Jquery Sortable
  • Palestinian remix / hyperaudio - Laurian
  • listener + data layer // Andrea's option <-- current implemtation
  • Current implementation
  • What needs refactoring
  1. R&D Doc
  2. Paper-edit

drag-and-drop

Previoussearch-filterNextPreview Paper-edit video

Last updated 6 years ago

Component/part description

Related projects.

Implementations Options considered

sortable

Eg use js library

vuejs

Or if using veu js

dragula

Or use js To figure out in dragula is how to integrate with selections. Eg make a selection draggable. Coz I think dragula needs draggable items to be wrapped in a div with a certail class (?)

Could wrap selection/annotations/tags in a div with that class to make this possible.

in autoEdit Comes from a problem is of representation of highlight for drag and drop. Hilight is a class added to a word.

It be good to figure this out as a component.

This makes the whole line / paragraph draggable.

Making words as draggable and having multi selection is outside of the scope of dragula (read that in the issues section of github repo).

Adding sortable with dragula gives this error TypeError: Cannot read property 'pointerEnabled' of undefined There might be a problem with dragula and browserify?

Option: Jquery UI multisortable

Other option is JQuery UI multisortable previous version of autoEdit in node. A bit fiddly to make a selection.

using express, jquery multisortable for D&D, bbc video compositor for preview. issues:

  • lack of data structure for selection to -> papercut->to paperedit made it hard to add text in a reliable way.

  • jquery ui multisortable selection not natural, click then shift + click to select range of text.

Main issue with this is that you need to click to select. And do click shift to select from one word to the other.

An option could be to add slected class to words span contigues to clicked selected?

Option: Sortable

Jquery Sortable

Palestinian remix / hyperaudio - Laurian

Also review Palestinian remix (trello/slack) D&D by Laurian, example code.

From Laurian:

listener + data layer // Andrea's option <-- current implemtation

Listener on user text selection on transcription Grab info Create div Add and div to the paperedit side at the end.

Div on paper-edit side can then be sortable.

DataLayer

Not using drag and drop. But using data layer. User selects words in transcriptions. Data structure is created with those info. Papercut ejd template is populated And is added at the end of paper edit With mouse down listener

With html5 drag and drop added sortable To allow to be able to rearrange order of papercuts. Can drag a piece and then copy and append after element you drop on. And remove original piece.

Subsequent improvement If click on papercut then can add selection after that one rather then at the end. Todo: find away to signal that in CSS.

Current implementation

Not actually drag and drop but intermediate data structure implementation.

What needs refactoring

JSffidle high fidelity mockup example: For simplicity the words are plain text and not wrapped in span tag, as they would be in an proper hyper transcript.

Screen Shot 2017-04-19 at 15.12.04.png

Github repo: JS fiddle example:

In previous version we used jqueryUI.

Screen Shot 2017-04-19 at 19.17.07.png

Abstracted example with jquery multi sortable

Another option is to use sortable

Nice coz it has nested ul/li which would allow to move all sections of paragraphs all togethere.

the drag and drop was made with rangy and tether.js () , basically using tether to replicate the selection and have it html5 draggable

Screen Shot 2017-04-10 at 19.23.59.png

Spec of the EDL sequence.

https://github.com/RubaXa/Sortable
https://github.com/SortableJS/Vue.Draggable
https://github.com/bevacqua/dragula
https://github.com/OpenNewsLabs/autoEdit_2/blob/paperedit/lib/app/views/transcription_view.js#L34
https://jsfiddle.net/pietrops/Lufaerr2/1/
https://github.com/shvetsgroup/jquery.multisortable
https://jsfiddle.net/neochief/KWeMM/
https://github.com/pietrop/autoEdit_nwjs_alpha_RandD
see vide demo of previous version
https://github.com/pietrop/autoEdit_nwjs_alpha_RandD/blob/master/views/template/paperedit.html
https://jsfiddle.net/pietrops/eo4najce/
https://rubaxa.github.io/Sortable/
https://johnny.github.io/jquery-sortable/
https://github.com/hyperaudio/hyperaudio-experimental
http://tether.io/
http://www.autoedit.io/jsdoc_docs/module-edl_composer.html
https://github.com/andrixb/texthighliter
http://farhadi.ir/projects/html5sortable/
https://www.html5rocks.com/en/tutorials/dnd/basics/
https://github.com/andrixb/v-textselector
LogoPaperedit - dragula - JSFiddle - Code Playground
http://popcorn.gridinoc.com/popcorn.gridinoc.com
LogoEdit fiddle - JSFiddle - Code Playground