Commit Graph

434 Commits (master)

Author SHA1 Message Date
VicDeo 39a493dd7d Merge pull request #305 from owncloud/local-conversion-test
Test local conversion when saving the settings
10 years ago
Victor Dubiniuk e07aa6e0a7 Test local config when saving the settings 10 years ago
Vincent Petry 423cb53e14 Use context instead of static access 10 years ago
Jan-Christoph Borchardt 1a58892960 fix save text overlaying close x for shared documents 10 years ago
Jan-Christoph Borchardt 5318b7dc61 fix wording of empty content message 10 years ago
Jan-Christoph Borchardt 0fffa7d826 add use icons for close and share buttons, fix position 10 years ago
Vincent Petry 0c0e52ead2 Removed call to FileActions.display()
Let the file lists automatically update themselves from the previous
calls to FileActions.register().
10 years ago
Victor Dubiniuk 841605efaa Fix rename of a new doc 10 years ago
Vincent Petry 41ff4b55ba Do not change the controls bar
Rely on the default behavior / CSS instead.
10 years ago
Victor Dubiniuk f8b638bee5 More OCA.Files.fileActions 10 years ago
Victor Dubiniuk 5a568393a5 Fix invisible document content when viewing 10 years ago
VicDeo e37816348b Merge pull request #277 from owncloud/new-fileactions
Check for a new fileactions availability
10 years ago
Victor Dubiniuk a364ac7af4 Chack for a new fileactions availability 10 years ago
Victor Dubiniuk 534c288f0a Open Editor in the same tab 10 years ago
Victor Dubiniuk fd4f15d9f2 Fix viewer controls position 10 years ago
Victor Dubiniuk cdb9a92c21 Register actions via brand new API 10 years ago
Volkan Gezer d3fa6ac77a fixes some translation issues and enter key 10 years ago
Jan-Christoph Borchardt 3bd1237a37 remove noise texture from interface (not necessary, and blurry on high-res) 10 years ago
Vincent Petry 9d12c920b5 Set viewer mode to filelist when viewing ODF file
Now calling FileList.setViewerMode() to properly toggle viewer mode.
This will hide the sidebar and actions automatically.
10 years ago
Victor Dubiniuk 7d00efa94b Show actions when the list is ready 10 years ago
Victor Dubiniuk f1c4721ea0 Fix dropdown and rename 10 years ago
Victor Dubiniuk d167089c16 Move toolbar to widget. Show it early. Ref #224 10 years ago
Victor Dubiniuk 04b2ebc780 Move overlay into widget. Fix some quirks 10 years ago
Victor Dubiniuk 444903e472 Refactor grid to widget 10 years ago
Victor Dubiniuk 05fafb1cf9 First approach 10 years ago
Morris Jobke 2d63598d34 Improve documents layout & IE fix
* remove grey background color
 * add grey border
 * remove border-radius
 * add IE8 fixes
 * IE fixes for missing navigator.language
10 years ago
Lukas Reschke 530d5dbf13 Make preview bigger 10 years ago
Victor Dubiniuk f45c360c53 Fx preview url 10 years ago
Victor Dubiniuk d8cee62f76 Reflect recent master changes 10 years ago
Victor Dubiniuk a54feb9c58 Add CSRF check 10 years ago
Victor Dubiniuk 7fcf703041 Cleanup some variables 10 years ago
Victor Dubiniuk e20b304a17 Create new file in root if default dir doesn't exist. Ref #88 10 years ago
Victor Dubiniuk 0d69eaf98e Do not show share button if OC.Share is undefined 10 years ago
Victor Dubiniuk 1bbcd7f6af Add config page and settings 10 years ago
Victor Dubiniuk 1aa44cd241 Previews. Closes #29. Ref #187 10 years ago
Victor Dubiniuk 068390bf83 Cleaner way to get current memberId 10 years ago
Victor Dubiniuk 8153b08362 First user is me 10 years ago
Victor Dubiniuk ed7e53f971 Disconnect when tab is closed. Closes #18 10 years ago
Victor Dubiniuk dec819c893 CSS instead of images. Ref #225 10 years ago
Victor Dubiniuk e75fe08a52 Branding. Closes #225 10 years ago
Victor Dubiniuk 6fb03c35c7 Autoedit a new document. Ref #104 10 years ago
VicDeo 593c760686 Merge pull request #222 from owncloud/icon-class-remove
remove unneeded extra icon class
10 years ago
Victor Dubiniuk f26e107504 No more barrier to enter for guests. Closes #200 10 years ago
Jan-Christoph Borchardt 0e7b0b33fb remove unneeded extra icon class 10 years ago
Victor Dubiniuk 5cfea26265 Move ServerFactory downstream. Closes #221 10 years ago
Victor Dubiniuk 40ca1d58ff Fix public page issue 10 years ago
Aditya Bhatt b192e4828d Sync to WebODF 8d8fc0216874b9dd9e3e3eef68dd2474a11f02f3
Make virtual selections have draggable handles on touch
screens.
10 years ago
Victor Dubiniuk 985d1f097b Upload progress ion. Closes #120 10 years ago
Aditya Bhatt 205f9198f9 Sync to WebODF 8d8fc0216874b9dd9e3e3eef68dd2474a11f02f3.
* Collaborative virtual selections for iOS Safari.
10 years ago
Victor Dubiniuk 75ec0af00c Add share token 10 years ago
VicDeo a0746968a1 Merge pull request #216 from owncloud/kill-routes.json
Replace OC.Router.generate() with OC.generateUrl()
10 years ago
Aditya Bhatt 90b2bdd42c Sync to WebODF dbdc4e91827d460dbf71785a16b7a472bef548a1.
* Fixes a bug with blocky rendering of multi-paragrap selections on iOS.
* Gets rid of the second blue native caret alongside the user's caret.
10 years ago
Victor Dubiniuk 3470302b01 Fix header regression 10 years ago
Aditya Bhatt 3cd491a5ef Sync with WebODF e50bc588ff3e380178ffabecfe2fbca92bef6aed.
* Keyboard support in iOS and other touchscreens
* Pinch-zoom support on touch devices
* SVG selections that look like those in LibreOffice
* Major speed improvements with all editing operations and cursor movements
* IME support on desktop browsers
* Word-by-word navigation with Ctrl+Left/Right
* Fixes for IE11
* Ability to add/edit/remove Hyperlinks.
10 years ago
Thomas Müller c9f5e23c92 Replace OC.Router.generate() with OC.generateUrl() 10 years ago
Victor Dubiniuk d1aee9fe68 Remove dead code 10 years ago
Victor Dubiniuk 77ea7ed75e Change page title format Ref #202 10 years ago
Victor Dubiniuk e3f6e4d48a Add title when shared by link. Fixes #202 10 years ago
Victor Dubiniuk d042036b1f Remove webroot from css. Fixes #197 10 years ago
Victor Dubiniuk df83dc5e12 Fix upload 10 years ago
Victor Dubiniuk 4ab86bab3f Support extra mimes in viewer 10 years ago
Victor Dubiniuk 16f5420fef Fix viewer for subdirectories 10 years ago
Victor Dubiniuk 91b0ce6f8d Subscribe to lostConnection event 10 years ago
Victor Dubiniuk d106de7102 Escalate fatal editor errors to user and go back to grid 10 years ago
Victor Dubiniuk a46677bbe9 Initial save indicator. Ref #114 10 years ago
Victor Dubiniuk 3669d90862 Filters for files app 10 years ago
Victor Dubiniuk 988ae02b8e Move rename controller to document 11 years ago
Aditya Bhatt 5ff78040fb Sync with webodf fc3a4e615597be18da1e23e03302ef472b9a95e5
* Improve text insertion and paragraph splitting OT -
therefore no more conflict and sync failure when multiple
users insert text or split the paragraph at the same
position.
* Increase performance of virtual selections
11 years ago
Victor Dubiniuk 1e1e1eea78 Show loader message. Closes #117 11 years ago
Victor Dubiniuk 3a8bea040e Ignore avatar faults. ref #140 11 years ago
VicDeo 10938317b5 Merge pull request #159 from owncloud/renametitle
Make it possible to rename documents by clicking on title
11 years ago
Victor Dubiniuk 38688514ee Remove outdated viewer stylesheet. Fixes #156 11 years ago
Vincent Petry fd4f4bf99a Now using inline input field for rename action
Also added validation of file name.
11 years ago
Vincent Petry d56ef4f0b6 Make it possible to rename documents by clicking on title 11 years ago
Victor Dubiniuk 19a1b51a0e Open readonly shares with viewer. Ref #62 11 years ago
Friedrich W. H. Kossebau e3adf6bd19 Sync with webodf 82510ae020f8ee8a1f7b65a27b6af107b6023e90
* exposes some state-change/error events in the Editor API
* catches more possible errors and handles them
  (e.g. staying cool on temporary disconnection to server, but warning about it)
* improves selection by mouse
* fixes selected paragraph style not being set to all selected paragraphs
* fixes leaking of some helper attributes into saved ODT files
11 years ago
Victor Dubiniuk 405d7e4360 Add action icon. Ref #134 11 years ago
Victor Dubiniuk a662ebf5ab Add Edit action in files. Closes #134 11 years ago
Victor Dubiniuk 9ef49d48f8 Center No documents message. Fixes #141 11 years ago
Victor Dubiniuk 190e161b44 Fixing avatar 11 years ago
Friedrich W. H. Kossebau c0da073794 Sync with webodf 6c0affd94e1aa9d706ea8aadd3509db04bc17235
* write correct meta-data into every document on save
* remove need for regular polling of data about sessionmember
* fix for spaces entered after a tab
* small performance improvements
11 years ago
Victor Dubiniuk 8a337ebfad Invert condition 11 years ago
Friedrich W. H. Kossebau 15b7bdfd9d Sync with webodf 1875ef27bc220bc49dc6092e7de9b5e184c2e855
* adds support for direct text styling:
  + bold
  + italic
  + underline
  + strikethrough,
  + font
  + fontsize
* fixes broken OT on selections vs. other editing operations
* performance improvements with big documents
11 years ago
Victor Dubiniuk d968b2afe5 UI for connection is lost 11 years ago
Victor Dubiniuk b597a972c5 Improve translator function. Ref #14 11 years ago
Victor Dubiniuk 680ec43ee7 Initial hackish translator function. Ref #14 11 years ago
Victor Dubiniuk b7e79595ef Sort and deduplicate results, ref #14 11 years ago
Victor Dubiniuk c2dbf80d0f Adding simple locale parser and parsing result. Ref #14 11 years ago
Victor Dubiniuk 8dec0a3119 Fix first row items misposition 11 years ago
Victor Dubiniuk eae804588b Show loader for documents list. Closes #103 11 years ago
Victor Dubiniuk dc9b9b557f Viwer for files, editor for documents. Closes #108 11 years ago
Friedrich W. H. Kossebau 47c0cbc5e8 Sync with webodf 379ba3bfff4a7d736109f48c8ab72ea649a77918
* enables initial support for integrating into OC-Docs translation system
* fixes broken paragraphstyle dialog on 2nd and later editor start with the same OC-App page-life-cycle
* showing selections of other users, not just the cursor
* lots of small fixes with cursor/selection
11 years ago
Victor Dubiniuk 21cbd7a6fb Remove second webodf instance 11 years ago
Victor Dubiniuk 13a4007eb1 Cleanup viewer 11 years ago
Victor Dubiniuk d9c4b85a69 Fix viewer layout 11 years ago
Victor Dubiniuk 3bb39d50d6 Separate title bar. Closes #91 11 years ago
Victor Dubiniuk 9b0afdd44a Disconnect user on leaving a session. Closes #15 11 years ago
Victor Dubiniuk 3a8572da37 Defer documents reload 11 years ago
Victor Dubiniuk 58ce9ba920 Speed up animation. Ref #81 11 years ago
Victor Dubiniuk 469624c551 Always preload documents grid. Fixes #78 11 years ago
Victor Dubiniuk 29da4e5bff Load minified scripts on production 11 years ago
Victor Dubiniuk efcc0ed3f9 Integrate bootstrap, wait for js components to load 11 years ago
Victor Dubiniuk adf5aafe70 Integrate odf viewer 11 years ago
Victor Dubiniuk 6afe897884 Fix switching to unstable mode 11 years ago
Victor Dubiniuk ad8c163436 Default documents dir for upload. Ref #49 11 years ago
Victor Dubiniuk d8037312c0 Align avatars correctly 11 years ago
Victor Dubiniuk e47267adb1 Disable show member caret on click 11 years ago
Victor Dubiniuk 886273dd10 Hacking WebODF to fix #51 11 years ago
Victor Dubiniuk e33d481e78 Proper public link is sharing dropdown 11 years ago
Friedrich W. H. Kossebau 93c774d81e Update to latest WebODF pullbox branch
Noticable changes:
* no more freezing on closing a document where edited paragraphs had been removed
11 years ago
Victor Dubiniuk e6794e015c Disallow sharing for guests 11 years ago
Victor Dubiniuk d69c02e2bb Stay/Leave popup. Closes #39 11 years ago
Victor Dubiniuk fdf7a602d4 Allow gues user to choose a name 11 years ago
Victor Dubiniuk e3e8ef5b58 Refactoring permissions. Allow guests to join session 11 years ago
Victor Dubiniuk fd60eddf2c Hide user avatar in document by default. Ref #30, #42 11 years ago
Friedrich W. H. Kossebau a7ad5632cb Update to latest WebODF pullbox branch
Noticable changes:
* focus returns to canvas after usage of zoom tool or paragraph style dialog
* Default paragraph style is listed with normal paragraph styles
* Cursor is not hidden, but shown non-blinking if tool is used
11 years ago
Victor Dubiniuk 05df848a52 Access via public link for logged in users. Ref #45 11 years ago
Victor Dubiniuk 670016580f Fix path to otpoll for external requests 11 years ago
Victor Dubiniuk 20da92fc4e Initial work on public links 11 years ago
Victor Dubiniuk 0b7c7198c1 Correct fileId 11 years ago
Victor Dubiniuk 8aee613fca Sharing 11 years ago
Victor Dubiniuk 78ba2cabe1 Hide share button if there are no share permissions 11 years ago
Victor Dubiniuk 31c0781ca9 Clear input on adding item to list 11 years ago
Victor Dubiniuk 8b2406d47d Refresh documents list on closing the editor 11 years ago
Victor Dubiniuk c6a207ec51 No need in explicit start session. It is started by the first join. Partially Ref #4 11 years ago
Victor Dubiniuk 61afb431da Empty folder message is back 11 years ago
Victor Dubiniuk 478611fc0d Cleanup frontend code. Ref #33 11 years ago
Victor Dubiniuk 74abca04c8 Spaces-> Tabs 11 years ago
Victor Dubiniuk 69fdb475d9 Rejoin session on F5. Ref #35 11 years ago
Victor Dubiniuk eb52fcc447 Remove test file 11 years ago
Friedrich W. H. Kossebau ff5c0ec6ff Update to latest pullbox branch
Noticable changes:
* focus returns to canvas after paragraph style selection
11 years ago
Friedrich W. H. Kossebau 70ad7f824b Move webodf.js to proper location 11 years ago
Victor Dubiniuk 89fdf22265 Move WebODF js/css code to 3rdparty 11 years ago
Victor Dubiniuk 86268cdccd Move WebODF js code to 3rdparty 11 years ago
Victor Dubiniuk 76390ce7dc Refresh grid when upload is complete 11 years ago
Victor Dubiniuk f57336dfe6 Document title improvement. Closes #37 11 years ago
Victor Dubiniuk d64f046e06 Create new document. Ref #34 11 years ago
Victor Dubiniuk 6c05c370a6 Use svg by default. Closes #31 11 years ago
Victor Dubiniuk a6ea161534 Show document title in the panel. Closes #17 11 years ago
Friedrich W. H. Kossebau bc2c599663 Update to current WebODF pullbox branch
Noticable changes:
* direct formatting key shortcuts properly disabled
11 years ago
Victor Dubiniuk 9ba6064af1 Add current document to title in editor mode. Ref #17 11 years ago
Victor Dubiniuk c14ba94c73 Hanlde multiple clicks on close button. Closes #25 11 years ago
Victor Dubiniuk 51b0c06365 Use notification instead of alert 11 years ago
Victor Dubiniuk 0a97a2eefc Hide overlay on error 11 years ago
Friedrich W. H. Kossebau c4bf4b6a78 Add file missing from previous commit: paragraphAlignement.js
Fixup for dd4d49d408
11 years ago
Friedrich W. H. Kossebau dd4d49d408 Update to current WebODF pullbox branch. Closes #13 11 years ago
Victor Dubiniuk bce4ff41b9 Use the whole viewport. Ref #19 11 years ago
Victor Dubiniuk 53d2bf2994 Use left bar width for lower overlay layer 11 years ago
Victor Dubiniuk d9d1f7af74 Overlay improvements. Ref #8 11 years ago
Victor Dubiniuk 9e42c3f6e9 Overlay on editor startup. Ref #8 11 years ago
Victor Dubiniuk 2c4a8c643e Ignore multiple clicks on editor startup. Closes #10 11 years ago
Victor Dubiniuk b48d244cf1 Move fonts.css to css rewrite support 11 years ago
Tobias Hintze 9a7694c795 add some basic and free fonts.
(fonts.css uses absolute filepaths still)
11 years ago
Friedrich W. H. Kossebau e6d0f7c105 Use correct paths
fixup for 2a0f345c5c
11 years ago
Friedrich W. H. Kossebau 2a0f345c5c Switch/fix order of webodf_bootstrap/dojo-amalgamation execution
(and remove no longer needed fixes)
11 years ago
Friedrich W. H. Kossebau 2dfa83a5e4 fix wrong memberId -> memberid in opspecs created in EditorSession 11 years ago
Friedrich W. H. Kossebau 63e4207fa0 Small improvements to timeouting in pullbox/OperationRouter 11 years ago
Friedrich W. H. Kossebau 5fe87cbfc1 Fix FontPicker (forgot to update copy) 11 years ago
Friedrich W. H. Kossebau 92576cd89c Set oc_requesttoken as token to the webodf server proxy object (and have it used in every call) 11 years ago
Friedrich W. H. Kossebau 0288fd685e widgets.js -> Tools.js 11 years ago
Jörn Friedrich Dreyer fe76963f22 add requesttoken to save xhr in Server.js, fetch correct headers in controller 11 years ago
Friedrich W. H. Kossebau 64e8ea689b support callbacks on sync request calls in PullBox OperationRouter (and remove 2sec close wait hack)
too bad this loses the nice singleTimeCallbackOnCompleteServerOpSpecsPlay var ;)
11 years ago
Friedrich W. H. Kossebau 880101b221 Also ignore MoveCursor ops as non-document-modifying ops 11 years ago
Friedrich W. H. Kossebau 13df7fe90b Use new keys in header of session save POST request 11 years ago
Friedrich W. H. Kossebau 783250a638 Fix dropped support for documentsMain.useUnstable flag 11 years ago
Friedrich W. H. Kossebau 5c68a09fee Remove unused files 11 years ago
Friedrich W. H. Kossebau fb536e7149 Remove meanwhile no longer useful flag documentsMain.initialized 11 years ago
Friedrich W. H. Kossebau 8527506d90 First take on proper destruction of WebODF Editor instance 11 years ago
Friedrich W. H. Kossebau e74535bdf6 Update to current webodf: saves on closing the session/document (needs server support still)
saves only is the user has edited something
11 years ago
Jörn Friedrich Dreyer e62bae00b4 move documents.php functionality to controller, add route 11 years ago
Jörn Friedrich Dreyer d62e723304 refactor document.js, show overlay icon only when a member active, load session and member info with documents.php 11 years ago
Jörn Friedrich Dreyer 7bc25ec0ce rename office -> documents 11 years ago
Jörn Friedrich Dreyer 3e59604485 move back to tiles (200x200 as in pictures) 11 years ago
Jörn Friedrich Dreyer de24ab3b8d ajaxify document & session loading, show icon for documents with active session 11 years ago
Jörn Friedrich Dreyer e03cfb068c live -> on 11 years ago
Jörn Friedrich Dreyer d8aa4db390 whitespace and indenting 11 years ago
Victor Dubiniuk 84a0bb00b5 First portion of UI changes according to Jans vision 11 years ago
Victor Dubiniuk 968a418ec9 Use path for creating sessions, store fileid to db 11 years ago
Victor Dubiniuk 9d7983d13c Some cleanup 11 years ago
Victor Dubiniuk 922cdec6b8 Merge session list with document list 11 years ago
Victor Dubiniuk 0d6d3a5d22 App settings 11 years ago
Victor Dubiniuk 70a20ebc93 Switch to fileid 11 years ago
Tobias Hintze da12ca4b55 use smarter shutdown API 11 years ago
Tobias Hintze 417540c1d3 webodf update: smarted shutdown api for Editor and friends 11 years ago
Tobias Hintze 8773748b8d trigger shutdown for webodf on close-button 11 years ago
Victor Dubiniuk 98ad57eb1a Fix router error 11 years ago
Victor Dubiniuk ae8f290fb2 Merge 11 years ago
Tobias Hintze 6a4bbca27f whitespace 11 years ago
Tobias Hintze 20a5ed92b4 missed a rename from webodf 11 years ago
Victor Dubiniuk 58eea6d0ca Autocomplete improvement 11 years ago
Tobias Hintze 6561341e05 update from webodf 11 years ago
Victor Dubiniuk c1c01c364c Invitations. Ugly but works 11 years ago
Victor Dubiniuk c3fae98bfe New sessions list 11 years ago
Victor Dubiniuk 60d53c6d7c Revert occasional autoreplacement 11 years ago
Victor Dubiniuk 267901aa0b More on joining session 11 years ago
Victor Dubiniuk 32016d8381 Introducing memberId 11 years ago
Tobias Hintze a6977c2316 reflect userid->memberid changes in webodf 11 years ago
Tobias Hintze 2ab2ecea11 bogus way of passing a memberId (pre-joined session) to webodf 11 years ago
Tobias Hintze 3deb473927 webodf update 11 years ago
Victor Dubiniuk ab9ceaf3f4 Code deduplication 11 years ago
Victor Dubiniuk db2b876132 Frontend cleanup 11 years ago
Victor Dubiniuk b4c8bc13c2 Db schema changed. Reinstall needed :) 11 years ago
Victor Dubiniuk 3819ea07fc Fix for empty doclist 11 years ago
Victor Dubiniuk 9658890600 Joining session works 11 years ago
Victor Dubiniuk 394dd6e0ca Clickable session list 11 years ago
Victor Dubiniuk 5b165331df Copy genesis to storage 11 years ago
Victor Dubiniuk 013bf8eb6e Initial session list 11 years ago
Tobias Hintze 9400fc8218 pass session id to webodf 11 years ago
Tobias Hintze 38fc574527 more webodf sync 11 years ago
Victor Dubiniuk 0902ee57b3 Start session first 11 years ago
Tobias Hintze 1f9ef09bc0 add missing files from last webodf update 11 years ago
Victor Dubiniuk cf76242ff0 Use relative URLs in bootstrap 11 years ago
Tobias Hintze 8c71d3a436 update webodf 11 years ago
Tobias Hintze fc7c1e02a5 make webodf visible 11 years ago
Tobias Hintze a3348ae6f6 quasi-update (manual) webodf 11 years ago
Tobias Hintze a629eda1b2 more bogus handling of pullbox API 11 years ago
Tobias Hintze 33d8b1bd8f update webodf 11 years ago
Tobias Hintze 7e8715a785 update webodf 11 years ago
Tobias Hintze f81e9a0607 wip: start collab instead of non-collab editor 11 years ago
Tobias Hintze 883608bcc5 update from webodf th/ocpull branch 11 years ago
Tobias Hintze 02a4f5a383 remove duplicate boot_editor.js; start shutdown impl 11 years ago
Tobias Hintze 9b0044c968 fix broken claro styling; some cosmetics 11 years ago
Tobias Hintze 0307d4bb0c integrate webodf toolbar with oc toolbar 11 years ago
Tobias Hintze d13a729c67 cleanup... 11 years ago
Tobias Hintze b197d63e61 add more dojo resources, fix locations 11 years ago
Tobias Hintze 2130c872a8 tiny webodf updates 11 years ago
Tobias Hintze 5448d8d9ec add recent webodf-debug.js; use it - and cleanup 11 years ago
Tobias Hintze 84f3b6ec78 move dojoConfig to amalgamation 11 years ago
Tobias Hintze 929d1a9d29 add missing webodf files 11 years ago
Tobias Hintze 578e08c9b4 fighting pathes for amd/dojo loading 11 years ago
Tobias Hintze ec37d6be71 add onStartup handler for dojo init 11 years ago
Tobias Hintze 6296326701 moving AMD-require code around 11 years ago
Tobias Hintze 37f1c94d8f initial WIP - amd clash-issues webodf/dojo/owncloud 11 years ago
Victor Dubiniuk c3bd22366c Wire up webodf 11 years ago