Comments (2)
After spending a few hours looking into this and trying to fix it up as-is, I've come to the conclusion that fixing this will require something of a re-write of the feature. The feature was converted to an AsyncController during GiveCamp, which turned out to be wrong in two ways:
- AsyncControllers shouldn't be used to improve the user experience, which was my reasoning for doing it: I wanted to give the user quick feedback that their file was being imported. A file of ~1000 records takes a few seconds to import. Reading around the topic has indicated that AsyncControllers are a scalability feature only.
- The conversion to an AsyncController was completed incorrectly during GiveCamp, and so it wasn't actually being called asynchronously as expected! This was rectified when the functionality was moved into GiveCRM itself, which is when the error messages stopped working.
The correct solution to improve the user experience appears to be to upload the spreadsheet via AJAX. This looks like a good jQuery plugin to use.
from givecrm.
@nbarnwell made these comments on Twitter:
I don't think I'd burden IIS with long running tasks. Better to have it save the data somewhere for something else to pick up, although how we'd do that given we don't really know our hosting strategy yet is beyond me. Serialise raw data to DB I guess, in some sort of staging table that a totally separate process can then import properly. Row can also contain status of import too, so a standard non- async controller can just query for status. Ideally though each line in the file would be an msg for an ESB.
from givecrm.
Related Issues (20)
- An Excel Importer test is failing in the finalizer
- Admin: Terms and Conditions page HOT 1
- Admin: Password validation HOT 1
- Admin: Browser detection HOT 1
- CRM: Browser detection HOT 1
- Admin: Provision the site HOT 1
- Admin: Validate password strength HOT 1
- Admin: Prettify common UI framework HOT 1
- Admin: Style sign up form HOT 2
- CRM: Validation
- CRM: CRUD actions to maintain "facets" HOT 1
- CRM: Paging of Search Results HOT 1
- CRM: Add facet values to a Member
- Admin: Activation HOT 1
- CRM: ASP.NET page compile error on donations page HOT 2
- Data Generator: generate better campaigns HOT 3
- "Show Campaign" should be read-only for committed/closed campaigns
- Error activating IExcelImportService from Import Excel Spreadsheet
- Error when searching for members of a campaign run HOT 3
- Excel Importer can only handle Excel 97-2003 files
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from givecrm.