Giter VIP home page Giter VIP logo

project_browser's Introduction

NOTICE!! The Project Browser module has been merged into Backdrop core in version 1.4.0! No further development will happen on this contrib port. More information: backdrop/backdrop-issues#1399

Project Browser

Installation

Nothing to do. Merged into Backdrop core as installer.module since 1.4.0.

License

This project is GPL v2 software. See the LICENSE.txt file in this directory for complete text.

Current Maintainers

Ported to Backdrop by @docwilmot

Also involved with project : @Graham-72 , @Drupaldise

See backdrop/backdrop-issues#870

Credits

project_browser's People

Contributors

docwilmot avatar graham-72 avatar klonos avatar quicksketch avatar wilderuncat avatar

Stargazers

 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

project_browser's Issues

Project Browser sort by most installed doesn't match install count display

project_browser-install_count_sort

When sorting by Most Installed, the number of installations should be descending, but jumps around. The attached pic shows (in order) 35, 40, 24, 13, 12, 10, then 22. It's generally downwards, but seems clear that the two (sort button vs display element) are pulling from different fields. Perhaps one is a download count and the other is an active use count?

If this is the correct behavior, then some text explaining the difference needs to be added or one of the elements needs to be relabeled.

Project Browser fails to install new modules when it has no write access, shouldn't even try.

A user can queue up several projects, then click install to setup the install batch, and then finally click Install to run the batch install. However, if the webserver doesn't have write access to the modules directory the process fails with "Failed to install n modules."

  1. It would be nice if PB would explain WHY it failed.
  2. It would be nice if PB would do some pre-flight checks to ensure the most common reasons won't prevent the batch from completing, including adequate write access and available disk space.

Getting information from Github on Projects

@docwilmot - it seems that project_browser would be able to get a detailed list as json data of all the contributed projects from url https://api.github.com/users/backdrop-contrib/repos

From this could be extracted those with releases, and then for each individual project the details are available from, for example, https://api.github.com/repos/backdrop-contrib/ckeditor/releases , and this contains the url for downloading the package.

This being so, there should be no need for project_browser_server.

I have written the above partly as a record for myself, as I proceed now with adapting project_browser to do this.

@quicksketch - I see a need for a standard file name for an image file for each contributed module, e.g. projectimage.jpg in the main directory for the project. Having an image in the project listing may not be essential but does make it more attractive. Having a standard file name would make it easy for project_browser to reference it.

'No releases data found' warning.

Do we know why for some modules we get a warning like this one for Simplenews?
project browser - www revivalwoodbridge org uk 2015-06-03 15-05-08

For most projects it seems that project_browser is working well.

Project Browser can sort by author, but all authors are Backdrop Contrib.

Project Browser will happily sort by author, but all of the authors are "Backdrop Contrib," apparently pulling the project group name as the module author. This, of course, makes sorting by author quite pointless.

The authors are not shown on the listing view, but are shown in the detail overlay. (see attached image.)

Either the actual authors need to be properly sourced or the sort option and displayed field should be removed.

project_browser-author-field

Tasks list for release

Recommended remaining tasks so we can split up:

  • Ensure paging works. (Will require more projects in the json feed.)
  • Ensure browser sorting works
  • Fix categories filters Disabled this till Backdrop actually has categories
  • Code cleanup, including removing hook_autoload and hook_help
  • Security review - ensure user input escaped throughout
  • #13: Add layout tab to browser and ensure layouts can be installed
  • #15: Add a default image icon (separate one for each project type)
  • Theming review
  • #11: Add a popup dialogue to view full details about a project and remove/trim browser description
  • #17: Add check for PHP Zip extension and disable install through project_browser if not?

Later release:

  • Develop a ratings system
  • Develop a system for comments
  • ...

Any else? Comments

Edit: tagging names: @Drupaldise @Graham-72

json feed from project_browser_server

@docwilmot - I am trying to find a way of dealing with this in Backdrop and would appreciate any thoughts you may have.

At the moment, when the default_server URL is changed appropriately, project-browser gets its test data by using the URL
http://www.mytestsite.net/project_browser/server/query/module/7?version=1&type=module&order_by=score&sort=desc&requested=10&page=0&method=query

This calls the following function within project_browser_server.module - line 76

/**
 * Return some JSON or JSONP to the page.
 */
function _project_browser_server_return($results) {
  // JSONP
  if (!empty($_GET['callback'])) {
    // @todo msie9 might break with this content-type.
    // @see http://stackoverflow.com/questions/111302/best-content-type-to-serve-jsonp/111306#111306
    backdrop_add_http_header('Content-Type', 'application/javascript; charset=utf-8');
    print $_GET['callback'] . '(' . backdrop_json_encode($results) . ');';
  }
  else {
    backdrop_add_http_header('Content-Type', 'application/json; charset=utf-8');
    print backdrop_json_encode($results);
  }
}

In Drupal this produces the json output and nothing else.
In Backdrop it produces the json output followed by the html for a page.

I am wondering how to suppress the html which I assume is added by the layout system. Is it possible to bypass the layout system for specific paths? I would like to be able to choose 'no layout' where there is a choice of 1 column etc.

Any suggestions would be much appreciated. My other inclination is to build a simple non-Backdrop server page just to generate the test data in json form so we can proceed with testing with Backdrop rather than Drupal data.

I have just had a thought - as a temporary expedient I can use an installation of project_browser_server on a Drupal site and just modify the test data in pbs_example.module to get the right json data. But we will need it on Backdrop for the final system.

Project Browser progress

Progress so far:-

  1. Porting to Backdrop is complete, with the exception of a suspected javascript problem causing the issue reported in #2
  2. The json test data is now being successfully provided by module project_browser-server running in Backdrop, and I have added data about 3 themes and 3 modules and these are successfully displayed.
    Pull requests #5, backdrop-contrib/project_browser_server#2 and backdrop-contrib/project_browser_server#1 relate to this.
  3. We need further consideration of exactly what information we should display in these listings.
  4. Once Issue #2 has been solved, the next step will, I think, be to consider linking project_browser_server with project. Project_browser already includes code from the update module so hopefully not much will need to be done to this stage.
  5. Images are attractive in listings - perhaps we need to ask module providers to include an image or logo in their repositories? Some already do.

Comments and suggestions are most welcome.

template error for $classes

In project-browser-block.tpl.php
<div class="<?php print $classes; ?>"> should now be <div class="<?php print implode(' ', $classes); ?>">
I get an error otherwise.
Looking forward to getting this browser working!

Update API terms to match core standard

See backdrop/backdrop-issues#1399 (comment)

  • order_by should be just order (to match Views and other table sort locations).
  • requested should be items_per_page (to match Views exposed items per page).

Update must be made to BackdropCMS borg_pbs.module AND contrib PBS server (PR already sent for both), then finally this PB contrib module after this is merged, otherwise the contrib will stop working.

Add to install queue problem

When you select 'Add to install queue' or 'Remove from install queue' the Install Queue listing in the right-hand column is not being updated until the page is refreshed, as it is in the Drupal version. Perhaps this is an Ajax problem?

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.