Giter Site home page Giter Site logo

sparkdevnetwork / rock Goto Github PK

View Code? Open in Web Editor NEW
556.0 94.0 345.0 1.99 GB

An open source CMS, Relationship Management System (RMS) and Church Management System (ChMS) all rolled into one.

Home Page: http://www.rockrms.com

CSS 0.21% C# 82.72% Shell 0.01% HTML 0.29% JavaScript 4.63% Makefile 0.01% Batchfile 0.01% TSQL 2.57% ASP.NET 4.42% Classic ASP 0.01% Less 1.38% SCSS 0.02% TypeScript 3.73%
c-sharp chms rock-rms

rock's Introduction

Rock RMS

Rock RMS is an open source Relationship Management System (RMS) and Application Framework for 501c3 organizations1. While Rock specializes in serving the unique needs of churches it's useful in a wide range of service industries. Rock is an ASP.NET 4.5 C# web application that uses Entity Framework 6.0, jQuery, Bootstrap 3, and many other open source libraries.

Our main developer starting point site is the wiki.

Learn More

Jump over to our Rock website to find out more. Keep up to date by:

License

Rock released under the Rock Community License.

Crafted By

A community of developers led by the Spark Development Network.

Installer Note

Normally the Rock installer generates a unique PasswordKey DataEncryptionKey and MachineKey's validationKey and decryptionKey. So if you decide to clone the repo and run it directly, you will need to handle that aspect yourself.

Footnotes

  1. See our FAQ for details on our license โ†ฉ

rock's People

Contributors

arranf avatar azturner avatar bradencohen avatar cabal95 avatar cbump avatar cfunkdev avatar chrismcgrath avatar croske avatar dcs619 avatar derekmangrum avatar ethan-sparkdevnetwork avatar garrettjohnson avatar jasonhendee avatar jasonoffutt avatar jmartinezspark avatar jonedmiston avatar joshuahenninger avatar kwame-agyei avatar kylehenning avatar matthewbronkema avatar mikedpeterson avatar mrupsidedown avatar nairdo avatar praveenmathew92 avatar richarddubay avatar shauncummings avatar sheck avatar shivambareria avatar trydyingtolive avatar unlearnd avatar

Stargazers

 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  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  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

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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rock's Issues

Add Password Requirement Support

Add support for specifying both a regular expression to match new passwords with to ensure that they meet a specific requirement, and the message to display when they don't. This should probably be two optional organization attributes.

Facebook Login

Finish the Facebook login integration so that if an existing person is not found that matches by Faceboook identifier or by their name and email, that the user is able to create a new account with the information we get back from Facebook already filled in.

Element ID's

Make sure that all of the element id's are using dash's instead of underline's when possible. eg: bid_{0} should be bid-{0} on the block instance wrapper div

Tab Order on Creating Account

On the first page of the account creation if you use the tab key to go from entry field to field there is an issue. When you tab from the month to go to the day field you end up on the password field which blanks out the field as well as the confirmation field.

Auto register field types

Add a method to the FieldTypeService class that will find all field types (with MEF) and register any that haven't been registered yet.

Suported Actions

A subset of a securable object should be able to override the list of available actions that can be secured for that type. For example, BlockInstance is a securable type. But, the type of block that a block instance is rendering should be able to add additional actions to the default list returned by blockinstance.

Add Password Compare Validators

Add password compare validator to the login, confirm, and change password blocks. Currently the compare validator isn't working with the LabeledTextBox controls that these blocks use.

Attribute Caching

The static LoadAttributes() helper method is always reading attributes from the database rather than taking advantage of the cached attributes.

Personalize Success Value

Please allow the success value attribute on the NewAccount.ascx control to be personalizeable with the individual's first name.

EntityChange DateTime/User

The EntityChange table/model does not have a value for when a change was made, or who made the change. This needs to be added.

File Upload Control

Create file upload control using the Kendo UI control.

If file type jpg might check the orientation to ensure it does not need to be rotated (i.e. iPhone images).

Add Job for Deleting unconfirmed accounts

When an unconfirmed account is created, the generated confirmation code is only valid for an hour. Should probably delete any unconfirmed accounts that are more than an hour old.

PropertyAttribute and Attribute Qualifiers

The PropertyAttribute does not provide a way to specify attribute qualifiers. This needs to be added so that a developer can define everything about any needed block attributes using the PropertyAttribute class.

User Preferences

We didn't talk about this in the meeting, but we need to decide how to track user preferences. A first use-case would be how to track whether a user wants the rock page header to be locked (always visible) or unlocked.

Use regex for merge

Update the communication object merge to use match instead of string manipulation

Exception Handeling

Add exception handling with the following requirements.

  1. Add table to store exception information which includes the ability to view inner exceptions and inner exceptions to inner exceptions (parent / child).
  2. While modules should not 'blow-up' a page if they generate an exception it should be logged in table above.
  3. Each site should be able to id an error page. This page should be able to present a friendly error message. if user has 'configure' rights to page it should allow them to view the .net exception message as well as the inner exception.
  4. Should be a way to send exceptions via email to a list of people, System group.

Categorize Attributes

Be able to categorize attributes to improve UI with there are lots of attributes.

Add "AddMetaTag" Method

In addition to the AddCSS, AddHTML, and AddScript static helper methods on the base CmsPage object, there should also be an option to add a Meta Tag

Effective Permissions

When managing security for a securable object you should be able to test the effective permission for a specific user. Similar to what windows allows:

Effective Permissions

Attribute Value Save

When editing the properties of a block instance, the attribute value is not getting saved. This occurred when a new page was added that used the redirect block. The redirect url attribute value would not save.

Revise Namespaces

Revise namespaces to simplify and reduce the number.

Rock.Cms should now contain all Models, Services and Repos for CMS instead of:

Rock.Models.Cms
Rock.Services.Cms
Rock.Repos.Cms

Add Pattern to Offload SQL Execution

We need a way for a block to specify some database updates that need to be made, but not have to wait for the update to occur. For example, we'd like to know each time a page or an image is requested (through the image.ashx handler), but don't want those requests to have to wait for the framework to update a log file.

Initial Though: The framework should provide an event and event argument that blocks can use to specify a sql statement to run. The framework would then be listening (handling) that event so that whenever it's fired, it starts a new thread to execute the statement.

Remove Grid Client Sorting

Remove the ClientSorting option from the rock grid and the associated (jquery.tablesorter) script that is used for this. Because it will only sort the currently displayed page of a grid, it adds more confusion than benefit.

Zone Friendly Name

When managing zone content, use the zone's friendly name instead of the control's id in the zone configuration toolbar...

Zone Name

Default Authorization Precedence

Currently, the default authorization for a securable object takes precedence over the parent authority when there are no matching authorization rules that are defined or match the current user. The authorized method needs to instead first look for a matching rule, then check for a parent authority, and only after checking those, return the default authorization.

Default Page

When a specific page route is not entered or found, and a default page cannot be determined from the site domain record, use the Rock internal page (RockInternal.aspx) instead of the default.aspx page in a default theme/layout folder.

Layout Block Cache Issue

When I add a new layout block from a page it doesn't show up on other pages with the same layout until I restart the app.

Security UI

The security management UI should display each action as a tab instead of in a drop down list

Document Development Environment Setup

We need to document (probably pretty prominently in the Wiki) how to set up a development environment. Now that we're using the "Issues" functionality in github, my hope is that it's easier for more people to jump in and take on an unassigned issue. But in order to do this, they need to be able to get a development environment setup.

This includes

  1. Setting up git
  2. Cloning the repository
  3. Creating a database that includes an admin user login (unless we want everyone using the same test database)
  4. Adding the web.connectionstring.config

Page Picker control

Need a page selection control that will display a modal popup of the page tree and allow easy navigation to select a page

Rock Meta Tag

The framework should add a Rock meta tag to every rendered page that indicates the current version. Similar to this:

Non-IFrame Popup

In addition to the existing IFrame popup provided by the base page class, add a non-IFrame popup that can be used by blocks.

Grid Paging

Change the grid paging to use a format similar to eBay:

eBay Paging

Except use 25,100,1000,all as the available page sizes

Block Zone Config

In the page configuration toolbar, selecting block configuration and zone configuration should toggle off the other option's wrapper div's. For example, if a user selected zone configuration and the green wrapper boxes are displayed, if they click block configuration, that should first turn off the zone configuration. And vice versa.

PersonField Column Type

Add a new grid column type for displaying a person. Should include their name and optionally a picture with the ability to hover over to see more information about the person

DisplayMessage Method

The DisplayMessage() method on the CmsBlock object should not clear all of the controls when displaying the message. It should just add the message, and also be smart enough to remove the message on the next postback.

Block Config Icon not showing

On some blocks, the block config icon is not being displayed. It looks like it's a problem with positioning. An example of this is the New Account block on page 4.

Required Attributes

Need to be able to configure an attribute so that a value is always required. This includes adding a "required" column on the attribute table, a "required" property on the PropertyAttribute class, and updating the UI so that if true, user must always enter a value.

Document / Image Blob Additions

Here's a summary of the changes/additions we listed during our meeting:

  • Add date check to Image.ashx to make sure blob in the DB hasn't changed since the file was cached. Only do this is a cached file exists
  • Add a column to cmsFile called ReferenceType where we can store a string of what function inserted the blob ('person', 'check', etc)
  • Create document type model
  • Add license info for ImageResizer to license.txt
  • Add autorotation support when reading images (David to send code)

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.