Tuesday, November 25, 2014

Atlassian Jira Service Desk assign an issue to Jira User workaround.

Atlassian Service Desk does not allow you to assign an issue to a Jira User or Collaborator without making them Agents. For me, Agents and Jira Users have very different roles. Agents own the work flow and process of the issues, the assignment, and the communication with the customer. Jira Users are the dev/support teams who work to resolve the issues, and sometimes provide additional feed back.

Jira - Version 6.4
Jira Service Desk Add On - Version 2.2

While the entire Atlassian suite is great, and I love it, this fairly new product still has some business model kinks to be worked out. Fortunately, given the extensive customizing capability, although complex, you can work around this issue until they ultimately listen to their user base and make the necessary updates.

For now, you can follow these steps...

1) Add a custom field using the user picker type. Applying to most screens and which ever projects you like. User JIRA administration, issues, custom fields.

2) Add an operation for your new custom field to all notification events under notification schemes. JIRA administration, issues, notifications schemes.

3) Make sure you set your service desk project roles accordingly. Under JIRA administration, projects, select project, roles.

4) Make sure to set the custom fields as required. Under JIRA adminstration, projects, fields, operations, required.

5) Make sure you add your custom fields to the service desk display views and queues.  Just under the services desk.

6) Make sure to remove your custom field from customer portal view, and auto default the value. Under services desk, settings tab, and edit fields on each of your request types if you have any.

7) Make sure you JIRA Service Desk notifications are currently on. Under add on's service desk configuration.

8) Non administrators do not have access to browse users via auto complete by default for the user picker custom fields you created.   Please make sure that the user from non-administrators group has the Browse Users permission, which is under global permissions.

9) For JIRA support users, create and save a new filter using the service desk project and your custom field set to current user so they can have quick access to their task from the homepage issue navigation menu.

10) To have it show up as a gadget on your global dashboard, similar to your "assigned to me" issues. Create a   Issues, Manage Filters, Edit the sharing permission.

I hope this helps a lot of you, it took me about 2 days to figure it all out.


Monday, November 18, 2013

AJAXControlToolkit September release temporary bug solutions.


1) MaskedEditValidator does not validate Mask in MaskedEditExtender properly for other CurrentThread cultures anymore.

2) BehaviorIDs on controls within UserControls that get used multiple times on a page, duplication issue.

3) Combine scripts not working in ScriptManager.


Ajax Control Toolkit September 2013 Release


Temp Solutions:

1) You can just use the MaskedEditExtender without the MaskEditValidator. The mask should still handle cultures properly as long as you have EnableScriptGlobalization="true" set on your ScriptManager and both CurrentCulture and CurrentUICulture set as well.

2) You can simply delete the BehaviorIDs on those controls used more than once on the page, hopefully you don't need that id client side.

3) Unfortunatly combine scripts must be set to false in ScriptManager for the time being. And yes this will cause more scripts requests and a slower page load time.

Thursday, August 22, 2013

Firebug SyntaxError: syntax error DOCTYPE


Firefox firebug is showing an error similar to the following:
SyntaxError: syntax error  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//E


It's actually because onr of your script references cannot be found and is getting a 404.

Check for a typo in your src path, a mistake in your relative path folder location, or an external reference not existing anymore.
    <script src="something wrong here"></script>

Tuesday, July 2, 2013

Installing the MCR in Silent Mode


The installation fails because it cannot get past the license agreement.


Installing the MCR Non-Interactively (Silent Mode)

To install the MCR without having to interact with the installer dialog boxes, use one of the MCR installer non-interactive modes: silent or automated.

Version: MCR v8.1
Release: R2013a
Platform: win64


Steps to test what is to be a future automated silent installation.
  1. Download the MCR compiler exe. The msi doesn't exist anymore.
  2. Rename to .zip and extract.
  3. Run setup from command prompt with admin privileges.
          setup.exe location:

          setup.exe -mode silent -agreeToLicense yes

          **you need the agreeToLicense command or it will get stuck and fail**

         Logs can be found in C:\Users\YourUser\AppData\Local\Temp

Log errors:

When running the installer with an input file, you must accept the license agreement by setting the agreeToLicense option to yes.
Exiting with status -1
End - Unsuccessful

For future automation:
  • Some folders are useless for placing the zip in storage, to unzip, and run your automated installation scripts. They include: help, utils, and files in the root called install_guides.

Side notes:

Location of mclmcrrt8_1.dll:
C:\Program Files\MATLAB\MATLAB Compiler Runtime\v81\runtime\win64

Tuesday, May 7, 2013

Multiple subsequent OrderBy's with Lambda Expressions


Perform multiple subsequent nested OrderBy's with a Lambda Expressions similar to LINQ's  orderby.

from u in db.Users
orderby u.LastName, u.FirstName
select u;


userList.OrderBy(u => u.LastName).ThenBy(u => u.FirstName);

Friday, January 25, 2013

SQL - Convert SQL Column to Camel Case

Issue: Converting a sql column comprised of strings into camel casing format.

Solution: Create a camel casing function, run it against the column, and delete the function if you like afterwards.

CREATE FUNCTION [dbo].[CamelCase]
(@Str varchar(8000))
RETURNS varchar(8000) AS
  DECLARE @Result varchar(2000)
  SET @Str = LOWER(@Str) + ' '
  SET @Result = ''
  WHILE 1=1
    IF PATINDEX('% %',@Str) = 0 BREAK
    SET @Result = @Result + UPPER(Left(@Str,1))+
    SubString  (@Str,2,CharIndex(' ',@Str)-1)
    SET @Str = SubString(@Str,
      CharIndex(' ',@Str)+1,Len(@Str))
  SET @Result = Left(@Result,Len(@Result))
  RETURN @Result

Update SomeTable Set SomeName = dbo.CamelCase(SomeName)

Thursday, December 6, 2012

Azure - The target "PipelineTransformPhase" does not exist in the project.


When performing a build you may receive the following error.


error MSB4057: The target "PipelineTransformPhase" does not exist in the project.


Either the path is wrong in your .csproj file or your missing the Microsoft.WebApplication.Targets file on your build server.

If its missing on your build server simply just copy it over from your local machine, from and to the same location.

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications

Friday, November 9, 2012

LINQ - The data source does not support server-side data paging.


When trying to bind a result set to a gridview from a LINQ query you may receive the following error.

gridView.DataSource = results;


The data source does not support server-side data paging.


Chances are you just need to add a .ToList() on your return var from your LINQ query. A common case is when you use .Intersect on lists and forget to do another .ToList().

Friday, October 5, 2012

Copy SQL to Excel Missing Rows


When you try to copy rows from SQL server and paste into Excel but experience missing rows either by right clicking and coping with headers or saving as a CSV.


The problem is double quotes "

Excel will skip all rows in between the start and end of a double quotes.

1) Either trim off the quotes in SQL


2) Right click and save as text, tab delimited, from SQL and then open in Excel using the default workflow selections during import.

Wednesday, October 3, 2012

Ajax Control Toolkit - Programmatically expand CollapsiblePanelExtender

Expand a collapsible panel programmatically with use of a button or linkbutton other than the already assigned ExpandControlID control.

protected void expandCollapsiblePanelButton_Click(object sender, EventArgs e)
    // expand
    testCollapsiblePanelExtender.Collapsed = false;
    testCollapsiblePanelExtender.ClientState = "false";