Page MenuHomePhabricator

Add a spreadsheet interface for modifying multiple pages to the Page Forms extension
Closed, ResolvedPublic

Description

The Page Forms extension (https://www.mediawiki.org/wiki/Extension:Page_Forms) allows for editing only one page at a time. Normally this is fine, but in some cases an administrator or "power user" may want to change many pages at the same time - for instance, if there has been a change to the data structure, like a parameter/field getting added to a template.

What is needed is a new "special page", defined by Page Forms, that displays a spreadsheet interface for editing many pages, where each row represents a single template call and each column represents a template parameter, i.e. form field.

There may be more than one call to a template on the same page, so this interface would need to handle that case as well.

This interface should most likely be implemented using the jsGrid library, which thankfully is already in use by Page Forms for other purposes:

http://js-grid.com

As I see it, the steps of such a project may look something like:

  • Make a basic "minimum viable product" special page that lets the user edit all the calls to any specific template, using a spreadsheet interface, with a text entry for each value.
  • Add support for pagination, for large data sets.
  • Add support for adding new pages via the same interface.
  • Use other Page Forms code to get the ideal input type (text, dropdown, checkbox etc.) for each template parameter, and display that in the spreadsheet.
  • Add support for additional input types that Page Forms' jsGrid implementation still does not handle - the most important being two autocompletion-based inputs, "combobox" and "tokens". This part should be a fun challenge for anyone who enjoys working with JavaScript and jQuery.
  • Optionally provide support for renaming pages from within the interface.

Internship project details

Details

Reference
bz61989

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

@IACJ thank you for your interest in working on this project for GSOC :) It's great that you are already familiar with Javascript/ PHP. You could get an overview of MediaWiki development here: https://www.mediawiki.org/wiki/How_to_become_a_MediaWiki_hacker and consider submitting a patch for one or two bugs to gain familiarity with our codebase: https://www.mediawiki.org/wiki/Annoying_little_bugs. Feel free to discuss any bits and pieces of this project with Yaron!

@Yaron_Koren as the microtasks listed in the task description seems to be no longer valid, do you have suggestions for small tasks/related bugs that we could add?

They might still be valid - I don't know. Just checking whether they're valid is itself a sort of microtask.

Okay, I just added some newly-created microtasks - these ones are definitely valid. :)

@Yaron_Koren thank you very much! :) much appreciate it!

Hi everyone!
I found this project quite upto my calibre,currently i am going through page form extensions code .
I hope that i would be contributing to this project in coming days.
Looking forward to contribute to this through GSOC program.
I would really appreciate if i can have your email address
@Yaron_Koren

@The-Gradient - great! You (or anyone else) can contact me at yaron57@gmail.com.

Greetings!

I am Fonji Fonkeng Rocard, a Computer Engineering student from the University of Buea, Cameroon.
I am passionate about contributing codes to open source organizations, learning new technologies and volunteering.
I find this project quite interesting and will like to work on it in this upcoming gsoc session.

Hi

I would really like to work on this project for gsoc if possible.

To any potential students reading this: I've already been contacted by four interested students, and I plan to choose from among that group fairly soon; so if you haven't already contacted me, please find another project to work on for GSoC. Sorry, and good luck.

Hi Yaron I was in contact and in touch with Nischay Nahata and rageross regarding this project. I'm sorry it took me time to find you. I had emailed Srishti about it. I have worked with AG Grid and JS Grid before during my internship I do hope you could consider me as well. Thanks Yaron.

Okay, five students - you did talk to Nischay before the "deadline".

This comment was removed by Harjotsingh.

Is the project is assigned now ?

Not yet, but I hope to do that soon.

Sorry if I'm confused but Is it open for proposals or will you assign it ?

I guess when this is done I can finally manage all semantic properties and their types in one page. Looking forward to the outcome.

@Reasno - I guess you're storing property information via templates? Anyway, bad news about this project - it's not happening this summer. The student we had chosen to do it got poached by another organization (I didn't know they could do that - it's due to new rules that were implemented this summer), so we were left without a student. Hopefully this feature will still get implemented, though, via another GSoC or some other way.

@Reasno - That unfortunate poached student might be me. Since the project is not in GSOC, I shall be trying to complete it along with my other GSOC project. Thankyou @Yaron_Koren and others for the support and help during this period.
I would definitely love contributing to Wikimedia, but unfortunately I would have to first give time with my GSOC project but I will definitely try to do this as well.

@Reasno - I guess you're storing property information via templates? Anyway, bad news about this project - it's not happening this summer. The student we had chosen to do it got poached by another organization (I didn't know they could do that - it's due to new rules that were implemented this summer), so we were left without a student. Hopefully this feature will still get implemented, though, via another GSoC or some other way.

Yes, I am managing properties (along with many other things) with templates. As a wiki-farm maintainer I can vouch for the necessity of this feature.

Would there be any interest in mentoring this project for Outreachy Round 15? Application period opens in two days. See a few other ideas for projects that we are promoting for the upcoming round https://www.mediawiki.org/wiki/Outreachy/Round_15

I would like to take this project up for GSOC 2018.
Are micro tasks T29702 and T72704 micro-tasks still valid so that I can get started with them...
:/ PEACE :/

@Himanshuc3 - that was fast! I don't know if those tasks are still valid. You could try them out, which is a sort of micro-task in itself. Or you could wait - I plan to add more micro-tasks here, regardless of these two.

@Yaron_Koren I see that.. Meanwhile I will also try to do other issues in PageForms to get the hang of it.
Have a great day. PEACE.

Hi! I would really like to work on this project for GSoC 2018.

Thanks @Yaron_Koren for the opportunity. Glad to be helping out and being a part of this wonderful community.
Anybody doing this project please do not hesitate to ping me for any details/help incase Yaron might be busy.
Cheers to a great GSOC-2018.

Hi,
I would like to work for this project for GSoC 2018.
Where do I get started? Any micro-tasks I could attend to?

@ssaluja16 - how about T29702 ? Even if it turns out to be no longer valid, just figuring that out is in itself a sort of micro-task.

Hey @Yaron_Koren , thank you for the reply.
Yes, I will be taking up the task, though I am still trying to figure out the error since the title and the comments are contradicting each other.

Hi, I want to work on this project under the umbrella of GSoC 2018. So for starters, please assign me a task.

@priyanshu_varshney - thank you for your interest. I just added another micro-task, T188414, that hopefully you can work on. I don't know how hard it is; if it ends up taking you more than a few hours, please just stop and let me know what your progress has been.

@Yaron_Koren - thank you for your reply, Sir. I read the task and began to think about it. I will keep updating you.

This message is for students interested in working on this project for Google-Summer-of-Code (2018)

  • Student application deadline is March 27 16:00 UTC.
  • If you have questions about eligibility, please read the GSoC rules thoroughly here https://summerofcode.withgoogle.com/rules/. Wikimedia will not be responsible for verifying your eligibility and also not be able to make any decisions on this. For any clarifying questions, please email gsoc-support@google.com
  • Ensure that by now you have already discussed your implementation approach with your mentors, completed a few bugs/microtasks and made a plan to move forward with the proposal
  • I encourage you to start creating your proposals on Phabricator now to receive timely feedback on them from mentors. Do not wait until the last minute. Give your mentors at least a week's time to review your proposal, so that you could then incorporate any suggestions for changes. Learn how to submit a proposal in our participant's guide: https://www.mediawiki.org/wiki/Google_Summer_of_Code/Participants (Step 9)
  • Proposals that contain links to successfully merged patches before the application period and submitted on both Phabricator and GSoC portal will only be considered for the review process. So, between now and the application deadline, you could consider working on this task.
  • If you would like to chat with me more about the process or have questions, come and talk to me in the Zulip chat: https://wikimedia.zulipchat.com/
Yaron_Koren added a subscriber: Nischayn22.

Moved Nischay over from the Cargo project to this one.

Change 433565 had a related patch set uploaded (by Yashdeep97; owner: Yashdeep97):
[mediawiki/extensions/PageForms@master] Add special pages to edit template calls using a spreadsheet interface

https://gerrit.wikimedia.org/r/433565

ping @Yaron_Koren @Nischayn22 @yashdeep97 Is there anything remaining in this task from GSoC'18? If not, then please consider marking it as resolved! If yes, and would need another GSoC or volunteer help then consider creating a new task with the leftover items! Same goes for T189743

yashdeep97 closed this task as Resolved.EditedSep 6 2018, 5:21 AM
yashdeep97 claimed this task.

The complete list of commits for this task can be found at: Final Report

Tasks completed: