Skip to content
This repository has been archived by the owner on Jul 10, 2022. It is now read-only.

Start with a filled notebook with tips for each new user #52

Closed
mrusme opened this issue Jan 6, 2015 · 16 comments
Closed

Start with a filled notebook with tips for each new user #52

mrusme opened this issue Jan 6, 2015 · 16 comments

Comments

@mrusme
Copy link
Member

mrusme commented Jan 6, 2015

Each new user should see at least one pre-created and pre-filled notebooks with tips on how to use Paperwork. Currently, when a new user registers, he sees nothing but an empty interface.

@mrusme mrusme modified the milestone: Paperwork 1.0 Jan 6, 2015
@Liongold
Copy link
Contributor

Liongold commented Jan 7, 2015

I can take care of this.

@Liongold Liongold self-assigned this Jan 7, 2015
@mrusme
Copy link
Member Author

mrusme commented Jan 7, 2015

👍

One thing you need to keep in mind: Localisation. If the user-language was set to French upon registration, the pre-filled notes should also be written in French of course.

@Liongold
Copy link
Contributor

I've done some text. Any comments?

Welcome to Paperwork (tag:welcome stored in notebook Welcome)
Hi there, welcome to Paperwork, the open source note-taking solution. This is your first note and we'd like to explain to you some features we hope you'll find very interesting.

Notes

Notes are the basic form of writing in Paperwork. Notes are saved inside notebooks. You already have one named 'Welcome' in which this note is stored. You can create as much notebooks and notes as you want by using the File menu.

Attachments

You can also add attachments to your notes. This allows you to embed important information and have it there when you need it. Just click its link, and you'll be sent to the file. And since Paperwork is self hosted, you have better privacy too.

Tags

Tags are one of Paperwork's powerful features. Tags allow you to search for related notes but which are not in the same notebook. Do you have an idea and want to save it for later now? Put it in a notebook (like 'dinner cooking') and tag it with cooking. Later, when you've got time you can just click on cooking from the sidebar and all cooking-related notes are there, no matter if they're for lunch, dinner or breakfast.
Search

If you want to search with a more detailed criteria, you can use Paperwork's feature. Just write your query and Paperwork will show you the results from all your notes, no matter in which notebook they are or tag they have.

Version Control

Everytime you save a note in Paperwork, a new version is created. This feature allows you to be able to see what changed throughout the life of your note in a detailed manner.

Shareable

Each note you write on Paperwork can be shared with any other user of Paperwork. Are you a company employee and would like to share those draft guidelines for that project? No worries, just sare the note with those users you want to share it with while keeping total control of your note. You can control who sees and edits the note and you can also who did what thanks to version control.

We hope that you like your experience with Paperwork. If you have any feedback or encounter any issues, just submit an issue on Github. If you want to be informed on what we're planning for Paperwork and be able to participate in the discussion, please join our mailing list here.

Thanks for choosing Paperwork,

(possible signatures: twostairs/Paperwork developers)?

@Liongold
Copy link
Contributor

Do you think something in this format (one note) could work or better have multiple notes? Personally, I prefer this 1-note format.

@mrusme
Copy link
Member Author

mrusme commented Jan 10, 2015

That sounds good, even though I'm not a native speaker/writer. Maybe we can get the text corrected by a native english speaker? As soon as it has gotten to its final form, I can provide a german translation for that.

Personally I think the "1-note format" is good. The user would have one Notebook pre-added containing this one note, right? Also he'd have one tag ("welcome") available. I think that's fine for the beginning.

The more important question is: Would it be easily possible to "link" certain keywords to Paperwork features? For example:

"You can create as much notebooks and notes as you want by using the File menu."

It would be cool, if "File menu" was a link that, when clicked, triggers a "click()" event on the actual file menu and by that opens it up. Same with "Just write your query and Paperwork will show you the results from all your notes, no matter in which notebook they are or tag they have." – the "write your query" part could be linked, so when the user clicks it the search box gets focused ("focus()"). What do you think?

//Edit: Regarding the signature, it's simply write "The Paperwork team" :-)

@Liongold
Copy link
Contributor

Thanks. It would be nice to add that feature you mentioned (the click and focus) but I think they could disrupt the actual reading of the note. Anyway, if we do this how will it be done? For example, can it be done by adding the code in the note source? If yes, I have enough knowledge of Javascript to do it.

@Liongold
Copy link
Contributor

Also, I don't know if it's even possible technically but I'll assume it is. Do you think we should check the signup language and add the note in the database directly or add the note in a form that can be then accessed in the language current of the user (even if he changes it - something like what is done for strings Lang::get)?

@mrusme
Copy link
Member Author

mrusme commented Jan 11, 2015

Basically it's possible to add code to the content of a note, although I don't think it will be executed, since the note-view is being built dynamically through AngularJS and only interprets the HTML, but (from what I know) no JavaScript code at all. However, this discussion made me add a new issue: #68 - even though the code from within a note probably wouldn't be executed, we need to check for such code.

However, back to the actual topic. One possibility would be to check for this note on page-load (for example within the paperworkConstructorController) and, if it was found, append a new script src="..." to the body, which will load some special JavaScript file, that only contains the code for this "Welcome" note. This JS file then could be something as simple as this:

jQuery(document).ready() {
  jQuery('#paperworkView').on('click', '#welcome-handler-one', function() { ... });
  jQuery('#paperworkView').on('click', '#welcome-handler-two', function() { ... });
 ...
};

Then you would only need to set these IDs within your note's source-code and it should work. These functions would only need to be triggering click(); events on various IDs within the DOM.

However, there surely are other ways to implement this. I wouldn't try to include the code into the note itself, as I doubt it's being executed.

Regarding your language question: The user needs to set his UI language when registering on Paperwork. This preference is being saved within the settings table and used be the Lang::get(). This means, the only thing you'd need to do, is hook your note-creating code right after the point where ui_language becomes available and create a new note with content you get through Lang::get().

I personally wouldn't try to make the note-content itself "dynamically translatable", as this feature isn't currently built in and probably never will - I mean, what for would we need that anyway? If the users choses language X as his UI language upon registration, he wouldn't expect any notes to change if he should reconfigure the UI language afterwards. Or let's turn this around: A user might get the impression, that Paperwork automagically translates notes, depending on the UI language being set. This might confuse a lot of people, I guess.

@Liongold
Copy link
Contributor

You're right. Will check out about the Js stuff.

@Liongold
Copy link
Contributor

I have the majority of this feature finished. However, for some reason, the ids I assigned to the links in the source are being dropped. I checked the json file that loads the note content and they're there so AngularJS or anything that touches the note before showing it is removing the ids. Can you tell me a soltuion for this? Or point me to where this is occurring in the code, please?

@mrusme
Copy link
Member Author

mrusme commented Jan 18, 2015

@Liongold so, when you open the note and check your browsers developer inspector tool, you cannot find the IDs you've set for the link, is that correct? I need to test this myself. Would you mind to create a new branch (something like "52-prefilled-notebook") and commit your code into that, so I can check it out myself and test?

@Liongold
Copy link
Contributor

Yes you're right. I'll do as soon as possible.

On Sunday, January 18, 2015, Marius notifications@github.com wrote:

@Liongold https://github.com/Liongold so, when you open the note and
check your browsers developer inspector tool, you cannot find the IDs
you've set for the link, is that correct? I need to test this myself. Would
you mind to create a new branch (something like "52-prefilled-notebook")
and commit your code into that, so I can check it out myself and test?


Reply to this email directly or view it on GitHub
#52 (comment).

Sincerely,
Jean Spiteri.

@Liongold
Copy link
Contributor

I've added a branch for the work on the feature. Thanks for offering to help. It's on branch issue-52-feature.

@Liongold
Copy link
Contributor

I've found the problem why ids are being removed. The problem is that the note content is passing through angular-sanitise which is removing all attributes it does not consider as correct. id is not included in these and thereforei s getting blocked and removed. @devilx @joshlemer any others: what do you suggest to fix or workaround this? Thanks for all the help.

@mrusme
Copy link
Member Author

mrusme commented Jan 25, 2015

It appears as ngSanitize doesn't allow (yet) to extend its whitelist: angular/angular.js#5900

Hm, I'm not sure. Liongold: Could you maybe try setting not on id="" but maybe data-id="" instead and (even though it'll be slower) match that one? Or find any other attribute that's not being removed by ngSanitize.

@Liongold
Copy link
Contributor

I'm happy to announce that this issue has just been fixed and a commit has been pushed to master. However, the advanced features mentioned in the issue's discussion could not be completed so they are not available. However, the things included should help a lot. If anyone encounters any issues, please re-open this issue or open a new one.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants