Giter VIP home page Giter VIP logo

awfice's People

Contributors

aej11a avatar brecert avatar doekman avatar imtbl avatar kdrag0n avatar lukyvj avatar sebres avatar sumitgtechpro avatar thiesjoo avatar tijsmaas avatar zhoulion avatar zserge avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

awfice's Issues

saving drawing file

we can a button that can trigger event using html2canvas.js or take screenshot to save paint file in png or jpeg.

Single page with links to all "apps"

I think it would be nice to have a simple single page with links (icons?) opening the apps in new tabs.

This is so that one won't have to go to the repo, scroll down the readme and then click on the "Try this".

(Yes, I can make this myself, but it makes sense if this page is part of the repo, and updated as new apps are added.)

Something like how icloud.com does it:
image

Any limits or can we propose (or make PRs with) more functionality?

I'd envision this "advanced" functionality:

  • add support for pictures (arbitrary positioned incl. as background) - at least to the presenter
  • very basic interaction among the tools (e.g. find a way to put result from draw to presentation)
  • for each app add support for custom styling (maybe a separate input form for JS which could then be arbitrarily used to write styles for arbitrary elements - assuming elements, e.g. spreadsheet cells, can be easily referred to)
  • ways to save and later restore the content

Thoughts?

Mobile/Touch Support for Draw

Currently the drawing app does not support touch events. I have added touch support which increased the size from 327 to 542 bytes. Is this something desired? If so assign this issue to me and I can commit it to a new branch.

PR:(Includes Security Update)New improved spreadsheets app

Hello i have added some functionality to spreadsheets app and still kept it under 1 kb(841 bytes to be exact).
Update 7:12/04/2021 Size gets smaller, leaves room for improvement
Update 6:06/03/2021 Size gets smaller, leaves room for improvement
Update 5:03/03/2021 I have redesigned the interface, it now have more modern design now, you also can use tab to jump cursor to the next row.
Update 4:03/04/2021 Discovered a bug only this version had, if there is only whitespaces on the cell it shows as 0.Fixed now.
Update 3:03/04/2021 Works on Chrome 89 perfectly, also has been tested on Firefox 78 ESR now.Also works perfectly
Update 2:03/04/2021 I have updated it.It did not only became smaller in size, also comes with very important security update.
Update:02/04/2021 I have remade it again so it is less resource intensive and smaller.

data:text/html;charset=utf-8,<table id=t><script>o=(a,b)=>b=JSON.parse(a);for(I=[],D={},C={},q=_=>I.forEach(e=>{e.innerText=D[e.id]}),i=0;i<151;i++)for(r=t.insertRow(-1),j=0;j<27;j++)c=String.fromCharCode(64+j),d=r.insertCell(-1),d.innerText=i?j?'':i:c,l=t.rows[0].cells[0],l.innerText='๐Ÿ’พ',l.onclick=e=>(k=prompt('๐Ÿ“‚',JSON.stringify(C)),k&&(C=o(k,C),q())),i*j&&I.push(d.appendChild(((x,f)=>(f.id=x,f.tabIndex=j,f.contentEditable=!0,f.onfocus=e=>f.innerText=C[x]||'',f.onblur=e=>{C[x]=f.innerText,q()},get=_=>{v=C[x];!v?.trim()?v='':v;if('='!=v[0])return isNaN(v)|v==''?v:~~v;with(D)return eval(v.toUpperCase().slice(1))},a={get},Object.defineProperty(D,x,a),f))(c+i,document.createElement`p`)))</script><style>td{box-shadow:0 0 1q}p{cursor:cell;min-width:70}tr:hover{background:beige}:is(tr,td):first-child{background:tan;text-align:center}td:hover{background:peru}

Click Here To Download The Html Version

Bug Fixes(Which original program has):

  • Newer versions of Chrome and Firefox can't load the original app properly when using data:text/html version.In this version this problem has been fixed.
  • Fixed a bug also original program has, which it doesn't show any entry starting with number(eg. "1234 avenue")
  • (Security Update)You can no longer run any (harmful or not)javascript from cells itself(eg."=alert(a1)"), but you may still use formulas normally.

Added functions:

  • Save/Load Function(Thanks @doekman for that.)
  • Resizable table areas(Both horizontal and vertical.)
  • Modern looking UI(Active cell highlighting, cursors, graphical save button etc.)
  • Press Tab or Shift+Tab to go down and up a row.
  • UTF-8 Support.

Functions are planned to be added(not implemented yet):

  • Import/Export to File

It is usable now since it can save and load files, doesn't have eval security bug and supports resizing of the tables.
Hope it will help

[ tiny code editor ]

data:text/html,<body oninput="i.srcdoc=h.value+'<style>'+c.value+'</style><script>'+j.value+'</script>'"><style>textarea,iframe{width:100%;height:50%}body{margin:0}textarea{width:33.33%;font-size:18}</style><textarea placeholder=HTML id=h></textarea><textarea placeholder=CSS id=c></textarea><textarea placeholder=JS id=j></textarea><iframe id=i>

Suggestion for Spreadsheet Bookmarklet

Add functionality to jump cursor to the next row after pressing Enter. Right now, nothing happens, to go to new row, I have manually clicked in the next row and start editing.

Text editor could be way smaller

The text editor could instead use the <p> Paragraph tag and be way smaller
data:text/html,<p contenteditable>
is the smallest text editor

Future plans?

I find the idea of awfice really fun, but outside of the proposed code editor, I don't really know what else to add right now.

I've thought about an encrypted p2p messaging tool using WebRTC but it's be hard to correctly "polish" it because of code size, and to have it work without a server manual signalling would be needed (sending the descriptions back and forth manually) which is complicated, and is not exactly practical.

More features could be added to some of tools (like colors and brush size for drawing), but I don't know what the intended scope is for code other than less than keeping the size less than 1kb.

Any feedback would be appreciated.

Un-minified versions?

Is it possible to make a folder of annotated versions of these files? Thanks either way!

Drawing app could be shrunk

The drawing app could be shrunken from 342 Characters to 222 characters if the code was changed to this:

Data url data:text/html,<canvas id=v></canvas><script>with(v.getContext`2d`)v.onpointerdown=e=>(beginPath(),moveTo(e.x,e.y)),v.onpointermove=e=>(lineTo(e.x,e.y),stroke()),v.width=innerWidth,v.height=innerHeight,lineWidth=2</script>

Note: could be even smaller if closing script tag was removed

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.